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.
I have been working quite a bit this week with the Android Emulator that ships with the Android SDK. Works really well and is great for testing my AIR/Hero applications.
One interesting tidbit: I had a local web server installed on my PC and my Flex application called a Remote Object from this server. Everything worked fine in the AIR tools that shiped with Burrito. However, the application would not work at all in the Android emulator, I finally figured out that the emulator calls localhost from 10.0.2.2 instead of 127.0.0.1!! I changed all the references from localhost to 10.0.2.2 in the application and everything worked great in the emulator! Hopefully, this will save folks some time as it cost me about three hours! Ugh….
Google announced Android 2.3, code named Gingerbread today! It should be making its way to some devices in a few short weeks. They also announced a new Google branded phone, known as the Nexus S that will be available from Best Buy for $529 unlocked or T-Mobile for $199 with a two year contact.
Here is a great video detailing much of the new Gingerbread functionality.
I have had my Galaxy Tab for a few months now and am really enjoying it. I have spent time with the iPad as well, and think it is a great device but prefer the Tab for a number of reasons. Despite what Steve Jobs says, I really think a seven inch tablet is much more portable. I can easily fit it into my coat pocket, and I take it with me everywhere. It is very easy to pull out when I am in cramped quarters, like the A train in Manhattan and it does not attract a lot of attention because it looks like a book or a Kindle, not like the $600 device it is. Battery life is good, performance is great, web browsing is great, my only complaint about the device is the price. I do feel it is a little too expensive and I hate the lack of a wifi version. I’m sure the prices will come down and thus is the cost of being an early adopter. I love being able to develop applications for the device and the performance of AIR applications has been great. I do feel the device is much more hacker friendly than the iPad, and love having access to the file system and the ability to watch movies and play music not through iTunes. I also enjoy the dual cameras though sometimes feel a little silly holding up such a big device. You get used to it though.
I was disappointed to find that many stock Android applications did not use all of the available screen real estate and instead had big, ugly black borders around them. After being frustrated for the first week, I finally found a solution that I am posting below:
1.Download an application called Spare Parts from the Android Market and install it.
2.Open Spare Parts, and scroll down to “Compatibility Mode”.
3.Uncheck Compatibility Mode, and then recheck it.
4.Exit Spare Parts.
5.Reboot your Galaxy Tab.
6.Once it boots, open Spare Parts again.
7.Scroll down to “Compatibility Mode” and uncheck it.
All the typical stock Android applications will now use all of the available resolution. These applicatios, to me, look much better than their iPhone counterparts on an iPad.
Of course, the Tab needs many more “Tablet” specific applications but these will be coming with the next version of Android. From everything that I have heard, the Galaxy Tab will be one of the first devices to get this operating system update as well so I am looking forward to that in early 2011.
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!