Apple is Changing their Terms of Service 3 Days Prior to CS5 Launch

2010 -
04.08

Last week I wrote “Looking into a crystal ball, I fear Apple will deny all Flash built content on the iPhone App store.” I think I’ll be keeping that crystal ball around because today Apple announced their new iPhone OS4 and made a few minor changes to their terms of services (TOS):

3.3.1 — Applications may only use Documented APIs in the manner prescribed by Apple and must not use or call any private APIs.

was changed to:

3.3.1 — Applications may only use Documented APIs in the manner prescribed by Apple and must not use or call any private APIs. Applications must be originally written in Objective-C, C, C++, or JavaScript as executed by the iPhone OS WebKit engine, and only code written in C, C++, and Objective-C may compile and directly link against the Documented APIs (e.g., Applications that link to Documented APIs through an intermediary translation or compatibility layer or tool are prohibited).

The general interpretation of this change is that Adobe’s new ‘Compile for iPhone’ feature would violate the TOS (terms of service) agreement. This is all going down 3 days before Adobe is expecting to announce their new CS5 suite.

The timing of the TOS change couldn’t be worse for Adobe. On Monday, Adobe is launching CS5 and one of the biggest expected announcements was the ‘Compile for iPhone’ (highlighted at the Max keynote) Peter Elst of Adobe even goes so far as to call the timing ’a malicious move‘ by Apple.

Adobe employees have spent countless hours developing, writing example code, and documenting the process of building flash applications for the iPhone. This is an astronomical amount of work and while it might not be a financial burden for Adobe, it is in fact dispiriting for all of the individuals who worked hard to make this feature possible.

Adobe’s official twitter response is:

We are looking into the new SDK language. We continue to develop Packager for iPhone OS which will debut in Flash

The CS5 code is and has been in lock down for sometime. One would expect for Flash CS5 to ship with the ‘Compile for iPhone’ feature still included. The good news is developers should be able to get Flash applications on to their own personal provisioned phones but it doesn’t look good for submission to the Apple App Store.

Apple has always enjoyed controlling every aspect of their product line. Allowing Adobe to partake in development tooling means that Apple has less control over one aspect small aspect of iPhone universe. If Apple is truly the cell phone ‘Soup Nazi’ then any loss of control is a bad thing in their mind.

A large influx of Adobe generated applications means that Apple would suffer more App Store distress and an extreme slow down to the application approval process. Add increased traffic from iPad application submissions and you have a recipe for disaster.

I’m also suspicious that Apple may have wanted to discourage their developers from being able to cross compiling all of these applications to other mobile operating systems. (Check out ‘One Application, Five Screens’) Apple’s unique and increasing library is one of it’s largest selling points when courting users. How Apple, how?

Apple isn’t looking to turn away applications made in JavaScript. Solutions like PhoneGap should continue to work correctly however Unity, OpenPlug ELIPS, MonoTouch, and XMLVM are all question marks. I’ll go out on a limb and guess that Apple won’t be too restrictive with these other cross compilers.

Apple will most likely be enforcing this new rule by take a strong look at the additional and mandatory binary signature that is required to make Flash on the iPhone work. Do these other cross compilers have a similar binary signature that identifies them as being cross compiled? (I’m asking because I have no idea. Comments anyone?)

Adobe Could Respond

Adobe originally didn’t seem worried about the possibility of this:

Adobe’s Jeremy Clark has said:

iPhone applications built with Flash Platform tools are compiled into standard, native iPhone executable packages and no runtime interpreter is necessary to run the application. Over 30 Applications built using the Flash Packager for iPhone have already been accepted in the iPhone app store so we’re confident that our method fits within the rules of the iPhone App Store.

I hope that Adobe’s confidence in the ‘old rules of the iPhone App Store’ didn’t blind them into not having an alternative plan.

Or maybe Adobe has a far better alternative that they will wow us with on Monday. I just hope that Adobe isn’t (as John Gruber puts it) royally fucked.

Other suggested responses? Quit developing software for the Mac maybe?

Be sure to comment with ideas and opinions. Thanks!

This entry was posted
on Thursday, April 8th, 2010 at 8:05 pm
and is filed under Blog.
You can follow any responses to this entry through the RSS 2.0 feed.
You can leave a response, or trackback from your own site.

9 Responses to “Apple is Changing their Terms of Service 3 Days Prior to CS5 Launch”

