Should I use an iPad Pro if I’m a Coder?

Brian Richardson
6 min readJan 21, 2021

I’ve been recommending that people consider an iPad Pro instead of a notebook lately. So I decided to follow my own advice and get one, and quickly found asking myself, “How am I going to code?”. The answer, of course, is a virtual desktop solution on a cloud provider. So how feasible is it really? Totally feasible, and it’s awesome!

What is an iPad Pro Anyway?

It’s actually a pretty powerful computer running iPadOS. iPadOS has support for bluetooth keyboard and mouse, and works quite nicely in landscape mode. Adding the Pencil opens up things like notetaking (OneNote) and drawing (Graphio). I won’t talk much about the business applications except to say that you won’t feel like you’re missing any. Let’s talk a bit more about coding!

Cloud Desktops

Let’s talk about the negatives of cloud desktops first. You’ll need a pretty good Internet connection (probably at least 10Mbps with low latency). The iPad Pro is available with LTE connection, allowing you to have this minimum Internet connection available pretty much anywhere inside a metropolitan centre. They are also not free. However, they are not extremely expensive either. I am running a D8 in Azure (8 vCores, 32GB RAM) for less than $0.60 CAD/hr. I don’t expect to use it more than 60 hours a month. If you are diligent about turning your machines off in Azure, then this usage will cost you less than $40CAD / mo. That beats Digital Ocean (where you can’t save money by turning off your machine) both in terms of price and performance. And, you can install a Windows machine if you need it.

Windows 10 Licensing

A quick note about Windows 10 cloud desktops. Read the licensing for the Windows images very carefully. You are probably not licensed for most of the Windows 10 images on Azure. I have properly licensed my Windows 10 desktop by joining the Windows Insider Program. You may only use a Windows 10 desktop in Azure with either an Enterprise Volume License (do YOU have one?) or by using the Windows 10 Preview image as a member of the Windows Insider Program. The Windows 10 Preview image may not be used in Production (whatever that means for a development desktop), and Microsoft would probably like it if you actually participated in the program. It’s really not a lot of effort. You will also need to have a spare Windows 10 Pro license available. The Windows 10 Preview image is BYOL.

Cloud Desktop Builds

I’ll put more details about actually building a cloud Linux development desktop in a later post. For now, it is sufficient to say that the desktop is available via VNC over an SSH tunnel. I can access this desktop via the iOS app Jump.

iOS Apps

Enough about the obvious stuff. You probably want to know what other apps you need to install to have a good development experience on your iPad. Here’s an inventory of all my development related apps and a few quick notes about each.

Shelley

Shelley is a capable SSH terminal for iOS. It supports authentication by public key and password. Overall it is a good application that will connect to pretty much any reasonably modern SSH server. The key management is pretty good, if a little clunky. It is only possible to export keys to the clipboard, meaning you will need a decent text editor to be able to move keys between apps.

Textastic

Textastic is a decent text editor that will allow you to edit files on both your iPad and your iCloud drive. You’ll find yourself needing one more often than you think, and this one works well and doesn’t cost much.

Jump

This is the app you need to connect to your cloud desktops. It supports connections via both RDP and VNC. It optionally supports connecting to these services over an SSH tunnel. The SSH tunnel supports both public key and password authentication. Jump really feels like a natural desktop on a PC notebook.

iNet Tools Pro

While the free version looks like junky adware, the pro version removes the advertising for a reasonable price, and the utilities available are quite helpful. You can ping, traceroute, port scan, etc. from your iPad without needing to login to a remote server.

GitHub

The iOS GitHub app is quite nice. It provides all of the functionality of the website in a very polished and clean app.

FTPManager Pro

FTPManager Pro removes the advertising from a solid (S)FTP client for iOS. SFTP supports login by both public key and password.

OpenVPN Connect

I highly recommend putting up an OpenVPN Access Server in front of your Azure network. It costs about $20/mo. to operate on a B1ms, and takes 20 minutes to set up. The first two VPN connections for Access Server are free, so you only need to pay the infrastructure costs. You can access your Azure network and your cloud desktops via OpenVPN Connect. OpenVPN Access Server supports autoconfiguration and login, so this is a really easy way to secure your desktops.

Final Thoughts

I really like my iPad Pro for development and technical work. I still haven’t explored its full power (next up: drawing programs!). But it is a completely feasible replacement for a notebook PC, even if you have serious technical requirements. With high-speed, low-latency Internet available almost everywhere within a metropolitan centre, cloud desktops are a very viable way to provide a development environment on the iPad. The D8 is no slouch, and it’s very affordable.

It is fair to say that it is cheaper to have a notebook PC. However, I’d say that I’d rather carry around my iPad than dual-boot a notebook (or worse, carry around 2 PCs!). The iPad will last for several hours of work with constant network activity. I frequently don’t even bring a charging cable with me unless I expect to do many hours of work.

Here’s some screenshots of my development environment, as taken from the iPad:

I hope this helped you make a decision if you’re on the fence, or maybe just showed you something cool. Please feel free to add your own ideas about development and technical work on iOS.

--

--