Today, I will talk about my adventures and whether it is possible to code on an iPad. Several months ago, I found myself without a desktop computer and decided to replace it with an iPad with a keyboard. If Apple products annoy you, feel free to skip this post. Or you can read it if you still want to learn about such a rare phenomenon and a new kind of computer.
Every time I start talking about my work setups, there is some misunderstanding: why not use a Lenovo laptop with Kali? The reason is simple – these days my work tasks lie mainly in the sphere of writing articles, emails, and working with documents. The ability to dig deeper into the command line is an excellent elective.
Last year, my primary device was a Mac Mini on an M1 with an external monitor. But a couple of months ago, I made a grave mistake. I accidentally sent the monitor to a warehouse, and I myself went to a country house in a distant region. When I began to sort the boxes that arrived, only the Mac Mini system unit was found. Can you imagine my cry of horror and despair?
I howled my hands, but not for long. By that time, I had already thought about temporarily borrowing an iPad Pro 12.9 from my former neighbor whom I found with the help of a People Search service. I planned to purchase a Magic Keyboard for it and try to work and use it as a laptop.
At first, the experience of an iPad with a keyboard and mouse is very strange. It’s like you got inside the screen with your cursor with the help of a dirty hack. But it takes a little to get used to it, and you realize that this is a kind of a completely different, new and unexplored type of computer.
I was afraid that the lack of traditional windows would be a barrier to productive work. In vain! The latest improvements in iPadOS address this problem quite well. At the top of each application, there is a “three dots” button, clicking on which displays a menu for switching to Split View and Slide Over modes: split in half or a floating window.
These features not only work well but make juggling tasks sometimes even more convenient than in a system with overlapping windows. Some stiffness is compensated by the fact that you no longer need to look for windows with your eyes and adjust their size and location.
Problems, however, also occur. So far, not all programs are well adapted for the keyboard and touchpad. And one of the main offenders is Telegram. Due to some internal problems, from time to time, it stops responding to clicks made by the mouse cursor and is buggy when the screen is rotated.
Other programs also have minor problems. In general, the excellent Spark mail annoys that every now and then, it does not want to copy text using Cmd-C. Or for example, the beautiful Bear markdown editor does not support text search: you press Cmd-F and nothing happens. iA Writer is another wonderful markdown editor but tends to crash and lose some data if you suddenly decide to open another document in another window.
However, with all the above issues, I did appreciate the power of the Share button, which is located on almost every screen of every app. Data is easily transferred from program to program (or even to your script) without any need for files or a desktop. I think I will miss it when I finally get my desktop computer back.
As you already understood, it is not a problem to juggle organizers, email clients, and documents on iPad OS. And what about coding?
Yes, you can code! And you are not limited to Pythonista, Codea, Swift Playgrounds, Shortcuts and other methods native to the iPad. Even portable “nixes” like iSH and a-Shell are present.
Alternatively, you can use a Raspberry Pi or a remote SSH server and install whatever your heart desires, including Vim or Emacs. Vim users need to know that the Magic Keyboard doesn’t have an Escape button, just like the entire top row of F-keys. But the situation is not hopeless. You can reassign Escape to Caps Lock or the Globe button.
I also recollected that there are cloud IDEs and decided to try repl.it and Glitch. Both are quite workable, especially if you are doing backends. Both give access to many languages and frameworks, allow you to install modules, and give you access to the command line. However, both of them launch projects for a long time due to the fact that they constantly strive to extinguish your container and build it again the next time they start.
And then an even better solution was found – VS Code. Yes, the good old VS Code, which has now become the de-facto programming standard. It is uncut and with full support for extensions! How is this possible on iPadOS? The fact is that VS Code is, in fact, a web application packaged in Chromium. Nothing prevents you from installing it on your server and opening it in a browser.
Such a version of VS Code already exists. It is called code-server and can be installed literally with one command. After that, you open the page and work with the VS Code your usual way. No problems or tricks except that you need to configure HTTPS.
A full-fledged terminal is available here, and it continues to execute commands even if you close the page. The interface is responsive, as it is completely loaded into the browser, and only the necessary data is sent between the client and the server. For comfortable work, you need a stable connection, but not necessarily a fast one.
- Coder.com – is an enterprise version of code-server created by its developers.
- VSCode.dev – is a browser-based version of VS Code deployed by the development team at Microsoft. Works in demo mode only.
- VS Code Server – is the official component of VS Code for working remotely with code (in this version, VS Code acts as a client).
Don’t get confused!
Finally, I want to recommend software that makes any geekiness on the iPad more pleasant and more fun: the Blink terminal (it’s worth installing just for having SFTP support in Files), the Web Inspector extension for Safari, the Runestone editor, and the Jayson – JSON viewer and editor.