Yesterday at Adobe MAX, Adobe dropped a bombshell. In the upcoming version of the Flash Pro (Flash CS5), developers will now be able to export directly to iPhone. This isn’t an Adobe Flash Player on the iPhone, but rather full applications being exported to native iPhone byte-code. For a place like The Nerdery, it turns our army of Flash Developers into a potential army of iPhone developers. This has really energized the Flash developer community, but some of the iPhone pundits are starting to harrumph about the downsides as well. This also comes on the heels of the announcement of a product called MonoTouch that allows .Net developers to write native iPhone applications as well. It seems like everyone is finding ways to get their favorite programming language to work on an iPhone.
Personally, I’ve spent my first amount of time here at The Nerdery as a Flash/Flex developer until I moved to become one of our senior-most mobile developers. I have the unique position of spending *a lot* of time in both environments. Being in this position, I have some thoughts on the whole situation:
First off, the positives. It is much, much easier to write code in Actionscript (the language that drives Flash applications) than it is to write Objective-C (the language that drives iPhone applications). Ted Patrick, the Platform Evangelist at Adobe, released source code and a applications that, in my estimation, would take 3-4 times longer to write natively in Objective-C. Flash is king at animation and ease of development which will allow for people to make potentially great looking games very quickly.
Also, as hinted at before, the developer pool just grew exponentially. Before, iPhone applications were the realm of developers who wanted to climb the steep learning curve of Objective-C and it’s wonky syntax. Apple announced in late September that there were 125,000 registered iPhone developers. This number could easily grow into the millions now. This will drive down the cost of developing iPhone applications and make this space much more competitive.
So, if it’s faster and cheaper what could be the downside? Just like the old saying in project triangle – “Fast, good, and cheap — pick two,” this comes at the cost of quality. iPhone applications aren’t easy to make and there are a lot of nuances to getting an application just right. In the previously mentioned samples from Ted Patrick, a simple app of putting four circles on the stage and spinning them comes in at a whopping 3.7 MB. Adobe also pointed at seven applications that were developed in Flash Pro CS5 that averaged in size of 10 MB. This is in contrast to the size of the apps developed The Nerdery that average 2.3 MB. . . and I’d wager our apps are just as graphically rich as theirs and as full featured. Why is this important? At 10 MB, your application can no longer be installed over AT&T’s wireless network and your iPhone user needs to find a wifi hotspot or go back to their computer to download the app on iTunes.
It may be that file size is acceptable since your application is going to be large anyway. Using my personal iPhone, and handing it around to our other developers at The Nerdery, performance on these apps has been uniformly been described to as “less than ideal” and “there clearly needs to be some optimization here.”
Then there is the ugly. Apple isn’t the type of company that sits back and lets people circumnavigate the rules that they have laid out. Apple likes having the keys to the development kingdom and don’t like other companies playing around in it. One can see this in the fact that Apple creates new versions of iTunes seemingly just to break the ability of the Palm Pre to sync music with iTunes.
In the iPhone SDK agreement, Apple mentions that you may not “decompile, reverse engineer, disassemble, attempt to derive the source code of, modify, decrypt, or create derivative works of the SDK.” So how will Apple react to this potential violation of the SDK? They have pulled apps that had Google Voice support, so it wouldn’t be unprecedented for Apple to pull these apps. Also, what happens if Apple creates a new firmware update that is incompatible with Flash apps? How responsive will Adobe be to changes in the firmware and releasing patches to Flash Pro?
It should be noted this is all speculation as well. Apple may have blessed this whole process and those concerns are moot. It just seems strange that Apple wouldn’t have been announced as a partner in all of this if they hadn’t.
This is very exciting new for Flash developers. If this is an approved way of developing apps, sign me up. However, until a release date for Flash Pro is announced or Apple comes out and says they endorse or disapprove of this method of creating iPhone applications, I think the only thing that we here at The Nerdery can say for creating iPhone apps in Flash Pro is “caveat emptor.”