A few days ago AppStoreHQ released stats to say that from all the iOS and Android developers, only 1,412 developer have released apps on both platforms. On individual platforms AppStoreHQ claims there are 43,185 iOS developers and 10,199 Android developers.
Only 1,412 developers writing apps for both Apple and Android platforms. That seems very low.
To date I’ve used web technologies to build my apps – HTML, CSS, Javascript, Jquery, and sometimes Jqtouch. I made that choice for two reasons: firstly, they are technologies that I’m very familiar wit, and secondly, web technologies had the lure of “write once, run anywhere”.
But I soon discovered it wasn’t that simple – even using web technologies, cross platform development is a female dog.
Take I Can Has Cheezburger Pro Clock as an example. I started to port it to Android from iOS. Having ported before, I already knew there were some differences I’d need to handle – very basic things such as preventing the web view from scrolling, both from touch and arrow keys (which don’t exist on Apple platforms) – so I handled them and expected the app to work. It didn’t.
Every time I port an app, I come across yet another “implementation difference”. I thought I’d got them all, but no. This time the “difference” is just maddening – click events on blank areas of the screen are being executed on other areas of the screen.
Arrrrrghhhhh.
Such issues are not limited to Android either. In June I wrote about the iPad’s localStorage bug. Darn, I wasted some time on that one.
The promise of web tech may be “write once run anywhere”, but as yet, it doesn’t achieve it. Just look at the bug list in Jquery and you’ll see some of the challenges. Search for Android in the list and you’ll see it doesn’t appear once, and I don’t think that’s because Jquery has a perfect record on Android – it’s more likely there are bugs there that have not yet been reported because of the comparatively few Android apps out there (Apple only has a handful of mentions but significantly more apps).
I’m not picking on Jquery here – I think it’s fantastic – I’m just highlighting the challenges web developers face. It’s incredibly difficult to “write once, run anywhere”. The challenges don’t just stop at bugs and implementation differences either – there are emulator bugs on Android, and Apple and Android users interact with applications differently. I’ve written about some of those other challenges in this post: The top five things I learnt as an Apple developer moving to Android development
I was rather shocked when I saw how low the number of cross platform Apple Android developers there are – but thinking about it, and going through the experience of yet another porting, maybe it isn’t so surprising. I’d love to see stats on how many developers have started porting apps and given up. I’ve certainly considered giving up on Android development in the past myself because of the effort v sales ratio compared to Apple, but so far I’ve stayed with the platform because, fundamentally, I believe it’s important to support Android and help it grow. It has stopped me from porting all my Apple titles though.
I Can Has Cheezburger Pro Clock is available on AppStore now, and it will be available on Android once I can track down the 2.1 bug. Beer in Japan and Beer in Korea are both available on Android Market.