OK, fine, the title is a little clickbait sounding. The truth is: I do use Xcode on my iPad, but it’s probably not what you’re thinking. In this post, I want to tell you about my love affair with the iPad Pro and my experience using it as a development machine.
The Backstory
Ever since the introduction of the iPad Pro, I have dreamed of having Xcode on iOS. The iPad Pro is my main computer when I am not doing development work. In fact, this post was typed on my iPad Pro 10.5” while simultaneously watching DirecTVNow in a PIP window – something that would’ve been unheard of a few years back. After all, most people confuse the iPad with a media consumption device and not a full-fledged computer that you can also do serious work on.
There’s no doubting the power, the portability, or the performance of the iPad Pro, and while I will likely be using my Mac Pro for many years to come for my main development machine, I would still like the ability to take my iPad Pro while on the go to edit code and work on projects.
Yes, there’s Swift Playgrounds and that app is a step in the right direction, but it’s far too limited to do what iOS developers need on a daily basis. There’s no support for Xcode project files, no DVCS support, no Storyboard support, the code completion is far too limited, and the list goes on.
So, what’s an iOS developer who uses an iPad Pro as their main portable machine supposed to do? Well, just like we’re used to doing on iOS, I had to find a way to use Xcode on my iPad.
Before we begin, I want to preface this by saying that while this setup does work, it is far from being usable for a main development machine. I use this setup when I need to leave the house, but don’t need to do Xcode work that’s extremely involved. In other words, this is excellent if you want to go on vacation, or just need to take a trip across town and need to be on call for anything urgent. I would not use this process for writing an entire iOS app, although that could certainly be done.
The Software
Next, let’s talk software. As you probably guessed, I’m not actually running Xcode on the iPad itself. I’m using Parallels Access, a $20/year Remote Desktop app (there’s a free trial available) that lets you remotely access a Mac running Xcode. Parallels does what most other remote desktop apps don’t, and that’s the ability to resize the screen you’re viewing to take up the same size as the iPad. Parallels Access is also extremely fast and responsive compared to most VNC apps. While on the same local network as my Mac Pro, there’s no noticeable lag; on cellular, the lag is barely noticeable, even when working with features like code completion and drag and drop.
Parallels Access also allows you to use key combos on the iPad Pro to the connected Mac, meaning that you don’t have to re-learn any shortcuts that you might already be used to on the Mac and Xcode. Audio is also routed right to iOS from the Parallels agent on the Mac.
If you’re like me and use iOS as your main computing platform when not doing development tasks, then this might be a workflow to try out, especially if you like the portability of the iPad compared to a 15” MacBook Pro. But be warned, this will only make you yearn for Xcode on the iPad even more.
In addition, one of the benefits of this setup is testing on the same device you’re developing on. Assuming you have your iPad Pro connected to the same local network as your Mac, and you have enabled Xcode wireless debugging for the device, then you can target your iPad as a device to Build & Run on. Making it a seamless experience to test on the same device you’re using to do the development.
The Hardware
As I mentioned above, I primarily use the 10.5” iPad Pro that was released in 2017. This device seems to provide the greatest portability, plus power. It does sacrifice on screen size a bit over the 12.9” iPad Pro, and I do plan on upgrading to a larger display sometime in the future. I also have a cellular plan on my iPad Pro, allowing me to connect back to my Mac Pro via Parallels Access without having to hunt for a wireless access point.
There’s also one minor (ok, a little major) detail that I forgot to tell you about Parallels Access: It has mice support on iOS. That’s right, you can connect a compatible mouse to the iPad Pro and use it inside of Parallels Access. For me, this was the deal breaker with using my iPad Pro for development. However, after connecting up the mouse to use in Parallels Access, I can easily work with Storyboards. Granted, the compatible mouse (SwiftPoint GT) can be a little cramped for most users, it works and works well. The mouse can also be recharged by the iPad Pro with a USB type A dongle.
Final Thoughts
Overall this setup has been fairly smooth over the past few months that I’ve been using it. I can only hope that Apple is working on a native solution for getting Xcode in at least some form on the iPad.
If there’s one complaint that I have, it is there’s not more native mouse support in iOS. Why should I have to buy a custom mouse that connects to some software? Why can’t I just connect my Magic Mouse to my iPad and let the software decide if it knows what to do with it.
I will continue using this setup until Apple does release an official solution, but overall I am happy with this setup for allowing me to perform basic iOS development and the ability to submit builds right from my iPad.