NOTE: I do not work for any of the companies that make any of the products below, nor do I earn anything from mentioning their products. I’m just being my usual opinionated self. I am writing this on my iPad.
I was in a conversation the other day about how I was using my iPad with Magic Keyboard has been for development. During this conversation I had to reveal the unfortunate truth: my job frequently has me writing more documents than code these days. That doesn’t mean I can’t hack on it a bit, and I’m sure some folks have found interesting use cases, but it does mean that it is not yet my daily driver when I need to write code.
There’s still no great editor support on iPad. There’s VIM, but it doesn’t integrate with any of the iCloud or Git or Dropbox apps. Some editors offer SSH/SFTP/S3 integration. Coda seems to be the best one so far, and it isn’t really what I want. None of the usable editors are free (you’ll detect a theme developing).
There are excellent terminal emulators. My favorite is Prompt, by Panic, Inc., and it has all of the things I want without a bunch of extra stuff. It’s not free either (see? theme). My favorite use case for Prompt on the iPad is when I’m writing something—usually some technical document—and I need to verify the details I’m about to embed in a document.
Web-base tools are just great, and I’m being serious. Here’s the list of web-based tools I use:
- repl.it - This is a wonderful site for more senior devs to use when peer-reviewing code when they need to put together proofs. It’s also great for quickly testing out a code idea.
- codesandbox.io - Even when I’m on my regular MBP workstation, I still use codesandbox.io to test out React or Vue. I use it a lot to make sure I understand a piece of code someone else brought me.
- Github Codespaces - This is a new thing from Github. I’m still exploring the boundaries of it, but it seems like a ground-breaking new development for those of us who like the form-factor of the iPad for out-and-about hacker lifestyles.
Most of these tools are free, but have upgrades available. I upgrade for codesandbox.io, and I have a premium Github account. Codesandbox.io used to be on Patreon, but they’ve grown since then.
There are a few good Git clients, but I do have a favorite. Working Copy is outstanding. The UI takes a little getting used to (it’s not super intuitive), but it has all of the functionality that you want, and its built-in editor isn’t terrible (has good syntax highlighting, works within iPad keyboard shortcut norms, etc).
My favorite thing about Working Copy is that it integrates with the Files framework in iPad, so if you check out a repository in Git using Working Copy, you can make it so that Working Copy shows up in the Files app so that you can edit the files using other apps.
If the folks who made the VIM app would add the ability to integrate with Files, and they’d give me the ability to add my
~/.vim to the mix, it’d be all over (except when I want to use my mechanical keyboard).
As I’m sure you’ve guessed, Working Copy with all of its features is not free (theme).
Since I write a lot, I like writing tools too. Ulysses is probably my go-to, but here’s my list.
- Ulysses is general-purpose writing. It’s got the ability to keep notes, and it uses Markdown-like syntax for formatting. It also works with Markdown files. When combined with Working Copy, I can edit and version-control documents, I just have to go back and forth to commit changes. Ulysses is not free, it requires a monthly subscription.
- Scrivener is an app that I’ve wanted to get into for writing. It’s supposed to be ideal for research writing, and for story writing where you have to do a lot of development, but its interface and lack of good Markdown support have just never really worked for me. Scrivener is a bit more expensive, and I splurged on it once with credit card rewards. I don’t know if I would pay for it with real money.
- Agenda is the app I use for meetings, and for time-based prep. If I’m about to steal away a few hours to write a tool or something, I’ll schedule it on my calendar and then use Agenda to make a to-do list. Think of Agenda as a good way of attaching full-featured notes to your calendar. This app I use a bunch, and has an annual subscription.
- DevonThink Pro is the app I use for keeping track of snippets and notes, and I frequently import documents that I need to remember later but not tomorrow. It’s got an excellent search capability that allows me to search across websites I’ve clipped, PDFs and Word docs and Markdown files that I’ve been collecting, and it’s how I remember documents that I knew I would need to reference later. It’s the “safe place” that I put things I don’t want to forget. DevonThink Pro is a bit expensive, but it has saved me from my own forgetfulness that I don’t mind pay for it again.
None of this stuff is Free/Libre/Open Source Software. This really shouldn’t surprise us too much; while it’s not impossible to use open source stuff on an iPad, it isn’t easy. If this is a deal-breaker for you, there’s a good chance you don’t have an iPad anyway.
Now, the Magic Keyboard. iPads have supported keyboards via Bluetooth for years now, so the Magic Keyboard isn’t that new, but the more explicit support for physical keyboards really is. For me, I map the caps lock to esc (same as any other machine), but that’s all I modify. That modification can easily be done within the built-in iPad keyboard settings.
Not all apps have great support for the keyboard. There’s some latency which introduces interesting challenges for app developers I’m sure, but here’s my list of gripes (almost all of them are keyboard-focus related):
- Cmd+F in Firefox - I would expect my cursor to focus on the search field that appears, but it doesn’t.
- Cmd-T in Slack - The first keystroke after this key is frequently lost, requiring me to back-space and retype.
- Alt-Tab in any app can lose the first few keystrokes due to latency.
- If you’re in an app, and you slide the Dock up, and then you Cmd+Space, it won’t let you type. I’m wondering if the Dock is blocking the input or something.
Then there’s the touchpad. The touchpad works quite well, but I’ve found that there are some websites where I can’t use the trackpad at all to click on things, I have to touch. It’s weird how this breaks.
I do very much like the tablet lifestyle, and with homeschooling my kids I spend half of my work day on my iPad in the kitchen, and the other half in my super sweet home office. I’m able to use the iPad more and more, especially with better pencil support. It’s still not a daily driver for development though.
INVITATION TO PARTICIPATE: I value peer review, and if you read this and you have corrections or notes, I invite you to send me a message with those corrections or notes.
If you wish to share your thoughts on my setup, and would like to compare/contrast your setup, please add a comment to this post and I will read it (even if I don’t have anything to say in response).