Cross-platform development in Adobe AIR

My team at work have been watching the developments in Adobe’s AIR platform with interest for some time and this week we ran our most comprehensive test of the system yet to port a Flash microsite over to Android and iOS.

What you’re looking at below is the forthcoming Sky Living Britain and Ireland’s Next Top Model flash magazine (launching in August!), running on, from left to right, bottom to top:

Apple iPad 1 (iOS)
Samsung Galaxy Tab (android 2.2)
Apple iPhone 4 (iOS)
Samsung Galaxy SII (android 2.3)
HTC Desire (android 2.2)
Sony Vaio laptop (Win XP, flash player 10/google Chrome)

Flash application running cross platform

This flash application has been ported out as a native application (this is not running in browser, except on the laptop for comparison), thanks to the new build of the Adobe AIR runtime and packager (v2.7). Although the packager has been running stably for a while, the last two releases have really optimised the experience, making more fully featured applications doable for the first time. Greg Fleming and Jason Langdon from my team ported these applications out over the course of a couple of days, including adding quick swipe support. Performance is pretty good on the whole (particularly on the iPad 2 and the dual-core galaxy SII), and this is with no optimisation in terms of assets or code at all – literally just a straight wrapping of the flash application with a few tweaks.

Whilst it’s still early days and there is much to learn about optimising the experience, the rate of development is rapid and I think that this approach has potential as a companion to native application development for appropriate content. I did a brief overview of the process for my department this morning and it’s very clear that designers and UX professionals in particular are going to have to become more comfortable with working with design concepts that are adaptable across a variety of platforms (rather than being built with one use-case in mind). I can particularly see scalable applications becoming commonplace where, for instance, a complex, experiential web application (in Flash perhaps) can be scaled and refactored for packaging out to devices from a common code and asset base. In our example above, for instance, the navigation system aimed at browsers/desktops is clearly not fit for purpose on devices and this abstraction of form and function is something that, oddly, few digital designers I know are massively comfortable with.

New methods will have to be found to communicate how dynamic interfaces will look or work to clients and stakeholders – a wireframe is becoming an even more meaningless document when the very nature of a contemporary, cross platform interface will be to alter with it’s context…but that’s a whole ‘nother conversation and one for a time when I’m being braver with my (excellent) UE colleagues :o)

About Andrew

I am a technical director, creative technologist and digital strategist who has been working in the web industry for 15 years. An early online user from the days of Prestel and BBS systems, I am a self-taught technologist and developer who has been immersed in the creative possibilities of digital technology from childhood. My career path has taken many turns, from the heady dot-com agency days, through the corporate world and the variety of experience which freelance brings. Throughout, my goal has been to help organizations and brands realise the potential that the art and science of being digital can achieve, and to help them create opportunities to better use the most important emerging medium of our time. I am a strong advocate for digital as a multi-disciplinary medium, with an enviable record in building and retaining teams, and in the importance of the creative disciplines of collaboration, vision, practicing and failing in order to push things forward.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>