July 3, 2010

Android's Froyo vs Apple's iOS4

It's a tricky proposition to compare these software platforms without discussing the real devices but let us give it a try! Both platforms carry major improvements in their latest releases and are rapidly emerging as 2 poles in the Smart Phone OS battle.

Lest the fanboys flame me, lets start with what iOS4 is good at. User experience and improved power management come to mind. The camera app has received great reviews, specially the digital zoom and tap-to-focus features of the video capture. The unified e-mail inbox is a very good idea and Android lacks it. Since iPads also would be getting an iOS4 update later this year, the iBooks app is a good one too. Stacking up apps into folders is a neat idea. But the user has to now remember where a certain app has been stored.

The iOS4 has at long last added multitasking support. But hang on, that's just a headline. It allows 3rd party apps to push certain kind of (mostly Audio, GPS and VoIP related) apps into background. That's about it. So you can listen to music and send text or e-mail but you cannot do either of those if you are buffering a Youtube video. This pales in comparison to what Android has to offer. All in all, I think iOS4 is a decent improvement over its predecessor, but doesn't quite get the multi-tasking part going still (and covers it up saying that "full" multitasking drains battery power).

Coming to Froyo, the first impression I got running it on my Nexus one was - Froyo is fast, thanks to JIT compilation. Even the browser has quickened up. Also the soft "call key" is a good addition, however I still believe hard keys do the job better. It is good that Froyo is Flash 10.1 enabled, something which iOS4 discarded outright citing security and speed concerns. There is a new media framework, called StageFright, used for streaming and it may eventually replace the existing OpenCore. Froyo also allows us to install apps on the SD card and thereby save space on the phone memory.

The USB and Wifi tethering are both great (and geeky) ideas but penalize the battery. Froyo's Media Player is still disappointing as is the power management and hence battery performance. FM radio is still not enabled. There aren't many compelling multimedia applications (video editor for example) on Froyo and with devices with large screen sizes, multimedia should be an area to address. In terms of user experience, Froyo still has some work to do and it is good that Gingerbread - the next version- is focusing on user experience.

Given that both platforms have specific concerns to address, I think it is a tie! I hope Gingerbread would give Android a definitive edge and it is about time Google improved Android's Market place experience as well.

P.S.: It seems that Froyo would be "the" Android distro for slightly lower end Android devices and Gingerbread would find a place in higher end ones. We need to watch how this pans out in terms of App development, App portability across devices and device software upgrades. Watch this for more info.

June 14, 2010

Google DevFest 2010

SG-GTUG is pleased to let you know that Singapore is one of the 3 cities in South East Asia where this year's Google DevFest will happen. The DevFest 2010 website is now live and the URL is http://bit.ly/sgdevfest10.

The topics include the following and all speakers are from Google offices

  • Chrome/HTML5
  • Google Maps API
  • Google AppEngine
  • Google Apps

During the event, developer advocates and engineers will be there to show you the latest and greatest, as well as answer your questions.

If you find the topics interesting to you, then I suggest you register for the event asap. Seats are limited and may be allotted on a first-come-first-signup basis.

We look forward to your participation!

Venue: Genexis Theatre & Lounge, Level 5, Connexis Tower, Fusionopolis. 1 Fusionopolis Way Singapore 138632.

View Larger Map

June 6, 2010

Multitasking on Mobile devices - Android style

Enabling multitasking for third party mobile applications can be a tricky proposition in the best of times. Rogue applications hogging memory and draining the battery are most cited concerns - this is common knowledge. It is in this context that Android's philosophy on multitasking is a refreshing change. Tim Bray has a great overview on Android's multitasking functionality in his Android Developers blog post. "All applications are created equal" and "All applications run all the time" are the tenets on which the system has been designed and designed elegantly at that. Contrast this with once popular co-operative multitasking systems that depend on user applications explicitly ceding control failing which the device may become unresponsive and you will be able to appreciate the philosophy of Android better.

But the real deal on Android is not multitasking on its own, it is the overall way in which UI components, applications and background components gel together to create a fabulous user experience. Consider an example: Go to the gallery, select a picture to be uploaded to facebook. What the user sees is a Toast prompt saying something on the lines that the picture would be uploaded, further suggesting the user to look at the notification bar for the progress of the upload operation. The user can, in the meantime, select another image for upload and Android obliges. What the user doesn't see is a upload progress bar blocking further uploads. Instead the nifty notification bar/window takes over that mantle. A background service performs the upload operation and updates the notification window leaving the main application window open for further user interaction.

What if the user chooses to switch the application after choosing to upload the picture? I know that app developers want users to stay on their application longer and may not be comfortable with the user "exiting" their application even though the operation is not fully completed. Worst still what if the operation fails? The notification window solves this problem as well. Whether the user gets an intimation that the operation has failed (say via a Toast) or the user voluntarily checks back in the notification window, clicking on the appropriate notification will lead the user back to the application. Developers even have the freedom to create a custom layout for the notification space. For example, the notification window can contain the application's icon, action buttons or progress bars. A good starting point for exploring this functionality is RemoteService.java present in ApiDemos.

As explained above, Android spins an excellent mobile experience built around a unique philosophy on multitasking. It is not multitasking itself that makes a difference, it is how applications use the power of multitasking, not just for providing the user with advanced functionality, but offering him a hassle free experience that counts.

Until next time, cheers!