Recently I travelled from Perth to Europe for part fun and part business.

The first few weeks of the trip was with my family including our 3 kids. I didn’t want to be lugging a MacBook Pro and charger around just in case I had to jump in and fix something.

Our code is generally Ruby on Rails / React.

Since giving in and buying an iPad Pro I have fallen in love with it. After normal work hours my MacBook Pro would hardly ever leave my bag. When it did it was just for coding. I’ve found the iPad Pro to be an amazing content device. It really excels at both consuming and creating content.

Leading up to the holiday I started to wonder if maybe I could get away with leaving my MacBook at work during the evenings. Would it be possible to use an iPad Pro as an emergency development machine?

I Googled around and found some others that had tried it out. None of them were using it in quite the way I wanted. So what better way then to give it a shot.

Finding a VPS

I already use AWS heavily. I’m happy with their costs and systems. So it was a bit of a no brainer to run my development instance there.

The only question was which region to run it in.

A nice simple site that will ping the regions from your current connection is http://www.cloudping.info

From Perth, Australia Singapore and Sydney gave me similar results.

After first trying it on a US instance I can highly recommend trying to get the lowest ping possible.

AWS App

It’s not going to win any design awards anytime soon, but AWS do have an app. AWS Console allows you to do all the essential things like start / stop instances.

Starting / Stopping the Instance

As it’s not something I use all the time I wanted the ability to stop the VPS when I am not using it.

Thanks to Tris Harmer for working this out. In his words:

You use this https://github.com/SamVerschueren/aws-lambda-stop-server to create an AWS Lamda function.

tl;dr is you tag your instances with a special tag that matches the lamda function name and running that lambda does the magic

Then for the slack part you add a trigger that is a magical API created by AWS that then you make slack call via a slash command.

Then you have a magic /start-stu-dev and /stop-stu-dev in Slack! Magic

IDE

On macOS I use SublimeText 2. I was hoping for something similar on iOS.

There were surprisingly little great options here. Editing remotely I guess adds a lot of complexity to an editor.

I forked out for Coda by Panic. It’s an all in one dev environment with editing, ssh, browser etc.

You can edit your files remotely and when you save it automatically uploads via sftp.

I found it really slow to navigate the folders. I couldn’t find a nice way to quickly open a file or search.

It also had a bug where when you came back after the app being killed in the background it would reconnect your ssh sessions but chop off half the screen. Meaning you had to close them all and reopen anyway. I contacted support about this option and they knew nothing about it. A month on there’s no fix.

So I ended up using VIM via SSH. It was actually a great reason to learn it. I might actually end up sticking with it full time on my MacBook Pro.

SSH

The one recommended multiple times for me was Prompt 2, another product from Panic. But I didn’t want to fork out in case it had the same issues as Coda.

Another popular appe I tried that was quite nice is ServerAuditor.

The one I ended up being most happy with was vSSH HD. It has a lot of options to mess around with and seemed the most responsive. One of the main features that appealed to me was the remapping of keys. I wanted to remap caps lock to escape. Unfortunately it didn’t work too well and my support request was never answered.

Update Oct 2017: In finally found a great ssh app that doesn’t drop out! Not cheap but totally worth it. Blink Shell.

My recommendation:

Others I tried:

The Constant Disconnect

One really frustrating thing is having your SSH app constantly closed for being in the background when you walk away. Some clients reconnect automatically so the pause is only a few seconds.

If you don’t use it already you will want to start using something like tmux. Set your ssh client to automatically attach again when you reconnect and you can continue like it never disconnected.

Debugging

If you’re reliant on Google Developer Tools like me you are going to be missing it pretty quickly.

Coda does have a console. When you open it shrinks the browser down so our site switches to the responsive mobile version. This makes it of pretty limited value. If it could pop in below that would be amazing.

Firebug lite is one option.

The other option is to install a desktop environment on your linux instance and VNC in. That’s the option I ended up going with.

VNC Client

I tried to be cheap with a VNC client and tried a heap of free and cheap ones. I didn’t like any of them.

I finally gave in and bough Screens. It’s amazing. Far and away the most polished app I tried in this process. I wish there were more tools as good as this.

My Wishlist For Apple

Let us have Virtual Box on the iPad Pro to run Linux (haha, I know, I’m dreaming).

Let us choose apps that never get killed in the background like an app playing music. Coming back to a killed SSH client constantly gets old really quick. Even if we can only choose one or two apps.

Backlit keyboard! I actually quite like using the keyboard. No backlit keys makes it really hard to use in a bunch of circumstances.

Add proper developer tools to Safari without having to connect a Mac.

Make app switching faster. I don’t have the March iPad refresh so maybe that improved it. But the lag between swapping between apps is noticeable compared to fullscreen apps on a MacBook.

Let us trial apps. I spend a lot of money on apps like Coda that I will never use again. Even a 1 hour trial would of been enough time for many SSH and VNC clients I tried.

Bring Xcode to the iPad 😀

Let us remap keys on the iPad Pro keyboard. If I could swap caps lock for escape it would really help!

My Wishlist For Other Developers

Bring tools the quality of iTerm 2 and Sublime Text to the iPad Pro. I’m more than happy to pay!

Where I’m At

At one point I was really hoping that the iPad Pro could become my main development machine. It’s so portable and 1/2 the price of a MacBook Pro.

Unfortunately it’s not quite ready to use full time. I have really high hopes that we are only a couple of generations away to it becoming my main machine.

For now it makes for a great backup dev machine.