Recently, I moved from my MacBook Pro as my primary programming machine to my 2nd generation iPad Pro. I decided to try this out after my trusty MacBook Pro had served me for 4 years and it was time to get a new machine. I looked at a couple of options including building my own machine and getting a new MacBook Pro. I eventually settled on trying out an iPad Pro.
I have two methods of developing on the iPad:
- Using Coda and Working Copy on the iPad (I’m actually writing this blog post on it!)
- Using a virtual desktop for the more complex programming
Pure iOS Development
With iOS 11 multi-tasking has become so much easier, I have Working Copy setup and the webdav mode enabled and the Coda in split-screen mode. This way I can make use of git in Coda. I made the code changes in Coda and they show up in Working Copy, and it is as simple as committing and pushing up to my GitHub.
Virtual Desktop Development
Screens.app has been a useful application in setting up VNC connections to my cloud-based desktops. A VNC connection on its own is unencrypted so I had to SSH in and setup a local VNC connection. Some of the pitfalls on this is that you need to manage all the ports and security rules on your own and I found it took a bit of tinkering to setup outbound SSH or FTP connections from within the cloud desktop. I chose Ubuntu as the base OS as that was what I am most familiar with. Using one of the DigitalOcean guides I was quickly able to set it up with XFCE. This is where things became interesting, or should I say difficult. XFCE is a very minimal desktop UI, which is fine but not when using with an iPad as it isn’t touchscreen friendly at all. I even tried using the trackpad mode on Screens.app on my iPhone but it was laggy and resulted in a delayed reaction. Ideally, I’d want to be able to either use the touchscreen or be able to be completely keyboard bound with a OS.
I will probably try some other ideas such as GNOME for the GUI, or even elementary OS. There are some Mac colocation systems or cloud Mac setups, however those are a lot more pricy than paying for the usage time of a VPS.