Convincing developers that Adobe Flex rocks on Android, iOS, and PlayBook

April 26, 2011 | By

On April 11th, Adobe announced that Creative Suite 5.5 will ship within 30 days.  Among the long list of amazing new capabilities and features across all of the CS5.5 products is something that really stands out to us developers — Flash Builder 4.5.  This is a monumental release of Flash Builder because when this ships in early May, developers will be able to build Flex apps for mobile devices!  The initial ship will support Android devices, but just a few weeks later (June), we will update Flash Builder to also support iOS (iPhone, iPad) and BlackBerry PlayBooks!

Imagine a world…

Imagine a world where developers can build awesome apps for the web, desktop (Windows, Mac OS X, Linux) and a huge majority of the mobile device market.  Imagine tooling that supports building, testing, and deploying these apps to all of these platforms and devices.  Imagine being able to share and reuse code from platform to platform/device to device!

I’m coming dangerously close to sounding like a marketing guy so I’ll stop there…but you have to admit, the vision is exciting to imagine… but do you really believe it? Keep reading.

Yes, it’s real

Many of you have heard us talking about the above vision for a long time.  I’m thrilled to tell you that the vision is now real.  It’s not smoke and mirrors.  It’s not clever click-thru demos.  It’s the real deal and it’s done VERY well.

The “Wow” process

Our job as technical evangelists is to prove to you that this stuff works and strive to be experts before you ever get your hands on the technology so we can answer your questions.  This forces us to live on the bleeding edge of builds from our engineering teams.  During the past 3 months, I’ve probably installed at least 10 different builds of Flash Builder 4.5 (in addition to many other products I evangelize)!  About 5 weeks ago, we started getting builds that we felt were ready to take “on tour” so we hit the road and went to show it off to some key customers and a few user groups.  Developers are never truly convinced until they get their hands on the technology and try it for themselves, and based on the results so far, developers are starting to be convinced!

The biggest surprise to developers (including myself) is the performance of Flex apps on iOS devices.  During the past several meetings with customers and user groups, I’ve passed around my iPad, iPod Touch, and various Android devices and let people interact with the apps.  Here are some typical comments and some frequently asked questions (my answers are in parenthesis).  Every one of these is a near exact quote that I’ve heard in the past 5 weeks.

  • Wow – the performance shocks me!” (me too!)
  • I didn’t know you guys could build apps for iPhone/iPad” (Yep – and also Android and BlackBerry PlayBook and of course desktop and web!  There were some changes to the Apple developer rules in September, 2010 that allows developers to use non-Apple tools to build apps for iOS devices.  This allowed us to expand our mobile strategy to include iOS in our growing list of supported platforms.)
  • I thought Flash wasn’t allowed on iOS devices” (Apple still does not allow Flash Player to be installed on iOS devices for the web browser, but these are not browser apps… they are installable apps that have been cross-compiled to Objective-C bytecode. Your apps can be packaged into a standalone .ipa file, the file extension of all iOS apps.  No separate runtime is needed.)
  • What about mobile specific stuff like GPS, accelerometer, and multitouch?” – (The Flex 4.5 SDK adds many mobile-specific APIs including all of those plus support for cameras, microphone, gestures, and more. — then I demo these APIs using Tour de Mobile Flex and Adobe AIR Launchpad — links below)
  • I’m surprised at the level of detail in the UI behavior… scrollable lists have a subtle bounce at the end and movement is smooth and fluid.  It feels like how I expect a mobile app to feel.” (Yep – I was surprised too! I even blogged about my own skepticism here)
  • So, I can write the app once and deploy it on iOS, Android, and PlayBook? Really?” (Yes, almost. Different devices have different screen sizes, pixel densities, aspect ratios, etc. An app that looks great on an iPad might need some tweaks to also work well on an HTC Inspire phone. An app that works great on an iPhone may need some UI tweaks to better take advantage of a tablet screen like the Motorola Xoom or a BlackBerry PlayBook. The Flex 4.5 SDK provides APIs to query screen dimensions and density so you can dynamically make UI adjustments based on the device. Also, module loading is not supported on iOS nor is loading any external SWFs that contain ActionScript. This is due to Apple’s app restrictions on loading and interpreting external code.)
  • Is it easy to convert a non-mobile app built with Flex into a mobile app?” (It depends on the app. You probably don’t want to take a million line Flex project and try to deploy it to a mobile device that has a fraction of the CPU and memory of a desktop machine. However, some apps can be modified to work on mobile devices fairly easily after some UI tweaks and adjustments to take advantage of the touch-screen environment. Either way, it will be dramatically faster than writing the app from scratch using another technology.)
  • How does Flash Builder handle iOS application signing and provisioning?” (You will still need an Apple cert and provisioning profile for your app like any other iOS app. Flash Builder prompts you for the signing cert and the provisioning profile in the build configuration. Once you have these in place, Flash Builder will create the final .ipa for you.)
  • Can I create iOS apps using a Windows machine?” (Yes, it works the same as on Mac OS X.)
  • How do I handle application auto-updates?” (It’s no different than if you used the Android SDK or Apple SDK – updates are handled through the various marketplaces/app stores based on the version number assigned. No special code is required.)
  • Do apps built with Flex perform as well as apps built with the native SDK for each platform?” (It depends on the app.  For many apps, yes it will.  For apps with very complex animations such as with intense game graphics, you might want to turn to the native SDK.)

