This has been a pretty amazing week for Android. The demonstration of the new tablet optimized OS named Honeycomb and the launch of the new online Marketplace were very cool.
Honeycomb is incorporating some really nice elements such as an Action Bar. It will change depending on what application your in and then specific application settings will appear. The new Honeycomb multitasking looks amazing where instead of getting an icon for recent application, you are also given a visual state of the application you left in. The redesigned keyboard and and text editing look great as well. There is a new animation framework as well as hardware acceleration and new connectivity options.
The initial release of Honeycomb will be for tablets only and unlike iOS looks like will require maintenance of a separate code base much like Flex developers do now for AIR. Of course, we all know all kinds of tricks in Eclipse that make this easier.
In terms of the online experience, Google definitely has leapfrogged over Apple; I love the way I can pick an application and have it delivered over the air to any of my myriad of Android devices without having to connect via a USB cable. I also think they have done a nice job of organizing the marketplace which goes a long way towards reducing some of the chaos inherent in the marketplace.
It seems clear that open will win. This week also saw the news that Android has become the #1 smart phone operating system and that Android has grabbed 22% of the Tablet market from Apple. This last statistic is amazing considering that the current crop of Android Tablets, which is really only the Galaxy Tab, run Froyo which Google itself has stated is not optimized for tablets. There is some question on whether that 22% number is accurate, concerning how many tablets Samsung actually sold versus shipped but even if the number is half that, I am pretty impressed. Remember 85 new Android tablets were announced at CES and almost none are currently available.
Looking forward to seeing the announcements out of the Mobile World Congress next week.
During my free time, I have been developing some applications for my Android devices using Adobe AIR 2.5. I will soon be hosting a series on Lynda.com on AIR for Android development as a well as a preview series for them on Flex Burrito and Hero development. About a year ago, I tried my hand at Objective C development for iDevices and found the tool set and syntax very off putting. I am happy to report that my feelings about Android are the exact opposite!
I have really enjoyed using the development tools available in the Android SDK. I have made extensive use of the DDMS tool available in the tools folder of the SDK; this allows me to take a screen shot of my device and broadcast it on the computer screen, which is very useful for developing training material. I also found it useful to include the path to the Android SDK in my system environment PATH variable to limit switching directories.
I have been working with a Droid X and a Samsung Galaxy tab for testing. When I first started, I had a difficult time getting the drivers working for both of these device using Windows. I tried to use the default USB drivers included with the Android SDK but I could not get them working. Once I downloaded the respective drivers from Motorola and Samsung everything worked fine. In order to do testing, you must be sure that the devices themselves have USB debugging enabled which can be done from the settings menu of the device.
I have also been using the Android emulator that ships with the Android SDK. One gotcha here is that you need to publish an Android Emulator release of your APK file in order to use with the emulator. You can choose a radio button using Flash CS5 to produce this APK or pass the ADT a compiler argument of -emulator if you are using Flash Builder. If you are doing AIR development, you have to install a special version of AIR on your emulator “virtual device”. I found it very difficult to locate the emulator version of AIR. I finally it in Flash CS5 under Program Files/adobe/adobe flash cs5/aek2.5/runtimes/emulator. You can then install the runtime using the Android ADB tool with the install command. I lost a few hours of development on that one, but now AIR 2.5 is permanently installed on my virtual phone and these virtual devices persist between sessions.
I have enjoyed exploring the mobile specific API’s in Adobe AIR 2.5 including the accelerometer, gestures, geolocation and much more, I look forward to posting more about these topics. AIR is a great way to develop Android applications, and I am getting more excited about the Android platform every day!