This clock thing has taken on a life of its own: A Macworld story, a number of other blog posts, yesterday my blog made the top 10 at reddit.com, and I’ve received a truly shocking amount of email about it too. I seem to have hit on a touchy subject, although the jury is still out on whether this is all real, or just a bit of astroturf set alight in a fanboy flame war.
I suspect most of the popularity of the post stems from the software being so simple. It’s so easy to understand that everyone has an opinion. A living case of a bike shed problem applied to App Store politics.
If you haven’t read the resolution you should. The App Store guys really are doing the right thing, at least as far as this small problem is concerned: A rule that was new to the iPad and to me says that iPad-only apps require more features to get in to the App Store.
Fair enough, but I still wanted a simple clock, not one piled high with unneeded features. So I thought I’d see what could be done in a Web-app. Supposedly, HTML5 and web-apps are the way forward.Watch it Go!
Here’s the result. I left the date in, but took out all the other extras. Enjoy!
Yes. Mostly. But a real app is better in a number of ways.
The irony is that even in the real app, I used a UIWebView to handle most of the animation of the clock. If, like me, you thought that meant I’d lose nothing in the translation to a web-app, you were wrong.Installation
There are a number of small details that Web Apps just don’t get right. First off is the installation. When you install a web-app you have to visit it in Safari first, then add the bookmark to your home screen. Once you have it you no longer feel like you’re running a browser when using the app. The first visit is very “web” and every visit after is very “app.” This disjoint user experience seems flawed.Startup
I don’t know if this is a bug or a feature, but mobile Safari always seems to start up in portrait orientation then quickly switch if needed. This means that if you add a Default.png to your web app you can’t customize it for the various orientations. And it does a flashy quirky thing when you do have the iPad rotated. I just chose to leave out the Default.png as it seemed like it was more buggy than not.Rotation
When you rotate the iPad and Mobile Safari follows along, the region outside of the viewPort comes into view for a moment as the edge rotates through the corner of the display. This out of bounds region is rendered in transparent checks instead of the body background color. I suspect you could create some fantastically complicated way of detecting the rotation and then extending the viewport just in time, but really this just seems like a problem that should be more easily solvable with a bit of CSS.Sleep Timer
Is there a way to disable the sleep timer from within a web app? I couldn’t find one myself. It seems like something that Apple might have added. Maybe I’ve just looked in the wrong docs.
In any case, this is kind of a deal breaker for a clock. Once launched it only runs until the sleep timer kicks in. Maybe OK for an egg timer, but no good as a desk clock.Verdict
Web-apps are fun and easy to write, but they miss a lot of the best features of iPhone and iPad hardware. So, my next stop is getting this app into the App Store. Apparently I need a bunch more features. If anyone has any recommendations let me know.