Adobe AIR on iPad

After queuing for an hour at the flagship Apple Store in SF this morning, we finally got our hands on a stack of magical devices. We’ve spent the rest of the day having fun getting the first Adobe AIR apps running on the iPad.

We’ve tested many of the existing AIR apps that are on the Apple App Store today (Alchemist, BaoZi Jump, Something Fishy, Gridshock, Space On-Air, Moai Mawashi etc, etc…), and they all have been working beautifully.

We have also been working on bringing up the first “HD” apps that take advantage of the gorgeous screen of the iPad.

Christian Cantrell from our team also got a multiscreen AIR app working on the iPad today.

The performance is pretty impressive, seems to be about 2x the performance of the 3GS. We’re looking forward to all the cool new apps that are going to be possible with this form factor.

JavaScript Memory and CPU Profiling in Adobe AIR 2

One of the biggest challenges our team continued to hear from JavaScript developers using Adobe AIR 1.5 was that it was too difficult to track down CPU and memory issues within their HTML-based AIR applications. To help JavaScript developers detect and resolve these issues, we have introduced new runtime support for CPU and memory profiling of HTML-based AIR applications in the Adobe AIR 2 beta.

By doing so, tools like Aptana Studio can build powerful features that make analyzing memory and CPU usage of JavaScript execution within an AIR app a breeze. In the video above, Paul Colton, CEO of Aptana, provides an overview of how Aptana Studio is able to take advantage of the new runtime support and build powerful new features to assist developers in tracking down performance issues.

Some of the features included in the new Adobe AIR 2 Beta Plug-In for Aptana Studio include:

  • Live Objects View
    • Shows current information about how much current and cumulative memory is used by the application
    • Shows the number of current and cumulative instances of objects
  • Memory Usage View
    • Peak memory used
    • Current memory used
  • Memory Snapshot and Object References Views
    • Captures the number of class instances as well as memory used at a point in time
    • Select an object to view its references
    • Allocation trace information reveals where the objects are allocated
  • Loitering Objects View
    • Displays the memory usage difference between two memory snapshots
    • Helps detect loitering objects that are still present
  • Performance Profile View
    • Displays a list of all method calls along with amount of time for each to run
  • Method Statistics View
    • Presents information on the callers and callees of a function including statistics
    • Quickly navigate to location of the function in the code

Both Adobe AIR 2 and Adobe AIR 2 Beta Plug-in for Aptana Studio are currently in beta. If you run into issues or have feature requests, both the Adobe and Aptana teams would appreciate hearing your feedback on these new capabilities.

Next steps:

  1. Watch the tutorial video for a quick introduction on the new profiler capabilities
  2. Download the Adobe AIR 2 Beta Plug-In
  3. Discuss the feature on the Adobe AIR 2 Beta forums or post a comment below

Note: For Flex and Flash developers, support for application profiling has been available in Adobe Flex Builder for some time. We are very excited to bring this support to JavaScript developers as well.

Flash Player 10.1 & AIR 2.0: It's not just about new features…

Recently I’ve been getting a lot of questions about the performance and stability of the Flash Player and AIR runtimes. I got another one just this morning and thought it would be a good idea to write a quick blog post about this.
Let’s talk about Flash Player first. In all honesty, I also encounter the [...]

Case Study : ActionScript 3 Performance Optimization

Prompted by some of the work from Grant Skinner (in particular his FOTB 2009 session) and Thibault Imbert, I have been doing a lot of research lately into optimizing ActionScript 3 content. Not just how to make it run faster, but how to approach the process of optimization.
I am also starting to work on a [...]