   Apple's new iPhone SDK bans MonoTouch, Flash, etc. Screws over indies.
  Up until now the iPhone SDK agreement has said:Quote:3.3.1 — Applications may only use Documented APIs in the manner prescribed by Apple and must not use or call any private APIs.Now it says:Quote: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 &#106avascript 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).(source)Thus banning the Flash-to-iPhone compiler and MonoTouch. And also possibly messing with Unity3D.I've only just discovered this - so I'm still a bit shocked. So far I'm just glad I've not dropped the $100 developer fee or the $400 for MonoTouch - I've been using the emulator up until now.(I did however drop a fair chunk of change on the phone itself, primarily because I wanted to develop for it.)At the moment this seems like an enormous "Fuck You" to developers everywhere. Especially indie developers who might not have the resources to develop games in C++ or develop them twice!It seems like a greedy power-play to lock developers into their platform. But from my perspective they're just needlessly locking me out. It also removes all of the good will I once had for Apple.I wonder how much this might damage the iPhone (and iPad) platform? After all - Android seems to be doing well. And they're effectively casting aside what must be a not-insignificant portion of their developer base?Do you think that Apple are likely change their mind on this one?[Edited by - Andrew Russell on April 9, 2010 6:34:22 AM]
  Not to deny how much of a 'fuck you' it is, but you can still do cross-platform development (in C or C++) though, right?   ;Quote:Original post by HodgmanNot to deny how much of a 'fuck you' it is, but you can still do cross-platform development (in C or C++) though, right?Yes. But developing a C++ game across multiple platforms is an enormous investment compared to developing one in C# or Flash.(I'll edit my title.)   ;  It's a loss on Apples half as it will result in less potentially popular apps being ported to the iPhone.   ;  I just do not understand Apple. It seems in their hatred for all things Adobe or should I say Flash they have thrown the teddies out of the pram and are cutting off the nose to spite the face. It just goes to show how locked down the platform is and in reality developing for the platform is going to become a nightmare until most of the user base upgrades the devices. To maximize the potential market my understanding is you would need to support OS 3.X, 4.0, OpenGLES 1.1 and OpenGLES 2.0. I mean hello "You are a Mac!" are you sure? you sound like a PC.Even if you stick to using the Languages they specify, you may still get your app rejected if you use sprintf!   ;  This also bans XMLVM as well I believe, which is annoying as that means you can no longer build Android and iPhone apps from the same source base, you'll have to rewrite it for each platform (a net loss for everyone involved, I believe).It also potentially bans any game/app that uses an embedded scripting language (like lua), which is a bit extreme.Does anyone know how they're going to enforce this? Are they going to be scanning compiled apps for tell-tale signs of cross-compilation from the major tools (like MonoTouch), or is it purely a manual process (in which case you could take the risky approach of just hiding it and going under the radar).Edit: I suspect there'll be a rush towards source-level cross compilation (ie. generating actual Obj-C code from ActionScript/Java/etc. as this would I suspect be undetectable by Apple and within the wording of the new agreement.   ;Quote:Original post by OrangyTangEdit: I suspect there'll be a rush towards source-level cross compilation (ie. generating actual Obj-C code from ActionScript/Java/etc. as this would I suspect be undetectable by Apple and within the wording of the new agreement.Sounds like this would still violate "Applications that link to Documented APIs through an intermediary translation ... layer or tool are prohibited" -- translating AS/Java/etc into Obj-C is not allowed.Like you said, they might study these translation tools and look for tell-tale signs in your binaries, though that could possibly open them up to banning false-positives...Crazy   ;  If Unity3D falls under this - then doesn't that throw a really big spanner in the works, as I thought there were quite a few iPod/Phone/Pad games using it?I'm mean really - what the hell is Apple trying to stop here?  Flash?   ;Quote:Original post by Orbital FanIf Unity3D falls under this - then doesn't that throw a really big spanner in the works, as I thought there were quite a few iPod/Phone/Pad games using it?I'm mean really - what the hell is Apple trying to stop here?  Flash?their main goal most likely is to try to get young developers drawn into the closed apple world, and don't give them much chance to learn cross platform stuff instead, to bind them for the future to be loyal followers. wouldn't be the first one trying that.and yes, i'm 100% against that kind of ruleset. can't anybody sue them finally?   ;Quote:Original post by Orbital FanI'm mean really - what the hell is Apple trying to stop here?  Flash?I think they've seen that they've got enough "stuff" on the iPhone app store to attract users, but realised that the quality level is pretty low. By banning cross-compilation I think they hope to gain more apps written specifically for the iPhone by proper developers, rather than every Tom, Dick and Harry porting their entire back catalogue of crappy Flash novelties on the off chance of making a few quid.XMLVM, Unity etc. being barred is just collateral damage.   