The Blog

Mar 5, 2008

Flex/AIR on the iPhone Is ***Not*** A Bad Idea 

by Maxim Porges @ 6:44 PM | Link | Feedback (0)

I generally find Apple to be a pretty insightful company, but in this case I have to disagree. Steve Jobs has apparently stated that Flash is not suited for the iPhone.

Now, let me clarify that there are two different kinds of Flash in my opinion.

1) Punch the monkey ads, skip intros, and all that nonsense - an area of Flash I consider the replacement for the hideousness that was Java Applets.

2) Flex, AIR, and all the fantastic things that Adobe is doing with the Flash platform today for rich Internet application development.

I agree with Apple's stance on #1. Frankly, if every Flash ad and useless intro disappeared tomorrow, I wouldn't miss them. Clearly I'm not a marketing guy.

On the other hand, being able to use Flex/AIR etc. on the iPhone strikes me as an amazing opportunity for application developers, especially if Adobe does a few things.

1) First, they need to improve the performance of Flash on OS X. It frankly sucks. My CPU utilization skyrockets on my Mac as soon as anything is running in Flash. I commonly run out of battery life way ahead of normal schedule when developing Flex apps on the road because of this. Performance is considerably better on Windows.

2) Second, if you combine the native extensions to AIR that Ted describes in his recent blog post with a hook in to the iPhone SDK (which we expect to be covered in detail at Apple's event tomorrow), you could have powerful integrations between AIR apps built for iPhone and Apple's revenue/product channels delivered via the iPhone platform. In this situation, I can see the open source Flex community building a wrapper API for the iPhone SDK as an immediate occurrence. If Adobe delivered a wrapper on a silver platter, that would be even better.

3) Taking the iPhone SDK wrapper concept a step further, if Flex Builder ultimately included the ability to build an app in AIR that could multi-purpose the UI seamlessly/automatically for the iPhone (potentially by providing an "iPhone view" workspace and mechanisms for determining if an app is being opened on a regular computer or an iPhone), developers could do really interesting things with applications. Imagine having one AIR app that could be loaded on your iPhone and your desktop PC, and having different modes to access the same back-end services over the web in mobile and desktop modes through one code base. As the iPhone eventually goes to 3G, this could be a developer wonderland.

I'll project for a second here. I expect that the iPhone SDK will offer something along the lines of Dashboard widgets, and more advanced offerings in the form of Objective-C calls to whatever version/subset of Cocoa the iPhone offers via OS X. Let's be honest: there are far fewer Objective-C developers out there than there are Flex/AIR/web developers. Putting Flash on the iPhone opens up the world to far more opportunities for wicked iPhone apps than anything else I can think of that Apple might have up their sleeve. Since more apps for iPhone means more iPhones sold, this can only be good news for my favorite fruit company.

I really hope that Jobs was speaking about the examples of uses for Flash in my #1 example earlier (i.e. crappy ads and such), and can only assume that he hasn't been exposed to Flex and AIR. Jobs is usually a super smart and visionary guy. If he can't see the potential for Flex and AIR on the iPhone (or perhaps sees a threat to Apple's hold on the iPhone platform by its implications) then I personally would be very disappointed.

On a side note, if you go to apple.com at the moment and type "sdk" in to the search field, the only item that pops up is Adobe AIR. Strange coincidence...


UPDATE: Here's a perfect example of what I'm talking about. Instead of Nike equipment to iPod, iPod to iTunes, iTunes to web app on nike.com, web app to Flex for viewing results - why not Nike equipment to iPhone to web app via AIR, and then web app to Flex for viewing results? Just another example of what could potentially be done with an integrated AIR/iPhone SDK.

ANOTHER UPDATE: Dan pointed out to me at work today that the project on Ted's blog post that I linked to is actually just a tool for porting C/C++ code in to AS3, and doesn't actually do anything to let Flex reach outside the sandbox and execute native code. So, this was a bit of me not reading the article fully plus a decent-sized helping of wishful thinking. Nonetheless, I'd still like to see the possibility for native execution in AIR in the future, so maybe Adobe will answer my prayers.