iPhone OS 4.0 dev agreement blocks using Flash or Unity as IDEs?
UPDATE: We've heard directly from Unity Technologies themselves, and the company's CEO, David Helgason, has been in contact with Apple over the matter. Helgason says that so far Unity has "no indication from Apple that things are going to change." This is consistent with John Gruber's viewpoint on the new iPhone OS 4.0 dev agreement. Gruber originally thought that Unity3D would be a prime candidate for banning under the new rules, but given that Unity3D is, in Gruber's words, "a pre-processor than a cross-compiler," it's nowhere near as certain that Unity will fall on what Gruber calls "the wrong side of the line" per the new dev agreement. Gruber's opinion on the fate of Flash CS5's iPhone compiler under the new rules is... we'll say, "somewhat less rosy," and given the already strained relationship between Apple and Adobe, he's very likely correct.Daring Fireball's John Gruber has found an interesting potential "gotcha" in the newest developer agreement for iPhone OS 4.0. In a section titled "PIs and Functionality," there's a sub-section written in a way that could spell the end for translation tools like Flash Professional CS5's Packager for iPhone or Unity Technologies' Unity iPhone Pro. The relevant clause starts out by saying, "Applications may only use Documented APIs in the manner prescribed by Apple and must not use or call any private APIs." That's nothing new, and has already been the basis of many App Store rejections. But it goes on to say that apps "must be originally written in Objective-C, C, C++, or JavaScript as executed by the iPhone OS WebKit engine." This could be interpreted in many ways, if not for the clarification that follows: "Applications that link to Documented APIs through an intermediary translation or compatibility layer or tool are prohibited."
Adobe's Packager for iPhone is a tool that basically "translates" Flash games into iPhone-compatible versions using ActionScript 3. Unity iPhone Pro similarly allows game code to be outputted into Xcode, and from there it's a very short trip to submitting an app to the App Store. Although the code these two tools output is fully iPhone-compatible (it would have to be, or it would never get approval), the new developer agreement could easily be interpreted as saying, "iPhone apps have to be developed from the ground up in Apple's development environment, or we'll reject them."
If true, developers who have depended on tools like Packager for iPhone or Unity are, perhaps justifiably, going to be very displeased that their IDEs are no longer supported. It's easy to see why Apple would make a move like this -- having "ported" apps in the App Store opens the door to bug-riddled apps with potential security holes -- but it's also easy to sympathize with those who would cast such a move as only one more example of Apple's iron-fisted approach to software development on their mobile platforms.
Disclaimer: I am not even remotely close to being a developer, so it's entirely possible that I'm misinterpreting all of this. If I'm off-base and there are any devs out there who'd like to set me straight, let us know in the comments.
Share
Categories
UPDATE: We've heard directly from Unity Technologies themselves, and the company's CEO, David Helgason, has been in contact with Apple over...
Add a Comment
So...
What happens to the existing apps using Unity? I have one or two, which I don't use too often, but they're pretty fun when I do play them.
?
who cares, you have to play by the rules of the Steve.
enough said.
game over.
go home and re code.
have something to eat.
cry a little.
hate apple more.
Gosh, maybe Apple had a good reason for what they were doing?
Hmmmm, maybe, you think?
http://www.appleinsider.com/articles/10/04/09/apples_prohibition_of_flash_built_apps_in_iphone_4_0_related_to_multitasking.html
Yeah, that's exactly the point! First I also thought this was a terrible decision Apple made. However, if you think about it, you'll get that these ported apps can't support Apple's multitasking since developers don't have the ability to control an app's behaviour when it's in the background as long as they develop their apps with unity or flash.
April 10 2010 at 4:08 PM Report abuse Permalink rate up rate down ReplyYeah but, are the current apps in the store going to magically gain multitasking abilities? Maybe I misread that article but it sounds like another weak attempt at justifying the decision on technical grounds. Even if this is a semi-sound argument, it does not legitimize a full ban. Flash and Unity could easily write libraries that, when converted, call Objective-C's multitasking APIs. At the very least an "auto-freeze on switch" could be built into core of converted apps, limiting what Flash and Unity are capable of but still not harming the platform's reliability.
April 13 2010 at 1:56 PM Report abuse Permalink rate up rate down ReplyI don't think this has to do with Apple wanting to "lock in" developers to their platform. It's about preventing their platform from becoming a commodity.
For example, lets say hypothetically that this Flash porting tool becomes the de-facto standard for creating cross-platform mobile apps (which I'm sure Adobe would love and is certainly their plan). Developers become used to working in "Flash" to build mobile apps, and to them, iPhone OS is just an implementation detail, one more deployment target. Then one day, Apple ships iPhone OS 6. They add some new features, but this breaks all existing apps created with the current Flash tool. Now you've got a bunch of angry developers blaming *Apple* for releasing a "buggy" OS update, when in reality, it's the fault of the porting layer. At this point, people aren't "iPhone" developers, they're "Flash" developers - the iPhone OS has become a commodity.
This is exactly what Apple is trying to prevent from happening.
"having 'ported' apps in the App Store opens the door to bug-riddled apps with potential security holes"
How can you spout this completely inaccurate drivel. You really should remove that line or at least back it up with some references.
FYI any app on the iPhone - especially one written using a language that exposes pointers and has no garbage collection (thats Obj-C BTW) - can be bug-riddled and full of security holes. Providing a higher level language that runs in a sandboxed environment is often far more secure (thats Flash BTW).
What sort of security problems were you expecting from this.
I'm a huge fan Apple products, however, I believe they are asking for an anti-trust investigation in banning the use of Adobe's Flash-IPA converter tool and related development technologies. The isn't just spitting in the face of Adobe but all of the developers out there who don't have time in their busy work schedules to master Objective C just for one platform - there is nothing wrong with such code translators. My company (like many) has been building an iPhone/iPad app for months now in Flash for exportation with the Flash-to-ipa converter tool and, all of sudden, Apple renders it void out of spite towards Adobe. This would be like the US government banning the use of foreign language and interpreters in the US and only allowing citizens who speak native-level English to remain in the nation. Can you imagine the backlash? If a tech giant like Microsoft tried this on their platform, the courts would be all over this. Apple is taking it's ego too far in this decision and, for the first time, I hope someone steps in and slams them in court over their App Store approval practices (Adobe Converter Bans, Google Voice delay, Opera Mini delay, Web Albums HD pinch functionality, and many more). I don't understand how Apple has avoided litigation thus far.
April 09 2010 at 12:50 AM Report abuse Permalink rate up rate down Reply"If Apple was simply interested in improving the quality or security of their apps then they would implement more stringent quality controls."
Ding ding ding! We have a winner.
Any app that performs poorly on the iPhone can be banned from the appstore, and I don't care if it's written in Flash or Objective C.
However, if you intentionally block applications just because they're Flash compiled, you rule out the possibility that Adobe will optimize their compiler (they will), and you also insult all the developers because well gee, they couldn't possibly be smart enough to use non-intensive animations and keep the performance constraints of the iPhone in mind. Heck, it's utterly ridiculous that they might specifically make less intensive versions of their apps for the iPhone.
Nonsense! If Apple blocks Flash compiled apps, the users lose and the developers lose.
It's funny to see people bashing Flash apps on an iPhone before the official release is even out. I mean if you want to have a debate about buggy slow apps on an iPhone lets talk about Safari. Apple's own native app written in Objective C crashes more than any other app on my iPhone. Second in that arena is probably Facebook another Objective C app.
In my opinion this decision has nothing to do with performance and everything to do with App store profits.
Not app store profits, or at least not directly. It has to do with developer lock-in. They feel that they are in such a commanding position that they can dictate the learning and use of their 100% proprietary language and API's. Allowing code generators and cross-compilers makes it much easier to develop cross platform. This makes many developers have to make a choice. Since money talks, the choice is likely to be iPhone. One less app for the competitor(s). It isn't all that surprising, but it is despicable if it turns out to be true. And with Apple's recent history (and the crazy spat with Adobe), I'm guessing it at least partially is.
April 09 2010 at 12:19 AM Report abuse Permalink rate up rate down ReplyPersonally, I would like to see the user community decide what is crap and what is exceptional, regardless of the development environment, tools, APIs, or somesuch that is used to create the product. If the product lags or crashes, then it will come out in the reviews.
My preference is that Apple would improve the commenting / rating system to allow the best apps to rise to the top. Currently any 9-year-old (or educational equivalent) can write the following: "Omw Funnest app ever!! Worth the money!! Get it plz" (And no, I didn't make that up. I'm quoting from the *first* review of the *first* app in the New section of the App Store this week, which happens to be The Sims 3).
As someone who has seen a Flash iPhone app port, this is great news, because the app ran like garbage. I think it is a smart quality control move from Apple's perspective. In the case of the Flash port, it is essentially an app within an app and therefore will never have the performance or resource efficiency of something written natively. So yes: i do think it is (at least partly) about quality control.
April 08 2010 at 8:51 PM Report abuse Permalink rate up rate down ReplyYou're working from the presumption that Flash games are crap and games built for the IPhone from the ground up are inherently of higher quality. This is simply not true. There are plenty of quality Flash games. There are plenty of crap native IPhone games too.
This is the same argument of high level programming languages vs low level languages. It's true that the low level languages can create more efficient code than high level languages but that bears on impact on the final quality of the game. A bad programmer or bad developer can make a bad app with whatever tools they have available.
No. I'm not working from that assumption. How did you make the jump to the conclusion that i hate Flash games? I'm a Flash dev!
I'm working from the assumption that i have actually seen a real-world build of a test Flash CS5 "iPhone app" port on the iPhone, and it performed like a dog.
Hot Apps on TUAW
Deals of the Day
more deals- Refurb Apple MacBook Air Laptops: 12" 64GB SSD for $699 + free shipping
- JVC Motion Sensing Clock Radio with Dual iPod Docks for $55 + free shipping
- Apple iPhone Headset with Mic for $4 + $2 s&h
- miFrame Picture Frame Dock for iPad for $64 + $8 s&h
- Refurb Apple iPod nano 8GB MP3 Player for $99 + free shipping, 16GB for $119
- Hannspree Apple-Shaped 28" 1080p LCD HDTV for $270 + free shipping
Software Updates
more updates- EFI Firmware Update brings Lion Internet Recovery to 2010-model Macs
- OS X Lion 10.7.3 released with Safari 5.1.3, Wi-Fi bug fix
- Aperture updated to 3.2.2, addresses Photo Stream issue
- Apple updates Keynote to address Lion issues
- Google Search app gets new look on iPad
- Apple releases Apple TV Software Update 4.4.3



63 Comments