Building iPad Applications with Flash

Today Apple announced the Apple iPad and like many of you, we at Adobe are looking forward to getting our hands on one of these devices. This is an exciting time to be a software designer with an explosion of new devices and we look forward to helping Flash developers and designers bring innovative applications to these devices using our tools and frameworks.

We announced the Packager for iPhone at MAX 2009 which will allow Flash developers to create native iPhone applications and will be available in the upcoming version of Flash Pro CS5. This technology enables developers to create applications for the iPhone, iPod touch, and iPad (though applications will not initially take direct advantage of iPad’s new screen resolution). It is our intent to make it possible for Flash developers to build applications that can take advantage of the increased screen size and resolution of the iPad.

Flash developers are used to being able to create rich expressive content that run well across multiple screens. The Flash Platform already provides developers with the ability to create applications without making assumptions about screen resolution and pixel density. Our very own Christian Cantrell has posted an in-depth article on the Adobe Developer Connection, Authoring For Multiple Screen Sizes, that details best practices in creating applications that run on multiple screens. If you want to prepare applications today that will work great on the iPhone, iPod touch, and iPad, follow the guidelines from this article today.

While we put the finishing touches on the Packager for iPhone, we have invited a few developers and designers to join a closed pre-release program. As they are testing it and giving us feedback, they also have been able to use it to build some applications that they have submitted to the iTunes App Store. Here are some recent iPhone applications that you can find in the App Store now:

GoldStrike_small.pngGold Strike
This popular action/puzzle game has been around for nearly a decade and played by millions. You are a miner who has struck gold! But the mine is unstable. Remove gold by finding groups of blocks as tremors fill the mine up.

Brush_small.png


Brush
Dr. Alan Acierno has created a Brush application which times every tooth and section of the mouth to help you brush 3 minutes twice a day

To follow news from the Flash Platform Team about the iPhone Packager and other new developments, follow us at @Flash_Platform

Update:
As a result of Apple’s updated legal terms (section 3.3.1 of the Apple iPhone SDK License Agreement), Apple is no longer permitting these applications to be delivered to iPhone, iPad and iPod touch users through the Apple App Store. This a legal restriction imposed by Apple and is not a technical limitation of Adobe AIR or Adobe Flash Professional CS5.

At this time, we have ceased further development of the Packager for iPhone, and we plan to keep this completed work in CS5 to demonstrate the capabilities of the Flash Platform to support multiple platforms and devices. We have already started the pre-release of AIR for Android and will shift our investment there and to other technologies, in addition to the work we have already been doing on Flash Player 10.1 for Android. We believe Android will enable a series of very competitive devices in the market and are working closely with Google and other Open Screen Project (OSP) partners on this.

10 leading CEOs discuss the Open Screen Project and Flash

CEOs from ARM, Broadcom, DoCoMo, Google, HTC, Motorola, NVIDIA, Palm, QUALCOMM, and RIM talk about how they’re bringing Flash Platform technologies to their devices and platforms as part of the Open Screen Project and why they think it’s important to have Flash on their devices and platforms.

Flash Platform Extends to the iPhone Platform

So you heard it right, we have brought the Flash Platform to the iPhone OS for applications.  In fact some of the applications are already on the Apple AppStore for you to download

We thought it was fun to put them up in secret and working with a very very small set of developers, and our engineering teams I think we’ve really proven that Flash can run effectively on the iPhone without changes.

The applications are:

  • Just Letters
  • Finger Paint
  • Red Hood
  • Chroma Circuit
  • FickleBlox
  • That Roach Game
  • Trading Stuff
  • South Park Avatar Creator

Enabling the Flash Platform to run on the iPhone has been a really tough task, and one that results in some limitations.  Though you have told us that this is a top priority for your mobile projects, and so we’ve worked for over a year to build this solution.

For developers the new tooling will be made available with the Flash Professional tool, which will also be in pre-release later this year. So today you can begin your work on mobile devices targeting Flash Player 10, or Adobe AIR 2.0 Apis in time.

