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.
- http://blog.theflashblog.com/?p=2711 (this is not using Flex – it’s pure ActionScript, but the performance is worth checking out)
- http://blog.theflashblog.com/?p=2716 (this is not using Flex – it’s pure ActionScript, but the performance is worth checking out)
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
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.
stealborrow 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!