Coding with your phone? Experience with iPhone 12 Pro Max as a SSH Client.
Fig.1 Screenshot of using vim on my phone.
Can you use your phone to perform your daily coding/development task?
The moment I got my hands on the new iPhone 12 Pro Max, I am amazed by its large screen size. Immediately, I started to wonder what is the experience of running a terminal-like app on the its screen? I gave it a try and here are my initial thoughts.
Hardware: iPhone 12 Pro max + Logitech K480 Bluetooth keyboard.
Software: Terminus SSH Client.
Fig.2 Terminus App
Note: This article aims to share the experience of using a large-screen phone (without external display) as an SSH client. This article does not concern the computing power of iPhone as the workload computation is performed on a remote server whose computing power can be configured by the user.
- *Oh boy, it is smooth*. Without surprise, the A14 chip and Wi-Fi 6 is definitely enough to run a SSH client smoothly. As expected, there is no lag. Running a SSH client on the new iPhone is just like a running a local machine. I remember about 6 years ago, I experience lag from time to time running a SSH client even on my laptop (slower internet was part of the reason as well).
- *Full functionality*. With the Terminus app, you have a variety of tools at your disposal: regular SSH functionalities, port forwarding, secure keychain, mosh etc. Not even to mention, Terminus itself is fairly pretty as well, with different themes (including dark mode) and configurable fonts.
- *Cumbersome multi-tasking*. iOS limits the time app can run in the background to less than 30 seconds. iOS has good reasons to do so, for example, stop background app extends battery life. However, that also means each time you switch to a browser to look up something, which is a very frequent operation for many (if not most) programmers, you lose your SSH connection when you come back to Terminus and lose whatever job you are running in your terminal.
- *The need of a keyboard*. I found it essential to have an external keyboard to being able to work for an extended amount of time on your phone. The virtual touch keyboard is just not precise and efficient to substitute a regular keyboard. Carrying a full size keyboard kind of defeats the purpose of programming on a pocket-size device. Luckily, we have seen more and more portable keyboard emerging that types well and is lightweight.
- *Size of the screen*. From time to time, I dream myself as one of the super-hackers in the movies who can do mission impossible via a random hand held device. I also heard arguments that smaller screen helps you to focus better. But oh man, at least for me, when coding extended hours, I want a larger screen then a 6.7” display. That said, I wouldn’t mind coding for an hour or so on the new iPhone when waiting at the airport.
The life saver
I think tmux or other similar tools is a must when coding on your iOS device. It makes sure your can keep running even when your SSH session is lost, which happens each time on iOS device when you switch out from your SSH client app, say, to a browser.
Another small trick. If you are carrying a non full-size keyboard, which is likely to be the case if you want the keyboard to be portable, you are likely to not have the two page up and page down keys, which is quite essential to tmux users. You can set the volume up and volume down to be page up and page down in your Terminus app, which I found super helpful.
Fig.3 Use volume up/down as page up/down.
I realize my experience might not generalize. Out there, there are a great variety of phones, mobile systems and SSH client apps that provides different experiences. However, this try makes me think that using your iPhone as a SSH client and work on a coding project is becoming fairly practical and can even be enjoyable.
Even though I still prefer to work on a laptop or a desktop when I am working on a large project or I want to maximize my productivity, I have no problem coding up something small and fun on my phone. I could also think about how fun it must be simply take out your phone from your pocket and starting coding when you have roughly 10 minutes at the train station, barely an hour at the airport or you are on your way to your date night and realize you just need to run an experiment script (yes, I am talking about you, my fellow PhD students who are preparing their machine learning conference submission)!
In the recent years, people buy iPad Pro and Chromebook as laptop substitute. This article mainly discuss the perspective of coding on your phone. But can your phone be a laptop substitute when it comes to web browsing, document editing and slides making task? Well, aye, my captain, this article is typed entirely on my phone.