Coding While Travelling
Posted on 01 June, 2024
For years I've wanted to have a lightweight coding setup that I can use to do work whilst travelling — and I may, finally, have come up with a "good enough" solution.
The brief
My main development machine is a MacBook Pro. I'm extremely happy with it in every circumstance other than for a travel (specifically, commuting) setup.
The reason for that is that development isn't my day job, and I have a "work" laptop that I need to carry around with me. Carrying a second laptop is too much weight and bulk, and I'm not at liberty to use the "work" laptop for development (and probably wouldn't want to anyway).
The obvious answer (for a Mac-using type at least) is an iPad — and indeed I have a (older, 2018) iPad Pro; but there are many limitations with iPadOS which have, in the past, made it too cumbersome to use.
Specifically, what I really want is to have a VSCode-like setup on the iPad; or — assuming that proves impossible — at least a good code editor with git (and GitHub) integration. And also a good external keyboard, and a cheap(ish) data plan with sensible allowances.
Software ...
What I really want is for Apple to relax some of the restriction in iPadOS so that a fully-featured editor with the functionality of VSCode can just work on the iPad. Alas that's not the case at the moment and doesn't feel like it's going to be anytime soon.
I've previously tried setting up a Raspberry Pi, which can connect to the iPad Pro's USB-C port for both power and data transfer, to provide a VSCode setup. Last time I tried this, it was very cumbersome and the Pi wasn't really powerful enough to use.
Things have moved on a little, and I followed some instructions for setting up a Pi 4. This literally serves VS Code as a web-app, and was pretty good; however:
- for reasons that I haven't gotten to the bottom of, installing npm packages in the (remote) Code instance wasn't successful; I could start my simpler apps running and connect to them, but not in a way that was satisfactory
- assuming I could have got that working, to be useful I would need a data connection for the Pi (it can't use wi-fi or cellular from the iPad over the USB-C connection); the Pi can be very fiddly to set up on a new network (particularly if you haven't installed the desktop version of Raspbian) and I'm not really up for that challenge
- the Code Server experience was still quite slow
The allure of a proper editor is that I would be able to run a web-app locally to be able to see what it's doing, and to have a good visual experience when writing/editing code.
The first of those isn't happening on the iPad, but there is now a way to get a decent editing experience with git integration. Enter:
- Working Copy — a git / GitHub client for iPad; and
- Runestone — a high-performance text editor with a range of syntax highlighting
I've been experimenting with these two for the last fortnight, and the joy is that Working Copy can now be exposed as a "location" in the iPad's files app — so I clone my repositories from GitHub, easily edit text files in Runestone, and then push the changes back to GitHub in Working Copy. Add the Affinity suite of apps (Designer, Photo and Publisher) and I can also work with, or create, the design assets that I need.
Not quite "problem solved", but definitely a set of tools that I can work with.
... and Hardware ...
So that leaves us with hardware — namely a keyboard case that's worth having, and a data plan that isn't a total rip-off.
For the keyboard case — I have (or have previously owned) both an Apple "Smart Folio Keyboard" and a Logitech "Combo Touch". From those experiences, I know that what I want is:
- real keys (so not the Smart Folio)
- a touch-pad (again, not the Smart Folio)
- a design that doesn't involve a kick stand (so not the Combo Touch) — that's really a commuting issue, where having a kickstand that reaches behind the iPad just takes up too much space to be able to use it on a train
Those criteria pushed me towards an Apple "Magic Keyboard" — with the drawback that they're very not-cheap, coming in at around £250-300. I therefore found myself in the world of not-as-good clone keyboards. These are all bluetooth keyboards (they're not paying to license the iPad smart connector) which means battery and in turn means weight and bulk — in the extreme, 1.2kg (on top of the iPad's at about 600g) and an additional 10mm in depth, much more than I was willing to cart around.
I settled on an APPS2Car Magic Keyboard, which is neither strikingly heavy nor overly thick. Not exactly a brand name to evoke quality, but so far it seems to work well enough and the typing experience isn't bad (but not quiet, bewarned).
... and Connectivity
And finally I needed a data plan. I wanted an eSIM-compatible plan, to pay less than £10 monthly, and ideally get 15-20Gb of data. Enter Spusu, apparently a virtual network that uses the EE network. They sold me a 30GB/month plan for £9.90, price fixed until some time in 2026, which more than suited my needs. (I think that particular deal has now expired and they're selling a 20GB/month plan at the same rate).
So — let's see how well this works out ...
Posted in thoughts