May 30, 2022

iPad Pro as a Development Machine in 2022: Are We There Yet?

A couple weeks ago, I surrendered my MacBook to the Apple Store for a screen repair. Due to part shortages, the timeline for me being able to use my MacBook again was at least a week. When I thought about what I could use to get some work done, I realized I already have a computer with me that's (theoretically) just as powerful, my iPad! It has the same CPU as my laptop, it's more portable, and even has extra features like cellular. So, I got a keyboard for my iPad and set off to see if I could exclusively use my iPad for the next week.

My iPad Pro Setup

Normally, I use my iPad almost exclusively for notes an entertainment. I spend a couple hours a day taking notes using my Apple Pencil and GoodNotes, and when I want to watch TV or browse the internet, my iPad is the perfect device for that. In those cases, iPadOS works fine, but when you start getting into more complicated use cases, iPadOS starts to become a limiting factor. Apps work great on phones and tablets, but it doesn't cut the bill when you need to run a bunch of languages or build web apps. Is it possible to get past the limitations of iPadOS and use it like a normal computer?

Development on iPads have come a long way

Development on iPads has always been possible, but through a limited amount of workflows. You can use an app to SSH into a Linux environment and use the iPad like a dummy terminal without a GUI. Or you can find a set of apps, like a code editor, git manager, terminal, etc. and stitch together a workflow native to iPadOS. However, these are all workarounds that could work but disrupt my usual workflow.

The recently added saving grace to iPad development is not made by Apple, but Microsoft, the owner of GitHub. They recently released GitHub Codespaces, a tool that runs an instance of Visual Studio Code in your browser, and gives you a full containerized Linux environment to work with. This is perfect, because I can use the full environment I'm used to on my MacBook on any device with a browser.

So, how well did Codespaces work? Actually, pretty well! GitHub Codespaces actually made serious development on the iPad possible. I used the same workflow as my MacBook on my iPad, and all of the tools(file management, terminal, opening ports) I had were all in one place. I was no longer constrained to Apple's app ecosystem and model, and instead had a full dev environment in my browser.

Github Codespaces brings development on iPad 90% there.

It’s the little things

Now, if iPads can now do everything MacBooks can do with the power of remote development and the cloud, why don’t we just throw away our laptops? Like I was saying, development on iPad is 90% there, but the 10% that doesn’t work adds up.

What kind of things don’t work? It’s nothing major, but there are tons of small issues that don’t seem serious but at the end of the day make you feel like you’re fighting your device.

  • Trying to fill out a form online? Safari has this weird lag where your cursor won’t actually move for 2-3 seconds after clicking a new text field.
  • Want to write a Google Doc in Safari just like on a Mac? Some of the buttons don’t work when you click them, and some links require triple or four-finger clicks.
  • iPads are clever, and system-wide autocorrect applies to the physical keyboard too even if you don’t want it. Luckily, there is an option to disable this in Settings.
  • When using GitHub Codespaces in the browser, the iPad’s predictive text bar covers the Terminal making it hard to see. This can also be turned off in Settings, but only system-wide and not just for one website. This is an example of the iPad not being customizable enough.
  • Safari on iPadOS doesn't give you access to developer tools, so good luck trying to do serious web development or debugging.

As you can see, nothing is a total dealbreaker, but at the end of the day it results in a more frustrating experience compared to a normal computer.

Conclusion

What’s a computer? It’s a device that follows your workflow to help you get things done. You can use an iPad as your main development machine, but you have to adjust to the app and browser-based iPad way, regardless of if it's actually better or more efficient. Apple’s yearly WWDC conference is in a couple days, and hopefully they give iPadOS the push that could get it over the edge, but until then, my MacBook reigns supreme.