Before I get started, I just wanted to get it out there: yes, I bought an iPad. That stupid, consumer-oriented, plus-sized iPod Touch? I've got one in 32GB form. And you know what? I don't regret buying it. Nothing's quite the same as holding the Internet in your hands... in a form you can actually read it in (without the need for a mobile site). 99% of sites I go to work just fine without Flash, thanks to the video codecs and HTML5 tech that Apple stashed in this device. You can't code on it or manage the filesystem (by default; it's been jailbroken already), which seems like a turn-off for a lot of tech-oriented people. But it's great for what it's meant for: light consuming. From the comfort of my couch I can check Hacker News, Twitter, and Facebook, without any boot time or logging in. The Apple phrase strikes again: it just works. That is all.
There are two paths that a programmer can take when deciding to write an app.
The extremely obvious route: grab a developer's license and do it Apple's way. This means getting a Mac if you don't have one, learning Objective-C, and submitting to the App Store. Designers find this the easiest, I would think, since you can use an interface designer and other neat XCode tools.
But then there's the new app toolkit: HTML5. Apple, despite its closed ecosystem, has been almost at the forefront of implementing the new HTML spec. Developers have a pretty complete API thanks to MobileSafari, which provides offline storage & app downloading (via SQL/localStorage and cache manifests, respectively), native animations through the -webkit CSS extensions, and low-level touch events (including multitouch). There's not a whole lot missing from this set, and you could build an app without much trouble using familiar technology.
jQuery is pretty much the Web 2.5 mascot. Anybody who has looked at the source code of a major site has seen the telltale dollar sign: $(selector) There's a reason it's everywhere: jQuery makes DOM traversing easy and almost likable. So what better to write an app on? That's what the jQTouch team (http://jqtouch.com/) thought too. jQT formats your lists for you, handles animations from one screen to another, and more. It's ridiculously easy, and it works for any device with a bit of tweaking. iPhone's tiny screen is default, but a bit of float and you can hack up a two-column iPad layout.
Interfacing is easy. The .tap() handler is your new best friend, letting you capture (and optionally pass on) the iPhone's click. AJAX is provided by jQuery by default, and in-app links are just anchor tags (hence the #main in the iPad screenshot URL) that transition via Webkit animations. It's all smooth and very well-put together. If you don't believe me, go buy Keypoint for iPhone, a commercial jQT Keynote clone. If you want to test it out for free, there's always the slick jQT demo that you should visit (and add to your home screen to demo that, too).
App development is a bit more complicated than explaining the tools, so I'll get to that in another post. But jQTouch is definitely worth a look. I've used it quite successfully to build a couple one-off local apps that I'm running.
Comments
YOU BOUGHT AN IPAD!?!!
Was your data taken by the whole hackers breaking into AT&T thing?