Sunday, August 29, 2010

As Homebrew Reaches New Heights, webOS Needs to Grow to Accommodate It

My Palm Pre is fourteen months old and I still can't find a phone that can replace it. While I have had plenty of opportunities to play with Sprint's Evo 4G and am eligible to upgrade to it; every time I handle it my reaction is the same. I love the hardware but can't help wishing that its Android operating system were half as elegant and as usable as the webOS.

One of the things that has kept me so enamored with webOS is the Homebrew developer community that sprang up around it shortly after the Pre was released. Is your phone too slow? You can overclock it. Need an easy way to block unwanted phone calls? There's a patch for that. Not happy with your Calendar? There's a patch for that too. Ever wish you could use your phone's flash LED as a flashlight? There are actually several patches for that. Not happy with the Pre's messaging app? There are fifty patches for that.

One recent example of the power of webOS Homebrew patches is Advanced Configuration for App Launcher. This patch is a mouthful and so is the list of improvements that it adds to webOS's spartan App Launcher. It also exposes how bad most modern phones are at the seemingly trivial task of launching apps.

Back in the days of PalmOS PDAs and phones like the Treo, the app launcher was a relatively simple application but in comparison to the webOS launcher it is far more powerful and sophisticated. It allowed users to easily organize their apps with categories that could be added, deleted, and renamed. And there were numerous third-party launchers available for PalmOS which provided users with a wealth of customization options.

The webOS launcher by contrast comes with a measly three unnamed screens with no visible way to create more. (I'm oversimplifying things for the sake of the argument since webOS's Universal Search feature does make it easy to drill down to your apps by typing out the first letter or two of their names but do keep in mind that in the case of the Palm Pre, the keyboard is often hidden beneath its slider which adds one more step to your searches.)

And the situation on other platforms, the situation is not much better. Android borrows a page from desktop computers by shoving all of its apps into its launcher but allowing you to clutter your phone's home screens with shortcut icons. And it further complicates things for users by allowing each handset maker and cell phone carrier to customize the Android user interface, tweaking things just enough so users can't always just jump to a new Android phone without relearning how to navigate through its UI. Apple's IOS4 is the most mature of the modern smartphone platforms and has the most advanced launcher. With multiple home screens, folders, and multi-tasking; IOS4 approaches the power and ease of use that PalmOS had almost a decade ago.

The situation with application launchers is indicative of the atmosphere in which the webOS Homebrew community is operating. Modern smartphone OSes are powerful but they have also thrown away a lot of little things that made older smartphones like the Treo so easy to use and powerful in their own right. In the year since the Pre came out, numerous webOS patches have been created just to improve the launcher: patches for creating, naming, and organizing launcher screens; for hiding and unhiding apps; and for making it easier to navigate through app screens. Advanced Configuration for App Launcher brings all of these tweaks under one roof. It allows you add and delete named pages to the launcher, creates tabs for easier navigation between screens, the list of features goes on and on—but more importantly; this patch makes it easy to turn features on and off; so your launcher can be as simple, or as complex as you wish.

While Advanced Configuration for App Launcher is a potent example of how a handful of hackers working in their spare time can build powerful software for webOS, it also points to the limitations of what Homebrew can accomplish. This patch has been a huge pain in the ass to install in recent days. And since it is being updated frequently, it has to be reinstalled a lot. And the author of the patch even warns you that it conflicts with a lot of other patches. In order to get Advanced Configuration for App Launcher to install, I had to use the Emergency Patch Recovery utility to uninstall all of my patches and reinstall them one by one, beginning with the problem patch.

While in the past I haven't minded wiping out all my patches—I even appreciated the opportunity to rethink how I use my phone and which patches I want to install. But I don't want to have to do this every time one of my patches is updated.

And this problem is becoming more common. As the number of webOS patches grows, the number of potential conflicts between individual patches grows. While webOS Internals and other Homebrew developers have worked hard to create tools to make the patching process as painless as possible, there is only so much that they can do. Sooner or later, it will become necessary for Palm or perhaps HP to get involved with the Homebrew community beyond just offering gentle encouragement.

Many webOS patches are simplehacks which should have been in webOS from day one. Palm should be looking at the Homebrew patches that are out there and adding some of them to webOS. They should also create some sort of framework which will make it easier to add little tweaks (maybe HP-Palm can call them "extensions") to webOS without restarting the UI. As HP prepares to build a wide variety of devices based on webOS, such a system might even make it easier to customize webOS for use on a variety of form factors.