A new iOS app called iSH could pave the way for more powerful programming features on iPad and iPhones—provided Apple lets it stay on the App Store.
On Oct. 22, three programmers named Theodore Dubois, Saagar Jha, and Martin Persson uploaded an open-source app that essentially ran a copy of Alpine Linux inside of an iOS app. This is the computing equivalent of running, say, Windows 95 on your iPad Pro. Because modern devices have far more processing power than previous computers, running something like Alpine in an app is trivial, and the result is an entirely new experience that would let programmers use text editors like Vim and Emacs and connect to servers right from their Apple devices.
“There’s long been a hole in the iOS ecosystem for a ‘real’ terminal that isn’t just a SSH client or a handful of commands compiled together,” said Jha. “Personally, when I joined the project I thought the design was kind of insane, but it has held up remarkably well for iSH: the Linux/x86 compatibility layer has given iSH a massive amount of flexibility, and Apple’s processors have gotten fast enough that a project like this is actually feasible when it would have been completely infeasible maybe even five years ago.”
The reason you’d want to do this is simple: You could do away with your laptop entirely and edit and submit, if not compile, code right on your iPad. Further, it allows users to have a familiar command-line user environment. What iSH doesn’t do is connect to the phone itself, which means you won’t be able to access system resources outside of the traditional app sandbox.
But because iSH supports updating—which could be seen as essentially an app store within the app—Apple was upset. According to Section 2.5.2 in the App Store Review Guidelines, Apple forbids apps that download apps.
From the guidelines:
Apps should be self-contained in their bundles, and may not read or write data outside the designated container area, nor may they download, install, or execute code which introduces or changes features or functionality of the app, including other apps. Educational apps designed to teach, develop, or allow students to test executable code may, in limited circumstances, download code provided that such code is not used for other purposes. Such apps must make the source code provided by the Application completely viewable and editable by the user.
In other words, Apple doesn’t want app updates that occur outside of the App Store. This is due to caution on Apple’s part—they don’t want your social media app to suddenly update itself and turn into a surveillance system—but it also means you can’t, say, write and compile an app on your device, a feature that would truly turn iOS into a developer’s dream.
That said, as we’ve seen recently with the popularity of app shortcuts and widgets, Apple is actively encouraging users to use scripting features on its devices. This is a double standard.
“At a high level, Apple has selectively targeted iSH using section 2.5.2 without fullying understanding our application, their own guidelines, or the consequences of what they are asking and how they affect the App Store ecosystem as a whole,” write iSH’s creators. “Consistent enforcement of Apple’s incorrect interpretation would require the removal of all scripting apps, including many of the most popular applications in the App Store and some of Apple’s own applications.”
The developers actually followed many of Apple’s guidelines, including removing the package manager (called “apk”) that worked in Alpine Linux. This reduced the usability of the app considerably and, while there was an easy fix, it still didn’t appease the faceless App Store reviewers upon their first look.
Will most people ever want to run Linux on their iPhones? Probably not. But there could be a time where you’d want to run Windows NT or other classic software on your device, and the iSH decision could directly affect that ability going forward. It also shows developers just what Apple thinks of the iOS platform as a desktop replacement.
The team recently reported that Apple has gotten back to them about these concerns and that they won’t be removing the app for the time being. It’s an interesting and important move in the slow process of potentially making iOS Apple’s primary operating system. Whether it happens or not depends on the fate of apps like iSH.
“We built iSH for ourselves, but in doing so we were really building it for the many thousands of people who were looking to fill the same hole we did,” said Jha.