my prior request regarding opening up the iPhone for third-party development. At the time I wrote that request, I was convinced that some Apple-approved method of running true third-party applications (and not just
nicely-formatted Ajax Web pages ) was a key missing feature in the iPhone’s capabilities. Well, I’ve had my iPhone for a couple months now, and I’ve changed my mind: Don’t worry about coming up with a third-party iPhone
SDK. Really. Just pretend I never wrote that piece.
Instead, I have a new request. Just do nothing at all regarding third-party application development on the iPhone. Nothing to encourage it, and most importantly, nothing to discourage it, prevent it, shut it down, or otherwise stop it from happening. Thank you.
So why would I (fictitiously, of course) write the above letter to Apple? Is it because I no longer feel third-party applications are important to the iPhone? No, that’s not it at all. Is it because nicely-formatted Ajax Web pages really do get the job done? No, that’s not it either. So why am I no longer concerned about Apple providing an official third-party SDK? Quite simply, I’m not concerned because a number of very bright, talented, and motivated individuals have managed to actually do the job themselves, without any help from Apple. Thanks to these amazing individuals, my iPhone is now just as capable (with one minor exception, discussed below) of a tool as was my Palm Treo.
So, Apple, don’t worry about that official third-party development kit for the iPhone. But please, do leave the third parties alone—they’ve done a great job so far, and I’d hate to think that future “upgrades” to my iPhone would remove the functionality that these third parties have provided. Please, just let us be!
Third parties and the iPhone
Now, just what is it that these third parties have accomplished so that I no longer feel Apple needs an official development kit? In an amazingly brief period of time, they’ve taken a supposedly-closed platform without any developer documentation of any sort, created an installer that makes installing applications as simple as it is on any OS X Mac, and developed a number of truly useful programs. That’s quite impressive when you consider that the iPhone has only been available for about 75 days.
In the beginning (i.e., 30 days ago or so), hacking your iPhone to use true third-party applications was a complex process, as Ben Long explained in
this piece from mid-August. Since then, however, the
Installer.app beta has been released. Hacking your iPhone is now a simple three-step process: (1) Download and run Installer.app on your Mac with your iPhone connected; (2) switch to the iPhone (you can disconnect it from the Mac at this point) and launch the now-present Installer; and (3) install any number of third-party applications. After you use your Mac to load Installer.app on the iPhone, everything else happens on the iPhone—software is installed and updated over either EDGE or Wi-Fi.
Installer is much like a package manager, for those familiar with Linux (or for those who’ve installed
MacPorts on their Mac). Installer has four tabs—Install, Update, Uninstall, and Sources. All are self explanatory, except perhaps for Sources, which simply lists information about the groups responsible for the various applications. On the Install screen, the available programs are grouped into categories; tap any entry to learn more about that particular application. Here’s a look at the Install tab on the left, and the details you’ll see (on the right) when you tap any entry in the list—this entry happens to be for a game called Butterfly.
So exactly what can be installed? An amazing variety of programs, actually—as of today, there are 85 packages listed in Installer, covering everything from Unix tools (including a web server—yes, your iPhone could serve up web pages) to games to productivity apps to demonstration apps. (
This list covers most, but not all, of the third-party applications, and
this list has more detail on many of the packages). Here’s a quick look at some of the things I’ve got installed on my iPhone.
BSD Subsystem: This package adds a standard selection of Unix programs to the iPhone—things such as top, curl, wc, etc. The other reason it’s important is that many other useful programs require it to be installed.
Erica’s Utilities: This is a collection of useful command line tools, including one that is absolutely essential for people writing about the iPhone: snap2album grabs a screenshot and saves it in the iPhone’s media folder. All of the screenshots in this article were taken with snap2album.
OpenSSH: OpenSSH allows you to use ssh to login to your iPhone’s command prompt. Why is this important? The apps installed with the BSD Subsystem and Erica’s Utilities are command-line apps. So to run them, you ssh into the iPhone from your Mac, and then enter the command’s name at the prompt. To take a screenshot, for instance, you navigate to the screen you’d like to capture on the iPhone, then ssh from your Mac to the iPhone and type snap2screen.
SummerBoard: The iPhone’s main screen displays three rows of four icons. When you install Installer.app, it becomes the first icon in the fourth row; additional programs fill the remaining three slots. But then that’s it—the iPhone’s screen isn’t designed to scroll, so there’s no apparent way to run the additional programs you’ve installed. As a solution, there are a number of launcher applications, but SummerBoard is the best one of all—it makes the main iPhone screen scrollable and adds a whole set of preferences to customize the look of the screen, the docking area at the bottom, and the background image. On the left, you see the icons half-scrolled off the screen; on the right is the customization screen:
SummerBoard works really well, and most importantly, it feels completely natural, as if that’s how the iPhone’s main screen was designed to work. If Apple ever decides to expand beyond 16 icons, it should look at how SummerBoard solved the problem.
MobileTerminal: A Terminal emulator for the iPhone. With MobileTerminal installed, I can use ssh to connect to my home Mac, for instance, directly from the iPhone.
VNsea: This is an iPhone implementation of
Chicken of the VNC, a free application that lets you connect using the built-in
VNC server in OS X. In a more plainly-worded manner, it means I can remotely control the GUI on any of my Macs using my iPhone. As an example, here’s
MacTracker showing its AppleTV info on my MacBook Pro, as viewed from the iPhone:
At present, you can’t rotate your iPhone to get a landscape view of the remote Mac, and it’s limited to view only: there’s no keyboard input that I can find (short of using the Keyboard Viewer mini-app on the OS X machine). However, VNsea is only a day or so old, so I expect more functionality in future releases.
MobileChat: A true IM application for the iPhone. This is very nearly a perfect replacement for iChat, with one (hopefully soon to be resolved issue): You can’t presently use .Mac accounts. Unfortunately, that’s what I use 99 percent of the time, and it’s where my complete buddy list resides. I have an AIM ID, and I’m using that in the interim, but it’s a pain to have to manage two buddy lists. This is the only capability I had on my Treo that isn’t yet completely replaced by one a third-party application, but hopefully, .Mac support will be coming soon.
Other stuff: Beyond the useful apps, my iPhone is also now a much more entertaining device. I can play the excellent text adventure games Zork and Hitchiker’s Guide to the Galaxy using a program called Frotz; versions of Yahtzee, Tic Tac Toe, Minesweeper, Pong, and Tetris can be installed, and there’s even a fully functional NES emulator, complete with sound—Donkey Kong, anyone?
Beyond the games, I’ve installed a set of third-party ringtones (as well as some of my own, thanks to Rogue Amoeba’s
MakeiPhoneRingTone ), a new set of dock background images (the dock is the “fixed” row on the iPhone’s screen, at the very bottom), and an IRC app. (Both
BitchX are available.) In short, with the exception of a full .Mac-capable iChat client, my iPhone is now everything I’d ever want it to be—and it just keeps getting better every day, as more and more programs are released.
Please, let it be
The Beatles on iTunes again…just please, Apple, leave the third parties alone. They’ve done a great job so far, and I can’t imagine an official Apple third-party application solution that works any better than the one that’s been developed independently.
Steve Jobs expressed concerns about iPhone stability and network problems as two issues related to third-party apps on the iPhone. So after all my hacking around, is my iPhone less stable with some of these programs installed? Overall, no. Definitely some of the apps, being very early betas, are unstable and have quit on me. But I have yet to experience any sort of total iPhone lockup, and all of the Apple-provided applications are still working perfectly.
As for network issues, well, I haven’t had any so far. If it’s load on the network that’s a concern, it’s important to realize that many of the things that I’m running as standalone applications are available as iPhone-enabled Web pages (chat, IRC, etc.). So the network load from those pages should be no different than the load that comes from running a standalone application version of that same service.
I’m dreading the next official iPhone software update, as I have this nagging feeling that all the hard work done by these talented developers is going to be lost—with a couple minor tweaks of the iPhone’s code, everything I’m presently running could vanish in a poof of update smoke. Last week, I thought there was light at the end of the tunnel when I saw
this blurb, wherein Apple’s Greg Joswiak told some PC Magazine staffers that Apple didn’t oppose third-party application development, and that the company wouldn’t design software updates to break apps (but that it wouldn’t test to insure they kept working). Alas, later that day,
an update to the original story changed things for the worse, with Jozwiak now stating that “software updates will most likely break” native applications. If true, that’s too bad; there really is a thriving, talented, and motivated community at work here, and it’d be a shame to see it all go away.
Needless to say, when the next iPhone update comes out, I will not be the first on my block to install it—I’m enjoying my iPhone’s added functionality too much. Hopefully Apple can understand that all this third-party activity is good news for the company, as it gets more people interested in buying an iPhone, thereby getting Apple that much closer to its 10-million-units-in-2008 objective. Any actions taken to stop this activity, however, will have the opposite effect in the community, and I’m not sure that’s the type of iPhone publicity that Apple is interested in receiving.