This page is part of my digital gargen.

This page might be unfinished or have typos. These pages are meant as part of a public living notebook to be edited over time. For more, visit the page explaining the concept of a digitial garden.

iPad

What makes an iPad so interesting to use

  • Extreme Battery Life - The battery on iPads lasts a long time meaning they’re very useful for doing work on the go
  • Cloud and Remote computation - There is so much cheap and accessible compute in the form of free services or simply on-demand virtual private servers (AWS, Digital Ocean, etc.) that it almost doesn’t make sense to use a device with all that much power locally.
  • Extreme Security - While the Apple Store limits what you can do on the device, on the other hand worrying about anything except “State-Level Actors” is really not needed because the security on iOS is so much stricter than on a personal laptop.
  • Very usable - What is the point of computers if not to make things easier than they would be otherwise? iPads are extremely easy to use and still provide the extreme security that would otherwise require deep system administrative knowledge and constant maintenance.

An intersection of all these various features make it so that the limitations of the iPad are outweighed by things which simply aren’t possible on other platforms. There is no other thin, powerful, and efficient device which provides the same features except for maybe the new M1 Macs. Even then, the limitations of the iPad make it more secure in many aspects because there is not compatibility required with scripts and programs which do expect or properly handle the security restrictions which would be on iOS and iPadOS.

Development on the iPad

It’s possible to do development work via an iPad (mainly the Pro 12" version). The way this works is by basically turning the iPad in to an edit-only or thin-client like device.

This means the primary apps we’re looking for either allow easy remote control of computers (e.g. ssh terminals) or make it easy to sync the text files of source code so we can make some edits locally before running them remotely (e.g. git or scp/rsync clients)

Apps

The best apps for this are the following

  • Working Copy - Provides the best Git client on iOS period and makes it possible to read code from anywhere. It is absolutely worth the money to purchase it and support the developer. Pretty much required, in my opinion.
  • Blink Shell - Extremely performant and reliable. A lot of shells on iOS fail to support complex interactions like Emacs or Vim on remote servers. Or they get overwhelmed with lots of output. Blink has been steadily improved over the years and is also one of the few apps which supports mosh for using via LTE or bad wifi. Highly recommended
  • Screens - Very capable VNC and MDP client which makes accessing remote Macs and VNC Servers super easy. I am not a fan of how it handles some authentication things, but otherwise not much to dislike. The Mac app is also pretty much the best client there is for the Mac. If you need graphical access this is the app to get
  • Secure ShellFish - Made by the developer of Working Copy. Very nicely made app with Files integration for accessing remote files transparently via SSH/SCP. Paying for the app gives you Offline Caching of your files. It also offers using the same SSH access to provide a terminal when needed. Useful for editing locally, syncing changes back, and then running a few commands on a remote server.
  • Textastic - Usually I prefer to ssh in to a computer and use vim, but for local editing very little can beat the flexibility of Textastic
  • Terminus - A new (to me) shell I’m trying because it supports some features which Blink does not like Port Forwarding, built-in SFTP, and easier Key Management.

Setup: Keyboard, Mouse, Stand…

When it comes to using an iPad for development you want to avoid making things worse than with a laptop. If you can using a stand or something to make the iPad slightly below eye level and 2/3 arms reach is good. This is a compromise to still make it comfortable to touch while not making you crane your neck.

A mouse, like the Magic TouchPad, is a good idea because the iPad now supports mice fairly well.

A keyboard like the Magic Keyboard is great because it’s wireless so keeping it separated from the iPad makes it much easier to use ergonomically.

Using a mouse and keyboard like this means you’re probably at a desk and if you have a monitor you can use a USB-C hub with the Pro iPads to connect any wired keyboards or mice plus your screen which will then mirror anything on your iPad. Some apps like Blink Shell actually support having separate terminals on each screen which can be nice.

That all said, many will be using the iPad on the go and using a Magic Keyboard case for the iPad is the best way to go with this because you get all the tactile feedback of the Magic Keyboard and niceness of the Magic TrackPad in a single case which holds the iPad up a little bit. It’s also one of the most stable cases to use in your lap while providing such a high quality keyboard/mouse experience.

An Idea: I have yet to try this, but it’s probably worth trying. Using the Magic Keyboard at a desk, but connecting the iPad to a screen then simply looking at the screen to avoid bending over to look at the screen. This keeps it close when touch is needed, but otherwise allows you to see everything nice and large on your screen.

Last updated on