After 20 minutes of Q&A, most developers start shifting their questions to “How do I get this so I can try it out?”.  Last week, I showed this stuff at two user group meetings – Tampa and Nashville.  Both meetings resulted in several ongoing email threads with developers who are excited to get their hands on this stuff.  Every customer visit that my team has made in the past few weeks has had similar results.

Check it out now!

Hopefully I’ve at least made you raise an eyebrow in this blog post.  Rather than rambling on and on about how others have reacted, take a look for yourself.  Below are some videos that Christophe Coenraets, James Ward, Michael Chaize, and Lee Brimelow have put together showing off Flex apps on mobile.  Each video demonstrates what I’ve been talking about.  They are short and to the point, so it’s worth going through them.

What works when

  • Shipping software availability:
    • Flash Builder 4.5 ships in a couple of weeks and includes Android support
    • An update to Flash Builder will ship in June that adds iOS and PlayBook support
  • Pre-release software availability:
    • If you join the pre-release program (see below), you can get 4.5 today with Android support
    • The pre-release site will be updated in a few days with a version that adds iOS and PlayBook support

What’s missing

Most things are ready to go now including APIs for geolocation, accelerometers, multitouch, gestures, microphone, overlaying HTML content, and more, but we are missing a few things that developers are asking for including support for notifications, APIs for compass and the ability to make native OS calls. We’ll have more details on these soon as work is progressing on multiple fronts.

How to see for yourself

If you would like to give this a try, I recommend the following steps:

  • Join the pre-release program for Flash Builder. A recent build is already available with Android support. A newer build with iOS support is coming very soon. There is also a version of Flash Builder on labs code-named “Burrito”, but it’s a bit old and missing some recent advancements. I recommend that you skip Burrito and get into the pre-release program so you can get the hot-off-the-press bits.
  • Download and install Adobe AIR Launchpad — this tool is one of the best learning resources you’ll find. It will help you create your first mobile project with well commented sample code. This is a pre-release of Launchpad 2.6 that supports the current Flash Builder pre-release
  • If you have an Android device, go install Tour de Mobile Flex on the device. It’s another great learning resource.
  • Go steal borrow every Android and iOS device you can find. Your mom can live without her iPad for a few days, right?
  • If you plan to try this on a real iOS device, you’ll need to join the Apple developer program ($99/yr) so you can get your cert and so you can provision apps.
  • If you build a cool app, contact me. I want to see it!

If you are new to Flex, here are a few additional resources:

It’s a great time to be a Flex developer and the excitement is spreading fast.  I hope this blog post inspires you to check it out!

Filed in: Adobe AIR, Adobe Flex, AIR for Android, Android, Data Visualization, iOS/iPhone/iPad, Tour de Flex | Tags: , , , , , , , , , ,

About the Author (Author Profile)

Greg is a developer advocate for the Google Cloud Platform based in San Francisco, California

Comments (37)

