The Flash Pan
I’ve been asked a few times since the iPhone 4.0 beta dropped what I think of the developer agreement’s new Section 3.3.1. Some have already assumed I’m all for it, from my blatant fanboyism. I am not. I know a few of the guys at places like Appcelerator and PhoneGap, and I sincerely wish them luck as they mitigate these waters. But I’m getting ahead of myself, this is a different post altogether.
First off, there are two camps that may be affected by this change: The people who already have apps, who already use software like this, and the people hoping to make use of something like this: That is to say: Flash developers. This post is specifically for those in the second camp, and does not address technologies like Titanium, Unity3D, and PhoneGap. Next, I’ll preface this by saying I used to be a Flash developer. I worked for years at Dyad Communications, where the great majority of the sites we built were Flash — and I will admit — I actually like Flash in a certain way.
All that said, I fully believe Apple is within its rights to block Flash from compiling to iPhone OS. Here’s why:
It’s hypothetical technology
The Flash-to-iPhone compiler hasn’t been released yet. Apple does not know whether these apps will perform well, adhere to Apple’s HIG, or play nicely with multitasking. If they trusted Adobe to do well in all of these things, I’m sure it would have no problem allowing Flash onto the platform. But what would they base the trust on? A CS series notorious for crashing? The highly unstable Mac Flash plugin? If Apple did allow the compiler to go through, they would face an even higher PR risk: Rejecting all of the buggy/slow/poorly designed apps that Flash developers made later — after seeing and having to test its performance first-hand.
The iPhone/iPad is magic
Okay, not really, but the speed/performance of the iPhone and iPad is incredibly impressive, especially considering the limited amount of RAM available. This is all due to the tight integration between hardware and software on the device.
Judging by the Flex demo on Android, I would, again, not put a lot of confidence in Adobe on this.
Flash apps won’t get updated
I forget where I saw this argument, so apologies for not crediting the thought, but: Adobe’s release cycle is every 18 months. This means that hypothetically, even if Adobe timed its release perfectly with that of the new iPhone OS, whenever Apple releases it’s next beta, Adobe users would need to wait at least six months to be able to create their apps against the new system.
Debugging and optimizing
From my experience building Outpost with Jim, I can say: Building good iPhone apps is hard. Once the logic is done, there is a long way to go — if your app uses any sort of data — to actually optimize the thing. Apple’s own SDK was instrumental (pun intended) in getting things to work properly.
Apple is not being evil. This is one company controlling its platform for the sake of its own product. Microsoft does the same thing for XBox, Sony does the same for PlayStation, and Nintendo does the same for Wii. To me, the argument itself is moot: If every developer who complains about Apple’s policy is right, we will start seeing better apps on Android and it will become the dominant platform. I’m not holding my breath.