I agree with John Gruber’s follow up article that this isn’t just targeting Adobe, but targeting the other platforms because Apple doesn’t want it to be easy to develop for all mobile devices. As a leader in the mobile app world, if an app is being made, usually it’s made for the iPhone first and if there’s budget and time, then it’s ported over to other devices. This would help rivals like the struggling Palm, who many think have a great OS, but is suffering because of the lack of apps.

That said this is the license agreement for the iPhone OS 4.0, which isn’t out of beta until the summer, possibly the fall and that no rules are being broken for any apps submitted right now under the iPhone OS 3.2 license agreement. James Eberhardt, recently tweeted that his iPhone app that was made with Flash CS5 was approved this afternoon:http://twitter.com/james_eberhardt/status/11850738164

Meanwhile, I wouldn’t be surprised if this resulted in a lawsuit from Adobe & other companies. It’s one thing to ban the Flash Player, Apple could argue say battery life or other issues, but it’s something completely different to ban competing development tools. If a resulting native application is no different than any other native application made with Apple tools and has to be decompiled and inspected at the byte to tell them apart, then I think Apple could open themselves up to unfair competitive practices lawsuit. However, I’m a developer myself not a lawyer, so I’m just guessing here. Still Apple was investigated by the FCC for blocking Google’s Voice app from the iTunes store.

Flash is a low performance platform. Not even mentioning high-powered 3D sites built in Flash (like my own, don’t call me a hater), if I take my MacBookPro for a stroll down, oh, say, funnyordie.com, or any news site (text + images), you can be GUARANTEED I’ll run into some CRAP like a VideoEgg ad, or several other HORRIBLY engineered ADS.

ADS. That’s what’s killing this. Ads. Yes it is, I make them, under the direction of people who don’t give a shit.

The funniest thing about all this, for me, was a conversation I had with some dick while working at VideoEgg. The iPad had just come out, and he and the rest of the team were all “Oh Jobs, what a NAZI! Adobe has proven that Flash runs great on mobile devices!”

What? What the FUCK? DUDE, you instruct me ALL DAY to BREAK best practices because Flash ALLOWS IT and we need to “get the product out the door.” This mentality is rampant in Flash development. Here I’m talking to a guy who SWEARS Flash will run on the iPhone (“I’ve seen it!”), meanwhile, he’s responsible for one of the GREATEST reasons that it WILL NOT.

Think about it. It’s all about engineering quality and the amount of instances. They showed ecodazoo at the beta demonstration…. hmmm… a SUPERBLY engineered site (a minority of Flash content), and it was the only instance on the page. Right after that, Hulu crashed repeatedly. Let’s not get started on a common news site with ads….

This is the point people: on a desktop, when you take your browser to a page with Flash ads, that browser INSTANTLY allocates excess in 100MB of RAM. Why? Because Flash is dogshit, when it comes to utilizing hardware. If NATIVE games on my Mac run great and look like XBox 360 but Flash runs like shit looking no better than PS1, how the HELL does anyone expect Flash to work fine on a mobile device with a less capable hardware? FLASH BRINGS DESKTOPS TO A CRAWL.

Furthermore, the landscape of utter BULLSHIT Flash content on the internet is vast. Jobs doesn’t want to retain control because he’s a “Nazi”; he’s trying to prevent iPhone OS from becoming Windows Ninety-Fucking-Five.

It blows me away that none of you realize any of this.

Moreover, they HAVE to retain control over the platform, because if Adobe doesn’t FULLY implement the API, then developers will not have full access to the device; developers are then at the behest of Adobe, not Apple, when it comes to expecting a usable API. That simply will fail miserably. And for all of you who think that Adobe will stay up to speed on that tip, tell me this: WHERE THE HELL IS MY HARDWARE ACCELERATED 3D IN FLASH AND WHY THE HELL DO WE STILL HAVE FUCKING PAPERVISION!?!?!?!?

So, instead of enhancing a platform that obviously needs it (even more than it obviously needs to ditch the plugin architecture and remake the Flash platform to DO THE EXACT SAME THING while exporting content in the form of WEB STANDARDS), instead Adobe would rather turn this into a pissing contest about how they shouldn’t have to act like REAL DEVELOPERS.

“We’ll show you Apple, you just watch! See, look it’s running grea… oh it crashed again.”