Sunday, 1 August 2010

Flash and AIR the nirvana of mobile development?

Recently I've been looking at the new pre-release of AIR for Android. From me this is a really interesting technology. I’m familiar with both Java and Flex. But although Android uses Java, there are still a fair number of new components to learn about and additional to this, there is also a learning curve involved with getting to grips with some of the Android ways of architecting applications, such as using Activities, Services, Intents etc..
If I can use Flex, things become instantly more familiar. There’s no new UI components to learn and I have a full understanding of how to structure my apps. But while this is nice for writing applications for Android, what is also very appealing is the prospect that I will be able to port these applications very easily to other platforms such as Meego, Blackberry and others.

While a lot of media focus has been on Flash and AIR running on Android (and not on iPhones). There has also been some talk of Flash and AIR running on Platforms such as Meego (Nokia) and Blackberry. If this turns out to be the case this would be great for Flash/Flex developers. Instantly applications written for AIR would have a much wider market, as the cost and time for developers to get their applications running across multiple platforms would be reduced dramatically. 

You may have noticed, that I'm mainly focusing on AIR here and not Flash. For me AIR on mobile devices is a more interesting prospect at the moment. Why? Well my experience of using mobile phones is that small installed application give a better user experience than web based applications. This is mainly due to the speed of data connections. An installed app doesn’t have to load any presentation and UI elements, it just needs to get the data, so it’s more responsive. As mobile networks develop and their bandwidths increase I'm sure this will all change, but then changing an AIR application to a Flash application is pretty straight forward, so that’s covered too.

All of this of this sounds great. Using established tools, languages, and frameworks, with cross platform support and the ability to run locally installed or web applications. What mobile developer could want more? So there must a be a catch, right? Well at the moment true cross platform support is still not a reality and although Flash and Flex are said to be supported on Android 2.2, that doesn’t necessarily mean that a phone that has Android 2.2 will run flash or AIR applications.  For example, I installed a modded ROM of Android 2.2 on a HTC magic, and then installed the AIR runtime and an AIR application with no problems. Unfortunately the application simply would not run (it ran fine, albeit rather slowly,  in Android emulator).
It still seems that it’s early days yet for AIR and Flash on mobile. The next release of the Flex framework, known as Hero, is due for release towards the end of this year promising intergrated support for development of both desktop and mobile devices. So as devices become more powerful, and if the promises live up to the hype, it does seems that Flash and Flex developers could have a whole new world of opportunities on mobile devices.