Links to this Post

  1. Quora | May 11, 2011
  1. guest

    Prerelease Galaxy Tab contest?)

  2. Tehsin

    Hey

    Thanks for the post, and it’s great to see Adobe pushing further ahead into mobile. In a lot of location based apps though, at least right now on the Android, you would typically create a ‘Service’ which can a) be started on boot and b) register for major location change updates, etc.

    I am assuming features like these can’t be implemented with AIR, can they? I am not sure about the iPhone, but I am assuming we’d run into similar issues when trying to register into things like ‘Significant Location Change’ updates via the iOS?

    I would love to be able to use AIR and deploy it across several platforms, but at the moment it seems that I’d run into roadblocks like the ones above in almost every complex application that needs to be tightly integrated with the OS.

    Furthermore, let’s say if the application has multi tasking support, and/or wants to sit in the background, the AIR size on Android is apparently 16MB! Are the new devices supposed to be better at handling this? Because again (I think) you would end up draining your users’ battery in the real world(?)

    Would really appreciate your thoughts on this and I am hoping to be corrected if any of what I mentioned is wrong as I really do hope to eventually be able to build mobile apps with Flash/Flex.

    Thank you,

    Tehsin

    • Hey Tehsin – thanks for the comments. if you are looking to build an app that monitors the location continuously and reports changes to an app or external service, then you are correct, you would probably want to build an Android service for that, at least for now. The typical use of the Geolocation API is for an app to be able to determine the current location or to track location changes over a fairly short period of time. It’s rare to find any app that has a running background service updating the location somewhere. It’s expensive from a battery point of view regardless of the technology used to implement. The Geolocation API does report location changes, but only while the app is running.

      Multitasking is another complex topic and varies a bit based on which OS you are using. The AIR size on Android isn’t necessarily the resident size while the app is running in the background. I’ll get some stats and try to post that later. You will most likely see future blog post from me and others on the specifics on implementing multitasking. Regardless of which technology is used, the specifics vary dramatically based on the OS being used. iOS has a very different approach to multitasking than Android and PlayBook. There is work being done internally on multitasking so you’ll see more soon.

      Thanks!

      Greg

  3. N.S.Devaraj

    having multi tasking in flex will be a dream come true.

  4. Landon

    Do the charts in the mobile apps support pinch-to-zoom by default or was that a custom written behavior? It looks like Adobe has made some incredible improvements in performance of Flex mobile projects since the release of “Hero” at MAX last year. Can’t wait to start developing iPad apps with Flex!

  5. Joseph
  6. Adobe Flex does rock on mobile! Midnight Coders is all over this mobile Flex activity and is rapidly creating integrations for all platforms that will accept Adobe AIR. Check out our blog and video that shows Flex remoting and messaging on Android. http://blog.themidnightcoders.com/index.php/2011/04/15/developing-android-apps-with-weborb/ We’ve also demonstrated it on BlackBerry PlayBook and iOS is next!

  7. This was a great article and it includes some really great and explanatory videos!

  8. люблю всех и все меня.

  9. Please make AIR available to Android device running ARM6 processor.

  10. Sam

    Just wondering when will push notification Apis be included into flex mobile framework. Inclusion of that will make it a 100% development platform to suit our company’s need.

  11. steve

    Hi,
    Can I get an AIR app into the MAC appstore? ie. an AIR app that runs on MAC OS X ?
    or is there any other way of getting a Flex app into the mac appstore?
    thanks,

  12. jeanette

    Hi Greg. Are there any details posted anywhere about what happens when Flash Builder converts the AIR application into a native iOS application? For example, how do Flash Remoting calls work?

  13. Sanjay

    Hi Greg,

    I have started using the trial version of Flash Builder 4.5.

    One thing which I’m not able to find out is, can one build apps for iphone/android which allows the voice call/sms control in the application. If yes, what is the procedure of using this.

    Thanks for the anticipated help.

    Regards,
    Sanjay

    • Hey Sanjay – you can find an example of how to do this in Adobe AIR Launchpad — http://flex.org/launchpad — it has many samples, including SMS/Tel integration (on samples tab).

      Thanks!

      Greg

      • Sanjay

        Thanks Greg for the quick reply!

        I tried it, however, need more clarifications on:

        1. There is auto-code generated in that which is:

        navigateToURL(new URLRequest(“tel:”+txtAddress.text));

        Will this itself generate a call?

        2. How about receiving a call? Can one redirect all incoming calls to this app (which one is developing).

        3. Is there some document/link where I can read all the possibilities which are there. Infact at some stage I’m interested in text to speech and speech to text also.

        Thanks.

        • Sanjay

          Greg,

          Can you pl. help me with the above mentioned queries in my earlier post.

          Thanks.

        • Hey Sanjay – it’s not possible for the app to be the receiver of the call. I’ve never seen any app do that.

          The navigateToURL(new URLRequest(“tel:”+txtAddress.text)) will take the user to the dialer with the number pre-populated. It will not initiate the call (most users would NOT like that).

          Thanks!

          Greg

          • Philip

            Sorry another question will the navigateToURL(new URLRequest(“tel:”+txtAddress.text)) code work in flash professional CS 5.5, I have already made my app in it and dont want to start over.

            Cheers

        • Philip

          Hi I just downloaded this i as wondering where do you put the actual number in that code.

          Thanx

  14. Stefan

    Hey,

    I was trying to download the pre-relase Builder to start trying out this fantastic AIR crazyness for Android.
    Link didn’t work.

    So I just started to install Builder Trial 4.5 which shows in Installation that only iOS seems to be supported.

    Any advice on how to start developing with first a trial version for Android?

    • Hey Stefan – the Flash Builder 4.5 trial supports iOS, Android and BlackBerry (and desktop – windows/mac).

      After getting it installed, just got to FILE, NEW MOBILE PROJECT, etc… and you’ll see the dialog where you choose the 3 mobile OS’s.

      Thanks!

      Greg

      • Stefan

        Thank you very much. Indeed that was the way ;-)

        I was also doing the bleeding run on air 3 beta, because I really try to develeop Videochat Application with frontcamera on Android for a while. Air 3 beta seems to be best step towards this.

        Anyway, I installed it by overloading the sdk 4.5.1 which worked for an existing HelloWorld Application. When I now want to create a new Mobile Project with the overloaded 4.5.1 flex sdk it is not possible due to no flex sdk found in that configuration.
        At least overloading was told to be the way to use air 3, I got one step back with this problem.

        You got any idea maybe? Using a mac..

  15. Having set out to “Convince developers that Adobe Flex rocks on Android, iOS, and PlayBook”, you’ve steered well clear of our concerns about bloated-ness and performance, and wallowed instead in sycophantic pro-Flex evangelism. So I’m certainly NOT convinced.

    While I share your stated vision, I think that Adobe’s best-kept secret is probably how powerful AIR applications can be on Mobile – without Flex.

    The merits of Flex that you describe in “The wow-factor” aren’t due to Flex at all. Adobe’s AIR team has done a fantastic job with their latest updates for mobile.

    As for the level of detail in UI behaviour… I think I’ve proved that this can be accomplished really well without Flex. (MadComponents)

    • Daniel – you are correct, the AIR team gets the majority of the credit – they are the ones building the packager and making the magic possible. My article is specific to how that functionality is surfaced for us Flex developers and most of the demos I mention were built in Flex and most developers I talk to (I’m focused more on enterprise) use Flex. Also, don’t underestimate the efforts that the Flex SDK team took in this. They made some major architectural changes to the Flex framework to get the performance that we’re seeing. Credit goes to both teams for sure. Also, the Flash Builder team deserves a lot of credit for surfacing a lot of the coolness in the tool itself (On device debugging on all 3 mobile platforms, packaging of all 3 platforms, etc.).

      To your last point – you can build killer apps without touching the Flex framework and get awesome performance. I’ve seen many apps doing well in the app store that are using the Flex containers/navigators/view management, but using mostly custom actionscript for the gaming part. Examples include Pyramix, Mr. Mixit, Kung Fu Battle Slots, etc.

      If you have some pure actionscript demos to share, let me know – I’d love to see.

      Thanks!

      Greg

  16. Sanjay

    Hi Greg,

    How can one leverage the iAd and the in-app purchases support provided by apple. Is their any way to use this, as this would be a good monetization part for the developers of apps.

    Also for android, how can one integrate the Ads and the in-app purchase.

    Thanks,

    Sanjay

  17. Sanjay

    Thanks Greg for the quick reply.

    May I know when can we expect the new version – say in next 1 -2 months.

    I need to make a critical decision on the development platform i.e. either go native or use FB, so this will really help in deciding this.

    Regards,
    sanjay

  18. Oliver

    Hi, Greg, thanks for the great post.

    This is the app that was created entirely in ActionScript.
    http://itunes.apple.com/us/app/love-flower-pro/id458949752?mt=8

    Just see how smooth and fast the graphics are (it uses GPU acceleration). The app also uses accelerometer wisely.

    I know there is currently no easy way to integrate iAd in ActionScript, but could you please elaborate a bit more about the complex way? Is it possible at all? Please share your ideas, even if the solution is something like building a sample Xcode app and then copying the code to AS html overlay.

    Also, as Sanjay inquired, could you share a bit more about the release schedule?

    Thanks!
    Oliver

  19. Roman

    What are the minimum requirements for a Flex app to run on Android?
    When I try to install Tour de Mobile Flex from the Android market it tells me “This app is incompatible with all of your devices.”, so what are the requirement?