I’ve written a couple of posts promoting the benefits of Adobe Air (and Flash) for cross platform development and it’s still ticking more of the right boxes for me than any other single alternative. It’s pretty accepted that the requirements of a project should drive the choice of technology, however with that said the reality is that a lot of us get attached to (and efficient with) a workflow or two and if we could we’d love to focus and enhance our skills within these arenas. It’s probably also true that not all of us are smart, agile and/or transcendent enough to be fluent with every new (and old) programming language or style that may win fleeting favour. In that light choosing a go-to technology based off a balanced list of priorities can at least show some defensible logic at work.

In the modern landscape with the explosion of mobile apps (and the platforms that continue to emerge) many of us keep an eye out for technologies that might prove to be promising as alternatives to our current favourites – in terms of this blog this currently means besting the AS3 based Flash platform, and more relevantly these days, Adobe Air. Something like Haxe (and OpenFL/NME) has always been a really exciting proposition that I’ve wanted to embrace but have so far felt to be too marginal to invest my time and professional future in to do so. As an aside, for those looking for salaried employment there’s also a particular disadvantage with marginal languages in terms of trying to find job descriptions that include any said marginal technology.

I thought it would be interesting to outline just what those boxes that Adobe Air ticks for me are. We all have our own list of priorities so there’s no way this could be definitive or universal, but these are the things that an alternative would have to match or do better at for me to switch to (some not as important as others):

Boxes Ticked

  • Rapid development (high level interactive functionality)
  • Very good performance
  • Strongly typed
  • Object oriented
  • Compile time error checking
  • GPU access
  • ANE System (Native Extensions) allowing potential for access to all native functionality
  • Good debugger
  • Decade+ long history and evolution
  • Compile effortlessly to iOS, Android, PC, Mac
  • Good profiler
  • Event/Async System
  • Instance scoped “this”
  • Very good documentation
  • Integrated asset creation and editing (via Flash timeline and IDE)
  • Nested timelines (MovieClips)
  • Vector tweening
  • Plethora of open sources packages
  • Established community
  • Functions as first class citizens
  • Classes as first class citizens
  • ECMA style syntax
  • Compiled output file
  • Local cookies (Shared Objects)
  • E4X (Native XML objects)
  • Embedded or external multiple format video playback inc H.264
  • Embedded or external multiple format sound playback inc MP3
  • Produced by a high profile commercial entity (In terms of responsible body’s reliable longevity)
  • Not bounds by the slow time frames of standards committees evolution cycles
  • Desktop browser penetration > 80%

Boxes Currently Unticked

  • Compiling to Windows Phone and Modern
  • Compiling to any other emergent platforms
  • Integrated physics engine
  • Integration of comprehensive list of native UI elements
  • Reduced code execution time
  • Officially and commercially integrated higher level 3D framework
  • Good industry PR
  • Baggage free reputation

I’m pretty sure some chopping and changing of these lists might occur with a bit more conversation but it’s a good general mapping.

Here’s a little bonus relevant link: http://en.wikipedia.org/wiki/Comparison_of_HTML5_and_Flash#Comparison_table

If you need an app built, learn more about our Sydney based app development services.