I recently created an HTML5 based mobile web app, with the aim that it would work on iOS, Android, and all modern desktop browsers.
Unfortunately, although the demo was viewed as a success since almost everyone viewing it did so using iPads and iPhones, it was a failure in the sense that it didn’t work on all my target platforms … specifically Android.
Here are the bugs I ran into:
- SVG doesn’t work on Android.
- Using CSS 3D Transforms breaks any CSS 2D Transforms you have.
- CSS 2D Transforms + CSS Animations don’t work if there is more than one transformation function being animated.
Given that none of these bugs are in the latest version of Chrome (Chrome 8 ) but are in the latest version of Android (Gingerbread), it makes you wonder how different these code bases actually are, and whether changes have to be manually integrated from one code base to the other. Or, perhaps it’s a purely a question of neglect or a lack of oversight on Google’s part?
Now, don’t get me wrong, I really like Android. I mean, I must do, since I’ve owned all these Android phones:
And, given that I’ve also been a long time evangelist for mobile web apps, you can imagine how upset I was about this! If there was a viable way I could have worked around all these bugs, you can believe I would have! The real kicker though was to learn that my demo works perfectly on Blackberry 6 phones, and this from the company that had the worst smartphone browser of all until just recently!
What The Future Holds?
The good news is that SVG support has finally been re-enabled in Android Honeycomb, having been disabled early on to save memory in the first generation Android phones. I’m now just praying that these other bugs are fixed too (can anyone confirm this?), and that current phone owners receive an update for this in a timely fashion.