Embiggening the Tent
The first Android-related Google I/O session will be by Dan Morrill, How Do I Code Thee? Let Me Count the Ways:
Should you write your app in (Java), to integrate cleanly and seamlessly with the system? Should you write your app in the Browser as “Ajax plus”, so that it can run on multiple phone platforms? Or should you go for raw speed, and write part of it in ARM-processor native code?
My guess is that his presentation will be more on the technical aspects of each of his proposed choices, to help guide people in choosing one or another.
There is another way of looking at this topic, though: what can we do to embiggen the Android developer tent?
Right now, most people think they need to learn Java and Android’s own take on a UI framework to build Android apps. By and large, they are correct…today. However, many people lack the time or inclination to try picking up Android this way, just as some avoid iPhone because of having to learn Objective-C and Cocoa.
However, what if we, as a community, worked to provide solutions for people developing primarily for other platforms to easily get their stuff working on Android as well?
- For those writing an app for Palm’s new WebOS, we could create a workalike framework atop WebView, with a simple utility to take a WebOS application package, make a series of automated conversions, and export an Android APK with similar functionality to the original app.
- For those using Adobe’s Flex, we could create a toolkit that converts Flex’s XML UI declarations into equivalents in Android, plus hook in Rhino, so with a modest amount of scripting changes, the app work work the same on Android as in a Flash-enabled browser.
- For those who created Google Gadgets, or widgets on other environments (e.g., Netvibes), we could offer a turnkey make-an-app-out-of-it system that generates APKs that display those widgets running on WebView, using local editions of the widget APIs.
- For those who wrote apps for Palm’s original OS, we could create some PRC-to-DEX engine that would allow legacy Palm apps to run on Android.
- And so on.
These are not necessarily open source projects — implemented properly, some of these could be fine commercial ventures as well.
The goal is to have the same message to as many existing developer communities as possible: for 20% more effort, you can have your existing app and an Android app. This would be a useful counterpoint to toolkits like PhoneGap and Rhomobile, which offer platform independence but require an up-front decision to adopt the toolkit. People already have their talents; we should make it easier for them to use those talents to benefit our favorite open mobile environment.
A bigger tent means more developers, meaning more applications, meaning more reasons for people to choose Android, meaning a better chance for Android to remain commercially interesting for longer.
Coming to Google I/O? Want to see me ramble incoherently on this topic for 6 minutes? Don’t want to see me? Either way, visit the Google Moderator page for the Android Lightning Talks session, and cast your votes for what you want to see.