Programming on an iPad

A month ago, I wrote a list of gadgets I love. In it, I mentioned that I gave my old iPad to my wife. I didn’t use it enough to justify keeping it for myself. Yet, I conceded the appeal of the newer iPads:

I’m not saying never again to owning an iPad. The newer, fancy models with the pencil cast a certain spell on me.

Still, I reached a point where gadgets are only added to my collection if they get used. So I’ll only get an iPad if I can find a workflow that makes it a necessity.

In doing so, I fear a seed was planted. I started asking myself what said workflow might look like.

What is an iPad useful for?

iPads tend to be great consumption devices. They are lightweight and easy to transport. Fast, thanks to great specs and tight integration with the operating system. Their battery life lasts for most of the day. If you are watching videos, casual browsing, or playing games they are quite convenient.

I don’t hate consumption, but I’m trying to focus more on production than consumption in my life. So the iPad doesn’t hold great appeal when solely considered as a consumption device.

In recent times, I have seen people use them to be more productive, however. Doctors and medical students appear to be quite fond of domain-specific apps as well as its note-taking capabilities. Digital artists create great paintings and drawings on them. Musicians and even photographers/videographers are increasingly using the iPad, particularly the Pro line, on the go.

Could the iPad be a great option for programming as well?

My ideal use case

Before we discuss how one might configure an iPad for programming, I’d like to point out that my primary use would be reading technical PDFs, annotating them, and taking notes. If you are only interested in programming, laptops are a superior choice.

Still, you are there sitting at the library or a coffee shop. You’re reading a programming book, jotting down notes. It’s only natural to want to write code to validate and experiment with what you’re learning.

We know from neuroscience studies that the act of taking notes by hand is superior to typing them when it comes to retaining the information. For programming related material, however, I’d say that writing actual code is just as important.

You could bring both a laptop and an iPad but it becomes quite inconvenient at that point.

So for me, the ideal scenario would be an iPad that allows me to read technical books, annotate them/take notes, and program on it.

It already excels at the first two tasks, but can the iPad work for programming? The screen, in landscape mode, is certainly big enough. If you opt for the 12.9″ model, it’s essentially no different than my current MacBook Pro. Spec-wise, it might even be as fast, if not faster.

So it’s really a matter of software. These babies should be called iFortKnox. They are quite locked down.

A possible iPad setup for programming

If you search for them, you’ll find the occasional IDE for iOS. Pythonista for iOS, for example, will mostly work if you’re writing Python scripts.

Unfortunately, there isn’t an equivalent for Elixir and Phoenix, which I tend to favor these days. Plus, I like to use Git as a mechanism to share code between different laptops.

VNC is not a great option either, in my experience. You’ll face quite a bit of lag and the smaller screen of the iPad doesn’t lend itself too well to showing a whole computer desktop.

It seems to me that the best approach is to have the development environment on a remote machine and use the iPad as a client.

Amusingly, dedicated services like C9 by Amazon do not support mobile browsers that well. Though, with the upcoming iPad OS defaulting Safari to a full browser, it’s possible that these will become a viable option.

Based on my research, the most promising alternative is running a cheap remote box on DigitalOcean or similar provider, and connecting via a mosh-shell like Blink Shell. That appears to work really well even with spotty connections.

It would mean using a terminal-based editor. It’s not for everybody, but even though I tend to use Visual Studio Code these days, I would have zero problems with using Vim for this purpose. (Hello Vim, my old friend, I’ve come to type with you again.)

This caveat aside, I really don’t see a downside to this workflow. I get all the benefits the iPad brings plus the ability to actually do real programming (with a cover keyboard, of course).

The new iPad Pros are rumored to come out soon. They might be announced in less than two weeks. So I’m going to sit tight on this one but I’m eagerly waiting.

What about you? Do you have an iPad? Do you use it for programming? Is your workflow different than the one I propose here? Let me know in the comments below.

Get more stuff like this

Subscribe to my mailing list to receive similar updates about programming.

Thank you for subscribing. Please check your email to confirm your subscription.

Something went wrong.

5 Comments

  1. derrick2811 August 29, 2019
    • Antonio Cangiano August 29, 2019
  2. jj August 29, 2019
    • Antonio Cangiano August 29, 2019
  3. Jake Winters February 19, 2020

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.