One caveat of this Ahead of Time compilation method is that we can only use AS3 code.  AOT compilation means that we have no interpreter on the device, as per Apple’s restriction.  Without the interpreter you won’t be able to load SWFs unless they were packaged with your application, boo Apple :-)

This new tool set and a subset of apis from Adobe AIR will have all manner of features enabled, along with the hardware acceleration, battery, memory and rendering performance increases that we have worked on in Flash Player 10.1.

These are:
• Photo selection from file system
• Contact selection from the address book
• Camera
• Cut/copy/paste
• Accessory support
• In app purchase support
• Peer to peer
• Maps
• iPod library access
• Compass
• Push notifications
• Audio recording
• Video recording
• Parental controls

Of course because of the huge amount of work involved, and lack of public API access from Apple we have to drop a few features too.

• Embedded HTML content
• RTMPE (this was our call)
• H.264 Video (you can use URLRequest)
• Dynamically loading SWFs (containing AS3 code)
• PixelBender

So what about Flex?  Well here at Adobe MAX we’ll have a session specifically around Adobe Flex Mobile Framework, codename “Slider”.  We expect that in time we’ll enable this version of the framework to run effectively on the iPhone.  You’ll be using the same tools, Apis and core framework elements.

Although there would be nothing technically stopping you from using Flex, you would suffer huge performance penalties, and have to re-write the components for mobile and device interactions.

Go and get started then today!

It’s a great time to be a Flash Platform developer (about Flash and the iPhone)

With the day 1 keynote wrapping up, Adobe MAX 2009 has now officially started. While most of the announcements in today’s keynote were already sent out last night, the biggest announcement was probably a very big surprise to many. The first time I heard this news a few weeks ago, I nearly fell of my […]

Adobe MAX social media & DeadDrop challenge

I’m sure that by now you will have noticed that Adobe MAX is literally just around the corner. The pre-conference show starts this weekend and the countdown has started to Monday’s first keynote. I have managed to sneak in to some rehearsals this week in the San Francisco office and I was absolutely speechless when […]

Can’t make it to MAX? Organize a MAX party and watch the keynotes online!

Can’t make it to MAX? Well… we’ll miss you but… why not get together with some friends and colleagues and watch the keynotes together? No no… Not like that cheesy video you saw on the web… Unless your grandma is also in to everything Adobe ;-) Just hook up your laptop to a projector or […]

New Project: Flex Collaboration Library

I’ve been digging deeply into the dark crevices of Adobe Flash Collaboration Services (AFCS) my session on creating collaborative components at MAX this week. One of my examples is a collaborative map so I relied heavily on the Yahoo Maps example that ships with the AFCS SDK. One of the things I like about the Yahoo Maps example is that it includes a class that extends ArrayCollection and includes some hooks for collaboration. It’s essentially a collaborative ArrayCollection and I rewrote parts of it for my own example and have found it to be very useful across a lot of my projects.

I realized that it could lower the barrier to entry on AFCS if some of the Flex classes that people rely on a lot had “automatic” support for collaboration via AFCS. So I took the class I created based on the Yahoo Maps example and tried to make it as “drag-and-droppable” as can be for someone who wants to start using AFCS. It merges two concepts, the ArrayCollection concept, and the CollectionNode concept from AFCS. CollectionNodes let you store any piece of data on the server and lets multiple people add/change/remove information from the collection. Events are fired so that any time someone changes a piece of data it can be updated across all of the connected clients.

What I’ve done with my SharedArrayCollection class is put all of that logic into a single class that extends ArrayCollection. Developers can use the SharedArrayCollection just like they would use an ArrayCollection but the difference is that the SharedArrayCollection is automatically enabled for multi-user collaboration with AFCS. The only major difference is that instead of listening for a collectionChange Event you listen for a CollectionNodeEvent.

I’m still hacking out the basics and after MAX I’ll try to provide an example use case so people can see exactly how it works. I’ve put everything up on GitHub under the Flex Collaboration Library project. I’m hoping to make the SharedArrayCollection more bullet proof and then create more AFCS-enabled Flex classes and components. Let me know if you find a bug or if you find this at all useful.