This is the final post in a series looking at developing for the other tablets coming to market in 2011. So far I’ve looked at the PlayBook and Android devices, and we’re wrapping things off with HP’s recently announced TouchPad.

What is it?
In terms of hardware, the TouchPad is more like an iPad than anything else coming to market, with a 1024×768 9.7 inch display, although it’s more powerful than the iPad 1, with 1GB of ram and a 1.2GHz dual core processor. What makes this a bit more interesting is that it’s running the highly acclaimed webOS, which shows up iOS in some areas like notifications and multitasking.
Unfortunately I’m still waiting to be added on to HP|Palm’s early access program so I haven’t actually been able to look into the tablet specific tools. Rather than wait endlessly, I’ve taken a good look at the current tools as well as researching into what’s to come.
Technologies
webOS itself is a propriety Linux based OS that uses WebKit for all of it’s interface. This means that all of the apps are written using web technologies – namely HTML, CSS and JavaScript. At first this sounds like it’s going to be extremely limiting, but the more you listen to the thinking behind it all, the more it kind of makes sense. And it’s actually not too bad to develop for, although JavaScript is a long way from being my favourite language. The current framework provided to you for app creation is called Mojo, which will be supported as far as possible in the future, but it’s about to be superseded by a completely new one called Enyo. So maybe if you’re thinking of learning this side of things it would be best to hold off a little while and jump straight to Enyo.
Now web technologies clearly aren’t going to cut it when you need high performance, so you can use the PDK to create plugins that run natively. The PDK can also be used for making games using OpenGL and C++. There are several stories of respected indie game devs like Mike Kasprzak and Phil Hassey porting their games to webOS in a matter of a few days. It sounds like it’s easily done if you wrote portable code.
Tools
Again, there are many options here. If you want to use an interface designer and code in your web browser, you can use something called Ares. Ares is certainly innovative, but in my experience it wasn’t really that usable. Eclipse is pretty much the official desktop SDK, but there seem to be a lot of people using lots of different tools. I used Espresso, as I’m used to using it for web dev (although I don’t rate it very highly) and found a plug-in for it. Emulation is done using VirtualBox and Palm has done a lot of work to make things nice and simple for developers. Debugging is done in the terminal and works well, giving good descriptive errors when things go wrong. I did find myself longing for compile time errors though, but maybe with a better IDE I would have had fewer issues.
Documentation and Resources
The documentation for webOS is really good, and there are tons of ways to learn. I watched the Stanford lecture series on iTunes U, which was very helpful indeed. There are also Palm podcasts, forums and an active IRC channel to help you out. The SDK gives you all of the source code for the apps that ship with the devices, like email, messaging, the browser etc. which I found myself using a lot to work out best practices and what type of element I needed to put where.
Costs
There’s no sign-up charge, and no charge to submit an app. What’s more, if you ask nicely, HP will send you a test device for free. I’m told my Pre 2 (worth a fair few hundred quid!) is on it’s way – thanks HP!
Review
4 star – HP|Palm really are proving that people other than Apple can make a decent operating system with decent development tools. In some ways things aren’t as nice as developing for iOS, such as the tools and the languages used, and in some ways they’re even better, like the free devices and more human support. I would definitely recommend that you consider developing for webOS, and if you’ve created a game for the iPhone using portable code, then porting should be very straight forward. I, however, used Objective-C and cocos2d for Flying Cats, and after a couple of days wondering if I could use Cocotron to compile the Foundation libraries for Linux with an ARM processor, I gave up! Maybe that’s possible, but probably not worth it.
Of course, if you’re so inclined maybe you could make a game using entirely web technologies. I can see this being a good option for people without much programming experience, who are a bit daunted by cocos2d and Obj-C memory management. You could quite happily make a game that makes use of all the cool stuff in WebKit, then ship it for webOS, iOS and others.
Final thoughts
I’m glad that I finally found another mobile operating system where the development tools didn’t completely suck. Having said that, is cross platform development really the way forward for tablet apps? One thing I’ve only briefly touched on is market share. Currently, the PlayBook, all of the Android Honeycomb tablets and the TouchPad have a combined 0% of the tablet market share, because they’re not out yet. Apple created a new class of device with the iPad, and what’s more is they seems to have done it cheaper than other companies are managing to a year later. Everyone else is playing catch-up, and I can’t see anything that will make any of these new devices really stand out against the iPad. The trend that we’re already starting to see is that the term “iPad” is becoming synonymous with “tablet”, much like “iPod” is synonymous with “mp3 player”. The iPad is still untouchable, and Apple are about to up their game again.
I probably sound like a bit of an Apple fan-boy, and truth be told, I am. I love OS X, I love iOS, I love the apps and the innovation we see, I love the development tools, and I’m probably on my own with this one but I love coding in Obj-C! There’s simply no compelling enough reason for me to want to do develop for anything else right now. So will I be developing across multiple platforms in near future? Sure I will: for iPhone, iPad and OS X.


