My current setup learning and developing Rust

So I am currently trying to learn some rust after years with Objective-C and Swift. But i don‘t want to do it on a random computer but trying to implement it on my iPad.

While the iPad is about as bad as possible for any programming work on device as there are neither any really good IDEs nor do you have the possibility to run any compilers or interpreters on device. There are some good text editors, but the only really good ones useable for programming I found only had support for Python (and playgrounds for Swift).

So how can I do programming work on the ipad Pro? Simple - using it as a remote shell. This basically means I only use the iPad for it‘s nice screen estate and the keyboard and it‘s very much replaceable by any random PC or device that has a terminal.

My basic setup consists of a Raspberry Pi 3+ that acts as a server at home with rust compilers and more setup I will talk about later. Second Part of my setup is obviously the iPad, a 2018 iPad Pro 12.9 with 256GB and LTE. It is coupled to an Apple Pencil (that is of no use in this setup) and a Folio Keyboard.

The actually interesting parts are the software parts. On the iPad I Use Blink, which is a remote Shell app that supports MOSH (a SSH like remote shell that has advantages when used via unstable or slow connections). It supports external Screens as well - that is what makes it super awesome. Initially it sounds awkward to use external screens on an iPad without a mouse - but on a shell there is no need for a mouse...

The Raspberry is setup with a Mosh-Server so that blink can connect to it. The terminal is running with a heavily configured TMUX that allows me to retain sessions in between connections and allows for multiple „windows“ on one screen and has some more possibilities. The Terminal by itself is a ZSH, that isn heavily configured as well (oh-my-zsh with a few more). It is themable and thus gives a colorful screen even though it is just a terminal. Additional plugins include autocomplete and Git-plugins.

The heart of it all though is VIM - the editor that you have to google how to exit the first time you use it. It is heavily customized as well with plugins ranging from rust-vim and vim-fugitive (for git) to nerdtree and quite a few more. Vim running on the left haft of the terminal (thanks to tmux) allows for having a terminal window on the right half off the screen that lets you compile and run written code instantly (or as fast as the raspberry compiles it).

There are a few disadvantages to a solution like this including not having the advanced features that proper IDE‘s offer, but for learning a language, it is very good to have to do everything by hand and not having too much automatism (and Rust doesn‘t really have IDE‘s available anyway). The advantages for me are outweighing the disadvantages by far currently. The iPad offering a near perfect screen estate with very low distractions while still offering multitasking for google or stack overflow (via Splitview or Slide-Over). The portability is unbeatable (even more so if my iPad was smaller, but that‘d mean less screen estate).