An HTML5-Based iOS App
Short version: I built an HTML5-based iOS app, and you can download it here.
Long Version: A while ago I decided to build a particle system in JavaScript with the canvas element. This is certainly nothing original, but I thought it would be both fun and a good learning experience. I’d planned to just post it on my blog and move on. It turned out that it was a lot of fun, and it was a great learning experience.
But when I implemented touch events and tried it on my iPad, I immediately discovered that it was insanely more fun with multi-touch than it was with a mouse. Of course I could have just made it a web app and left it at that, but I’d been looking for an excuse to experiment with the Apple App Store, so I decided this would be it.
I’ve never approved of HTML-based apps that attempt to replicate native look-and-feel or native functionality. It can be done, but it usually just results in the uncanny valley: glitchy page transitions, scrolling that doesn’t feel right, and components that look like they came from the previous OS version.
So my first requirement was that it be indistinguishable from a native app. I think I’ve mainly accomplished that, which I’m pretty happy about. And fortunately, a canvas-based app makes it easy to stay away from native look-and-feel.
But the big downside of doing this with JavaScript is that the performance is nowhere near as good as native code would be, especially without Nitro in webviews. I wasn’t able to get performance where it needed to be on older devices, so I ended up restricting it to iPhone 4+ and iPad 2+. My apologies to those of you with older devices.
I know I could have built it with native code and gotten amazing performance on older devices – but I frankly just don’t have time to really learn another platform. It’s hard enough to keep up with the web, and that’s where I want to stay focused.
One more apology: I’m charging $0.99 for it, mainly because I’d like to get back some of the developer license cost. I’m planning to make some enhancements to it, and in a year or so I’ll probably make it free. If you do try it out, please let me know what you think!