Steve Jobs bans all apps from iPhone (or thereabouts)
Code translation verboten. Whatever that means
When Apple released its new SDK, the general assumption was that Steve Jobs had barred Titantium and similar tools, such as PhoneGap. But Haynie is confident that his kit will get the Steve Jobs seal of approval. "We think - based on reading of the wording and our understanding of what it means - that we're in compliance," he says. "We believe that Appcelerator produces really high-quality native applications compiled with [Apple's] languages and technology. There's nothing about what we're doing that avoids that or preempts that or goes against that intention."
Titanium taps Apple's APIs. And when Apple introduces new APIs, as it has done with iPhone OS 4.0, Appcelerator works to roll then into its kit in time for launch. "If you bypass the layers Apple has produced, that could be problematic," Haynie says. "But companies like ours don't do that. We use the Cocoa threading system, so any optimizations Apples uses in their layers are going to work with platforms like ours...But if you're bypassing those layers or translating directly to [the iPhone's ARM processor], you're missing optimizations that Apple can put in their own software."
That ARM bit is an Adobe reference. Adobe's iPhone packager does not compile code into Objective C. It compiles directly into machine code. "The way the Packager works is that it allows a Flash developer to compile the ActionScript code down to native iPhone/iPad machine code, in the form of an .ipa file, which is the file that you submit to Apple for approval & inclusion on the App Store," the company tells us.
Adobe says this still takes advantage of Apple's APIs. But Haynie sees it differently, questioning whether Adobe is sidestepping certain tools by compiling code on its own. "Apple has a point here. Any optimizations or hooks they do in their own compilers from Objective-C or their own APIs would effectively be bypassed (inadvertently, probably) by Adobe's machine code generation," Haynie argues.
If Apple tweaked its thread scheduling underneath an API to better handle multitasking, for example, Adobe Packager for iPhone apps may not see the benefit. "Apple could technically optimize for this use-case without the need to get the developer to change code," he says. "They might emit specific ARM machine code to handle this...However, with Adobe emitting their own direct machine code, they would effectively render this optimization or change unaffected."
No Adobe love lost
Is all this just another attack on Adobe in particular? You at least have to wonder. Certainly, Flash is a bigger threat to become a "de facto standard platform" than a Titatnium or a PhoneGap. And for what it's worth: PhoneGap now says it has received confirmation that Apple has not banned its platform outright, though the company has declined to speak to us about the matter.
It's much more fun to think the SDK brouhaha as merely spat between Adobe and Steve Jobs, especially now that Adobe is threatening to, um, file a lawsuit. The enmity between Adobe and Apple goes well beyond the technical arguments. Steve Jobs has already barred untranslated Flash from the iPhone and the iPad, calling it "buggy," littered with security holes, and a "CPU hog." And at the very least, the CPU hog bit is fixable.
In any event, Adobe Packager for iPhone applications will be barred from the iPhone - and the iPad, also slated to use the iPhone 4.0 OS. Titanium apps? Yahoo! Messenger? That app you first drew on the back of cocktail napkin?
It depends how the man is feeling. ®