Today Adobe announced that the new version of the Flash development tool, Flash Professional CS5, will allow developers to use ActionScript and most of the Flash APIs to build native iPhone applications. Note that this does not mean that the Flash player now runs on iPhones. In other words you can't go to a website that has Flash content and see that content on the iPhone. But what you can do is take flash content and compile that content into a traditional iPhone compatible app that customers could download from the app store.
Basically what this means is that instead of building iPhone apps with Apple's tools, you can build iPhone apps with Adobe's Flash tools. This is a huge deal for the million or so Flash developers that can now build iPhone applications without learning new skills. It’s also great for Flash developers that already have apps that may be easily ported to the iPhone.
But what's the catch?
Well as far as I can tell, the biggest catch is the Flash tooling stack is heavy. These days, much Flash application development is done with Flex, which is a set of libraries that make it easy to do things like buttons and scrollable areas, and windows and such. Nowhere in the announcement is there any mention of Flex. This is telling.
What is more telling is that they do talk about performance issues. And so my gut is that using Flash tools to develop iPhone apps will not exactly yield high performance applications comparable to what you can develop using Apples tools. And I suspect using Flex is so slow that they couldn't even bring themselves to mention it in their announcement.
The other interesting question is whether there are battery life implications to using Flash tools and libraries on the iPhone.
That said, even a slow Flash tool set for the iPhone is a huge deal for the Flash development community. Because even if you have to develop more cautiously in order to have decent performance, being able to use existing skills and content is major. Of course there is lots more we need to see before we can see exactly how helpful this will really be.
But the most interesting question out of all this is how Apple will react, and what Adobe's success here might mean. Now I am not saying that Apple can or will stop Adobe from launching this tool. I am sure Apple has already given Adobe the thumbs up if for no other reason than that Apple can’t be seen as prohibiting people from writing compilers for the iPhone. That would just be too creepy. But what Adobe is trying to do here, with its recent announcements that the Flash player is going to be on every smart phone on the market including Blackberry, Android, Palm and Windows Mobile, is to be the only cross platform way to build mobile apps.
Apple can't like that.
But there is really not much they can do about it. And if Adobe can ultimately do a good enough job to get developers writing cross platform iPhone apps, this could be a major threat to Apple's app store hegemony in the same way that the Web browser has neutralized windows as a critical application development platform target. No one writes apps for Windows anymore. Everyone is writing for the web. Of course HTML 5 could play a similar role but my gut tells me HTML 5 will be too fragmented to be successful in the short term, and that Apple has no incentive to provide real HTML 5 development tools that access the iPhone's hardware APIs and that would undercut their Apple’s own proprietary strength.
Indeed we do live in interesting times.
9 comments:
Nice post, and fast too :-)
I wonder how big a hello-world flash derived iPhone app will be. Are they essentially including the whole flash library in every app?
As far as Flex goes, Adobe apparently has a mobile Flex Framework in development, although I can't find it on their dev pages...
Regards,
Hudson
Missing from the line-up - at least so far - is Apple. Take a look at what Harry McCracken has to say about that - is Flash support on phones a promise for a multimedia future, or just going to end up meaning those annoying Flash-based ads will also play on your phone, sucking your battery power?
Flex apps compile down to SWFs, so Flex stuff should work fine.
Regarding performance, everything gets compiled to ARM assembly, so using Flash instead of Xcode won't be a problem if you actually target the iPhone (smaller screen, slower processor, etc.) But if folks take their existing FLAs for normal desktop apps and just export to iPhone machine code, of course they'll be slow.
Some technical details can be found here:
http://www.adobe.com/devnet/logged_in/abansod_iphone.html
Best of all, iPhone development no longer requires a Mac.
Nice post, as usual, Hank (I'm a long time reader, first time commenter).
A few things:
- First, Adobe is addressing the Flex question on their developer FAQ (http://bit.ly/Z7FDO ). They say pretty much directly that Flex is too heavy weight to run on a phone.
- Second, it seems to me that its probably in Apples best interest to have another million iPhone app developers and a gazillion apps ready to be ported - just makes the platform more appealing and rakes in more 30% margins for App Store sales.
- But most interesting (IMO), and to your point about the Adobe Open Screen project (cross platform mobile app development). I've recently started using Adobe AIR to build a desktop app, and have been very impressed with its cross platform capabilities. Now its seeming like I'll be able to use the same tools and skills to development cross platform apps for desktops, mobile devices *and* the web.
One ring to rule them all?
Tony
FYI: the mobile Flex Framework is talked about here:
http://labs.adobe.com/technologies/flex/mobile/
there are open source alternatives trying to do similar things like this but using HTML and Javascript for web developers. check out Appcelerator's Titanium product. It's an alternative to Adobe's products for both Desktop and Mobile. Titanium Desktop (unlike Mobile) does support Flash in addition to HTML/JS and is a good alternative to AIR.
There are third-party solutions that let HTML 5 access the native API (PhoneGap) HTML 5 will not be that fragmented because everyone (but MS) is either using or copying mobile WebKit.
Apple offers DashCode, of course. They may not push hard with DashCode, but they'll keep up with the competition. If WebOS or Flash or anything else starts looking too attractive, Apple can always add features to DashCode and more access to the native APIs.
Flash will have to carve out some space in between HTML 5 and native Cocoa-touch. I'm not sure how big that space will be.
As a flash game developer, I'm rather concerned with the performance issues they talk about. I do worry that there won't be any room for action oriented games, and developers will be limited to creating less cpu intensive games such as puzzle games, and those that don't use Box2D physics engine. I don't know too much about it though, so I guess we'll just have to wait and see. Nice perspective on the pros and cons, glad to see someone who isn't just blindly praising this.
I'd be interested to know more about the performance issues. Are they temporary setbacks that simply require time for the adobe engineers to tackle, or are they permanent obstacles that will forever prevent flash apps from utilizing complex animations until the mobile devices feature multi-cpu 2Ghz processors?
Post a Comment