I’ve been trying for a long time to come up with a setup for using my iPad Pro as a development tool. There is a ton of options out there, mostly in the form of text editors and terminal emulators or some combination thereof. None made me happy.
I want a full IDE, with no compromises. I see no reason why iPad Pro cannot be used as a development machine. It is powerful enough and the lack of a proper IDE for iPad Pro from Apple is annoying.
Here is the setup I ultimately came up with:
- I provisioned an Ubuntu box in AWS and gave it a static IP.
- Go through the instructions to set up XFCE and VNC on the newly provisioned AWS Ubuntu box.
- Install Remoter Pro on the iPad Pro and verify you can connect to your Ubuntu box.
Now, complete the rest of the environment setup. This is what I did for my purposes:
- Connect to your Ubuntu box using Remoter Pro from the iPad.
- Install Chrome or Firefox (your choice)
- Get an account with Cloud9 IDE. I love that tool for pet projects as it allows me to code using the same IDE from any browser. This step is entirely up to you. If you like to use VIM, or VSCode, Eclipse, or WebStorm – that is your call. My needs are relatively simple and Cloud9 is convenient.
- Install Libreoffice because why not? If you have access to a full version of a desktop office system, why not take advantage of it?
- You are going to need some way to synchronize files between your Ubuntu box and the iPad. There is a few options: you can setup an origin GIT repo on the Ubuntu box itself and use various tools on the iPad to access it; you can also setup Dropbox on the Ubuntu box and sync a specific folder; another option is to get a Github account. This is all entirely up to you.
This setup works great for what I want. I finally have a no-compromise development environment I can use from my iPad and from my computer at a very low cost.
I’ve created devAny(https://www.devany.net) for similar purpose. You can write code even on iPhone with mirroring. This doesn’t have full IDE but provide minimal interface to to the backend server, which needs to be set up beforehand. I think this is interesting idea but not sure people like this.