Saturday, November 17, 2007

Google Android

Google recently released a preliminary SDK for their mobile platform called Android for developers. Off the top of my head, looking at their technical documentation, I can't think of anything that is in Android that also isn't in Java ME (or .Net Compact for that matter). That being said, Java ME is an SDK only while Android is a full platform and it comes bundled with standard applications and user interface. Sun has already announced that they too are working on their own platform for mobiles called JavaFX.

Unless I'm mistaken here, the SDK for JavaFX will be Java ME and it too will come with its standard user interface and set of applications. I don't know what the motivation for developing JavaFX was, but I'm guessing Sun is trying to create a synergy similar to the one Microsoft enjoys between Windows Mobile and .Net Micro.

Now that Android has entered the picture, it's sort of hard to not question its existence. Let's face it, Java ME is already on millions of handset worldwide which makes Android seem irrelevant. On the other hand, Google has made Java on handsets look good and exciting again, I can't remember when I felt like that about Java ME.

Now that I'm writting this, Android does codify something I feel is really missing in Java and not just the micro edition, a standard XML syntax for user interfaces. Microsoft is really doing great work with its XAML technology. Not only does this technology have the potential to bridge the gap between web and desktop applications but also the gap between designers and developers. Android doesn't fill that gap obviously since even Google's other toolkits don't support this XML syntax, this is exciting nonetheless. I like GUI editors that generate XML, not when they generate code directly in a class somewhere. This has been, and remains Sun's stategy for Java. Fortunately, even if it's not included directly in Java, I can still use XAML in Java using eFace.

One thing that I find solely missing in Android however is crash reporting. Google is obviously aware this is important, see their breakpad project. I'm not committed to quality in my software, it goes beyond that, I'm committed to perfection. If Google wants to provide a platform, well I think crash reporting is one of those services that developers expect to be part of any platform nowadays. That being said, this also happens to be missing from standard Java but again, I'm not talking about providing software to capture and report crashes only, this also exists for Java. No, I'm talking that platform holders should provide servers where developers can register their binaries like Microsoft allows you to do. Open source developers have tons of resources available to them in the form of Sourceforce, GNU Savannah and Google Code to name a few, but it appears that crash servers aren't readily available from any of these sites.

Finally, I would be remiss if I were to not mention the #1 reason why I like Android. The inclusion of the SQLite database. Meaning that, if you have an Android phone, you have SQLite in there. Words cannot describe how passinate I am about this database. I have used this database extensively in the past and will certainly continue to do so probably till the day I die. I have tried using Derby and SQL Server Compact but if you're looking for embedded, small and complete they just don't come close to SQLite.

No comments: