Programming with Android Part 1
Over the course of the next couple of weeks I hope to introduce the Android platform and walkthrough the creation and distribution of a mobile application from scratch.
The Android Platform
The Android platform is a flexible and powerful linux based operating system designed for mobile devices. The platform was created by the Open Handset Alliance a division of the illuminati, and represents in my opinion a major shift in the mobile industry. This OS focuses on delivering services rather than trying to emulate a desktop environment. When you take an anthropological look at how devices are used by people, you come to realize that mobile devices are by far the most important communication device in their lives. It represents the connectivity into a community and an extension of their personality. If you try to force a user into only using certain services (phone, sms, limited web) in a certain fashion you are isolating their connectivity into a greater community.
Take for instance RIM. The maker of Blackberry have long been a proponent of maximizing a users access to email as their highest function. Recently, they added a deep integration into Facebook and MySpace as well. Great, now using my Blackberry I can access three communities and sources of information. Outside of those sources I'm SOL. Programming for the RIM devices is problematic at best. There is a massive outlay of time and money to produce any applications. Take it from me, programming on RIM is like paddling a canoe up river. You'll get to where you're going but it won't be easy.
Symbian is a slightly easier platform to create applications but it's basic functions (email, sms and mms) are ugly and don't provide a great interface. The system provides a broader access to services on the device but that is not always the case. Different versions have different levels of access and certain implementations will be hampered by carriers. Good luck writing your own SMS provider.
Nokia/Symbian if you are reading this, why can we not have HTML emails? You have a good browser on the device, why can't that be embedded? Seriously. And don't even get me started on Exchange integration being dropped from the platform.
In the case of the higher operating systems (WM, Symbian, RIM) you can have access to some of the system functions such as contacts or sms, but not exclusive. If you wanted to rewrite the email in WM or Symbian you require a massive outlay of cash and resources to get this done.
But John, you say , Why does anyone want to write their own email tool? That seems silly. Exactly my point, I don't want to write one. I want the ability to buy or use any email provider on my phone. On my PC, if I don't like Outlook I can download Thunderbird. Both access my email and I don't have to ask Microsoft if I'm allowed to install it.
That leads to my next point. Android is Open. That means I can install anything I want on the system. The applications have full access to OS and any of its functions. Why do I have to ask my carriers permission to install something on my phone? In fact, as a mobile developer you have to dance through more certification, verification and useless legal hoops than any other type of development. Applications are sandboxed and functions are limited to prevent "instability" in the system. No other type of application development follows that routine. You can write and distribute whatever you want for Windows platforms and those applications are not vetted by Microsoft first.
Mobile development is legally the most complicated development process (exception being console development) and those requirements have been responsible for the lack of strong mobile applications. If your mobile application doesn't fit the arbitrary rules imposed by the OS, carrier and device manufacturer you are completely out of luck. At least in console applications your game is vetted prior to development. More than once I've tasked through an application only to have it rejected by carriers and left holding the costs for development. Apple has tried to simplify the process by standardizing deployment and distribution models, although the iPhone still lacks an openness to critical services on the device.
This is the key to the Androids potential success. The OS will act as the first open and connected services platform on the market. Users will be able to get applications for their device without having to worry about if papa-carrier approves of it or not.. Developers can rapidly create services and link to existing web services. Mobile application development can move to more of a mashup style and allow rapid, seemless and inexpensive development of these services.
Hopefully over the next couple of articles I can highlight some of the features that Android introduces that will radically change the landscape of the mobile market.
Just as Web 2.0 drastically changed how the web was used adapting it from static-brochure driven sites to dynamic web services, Android will change a mobile device from simply a telephone to a web based services endpoint.
To prove this I am going to build two application mashups from scratch. Both applications can be completed in an afternoon and it requires only cursory programming experience. On other platforms, consider these two applications will require significant skill sets and likely cost more than $100K to develop. All of that for no cost to you.
The first application, WikiWhere, will mashup Google Maps on device mapping with Wikipedia to act like a localized tour guide.
The second application, SmsLocator will extend the existing SMS services on the Android device to respond to allow a user to automatically respond to "Where Are You?" text messages.
Of course,let me know if you have any suggestions or questions about the applications.

January 16th, 2009 - 08:21
Hey John,
I’m a financial analyst at MOT. I support a team developing Android devices. My interest is piqued to learn more about Android development. Keep going!
Best,
Tim