Apple's iPhone 4 SDK license bans Flash, Java, Mono apps

Posted:
in iPhone edited January 2014
Apple has updated its iPhone Developer Program License Agreement in the iPhone 4.0 SDK to specifically prohibit the development of apps using "an intermediary translation or compatibility layer or tool," which would include Adobe's Flash, Sun's Java, or Microsoft's Silverlight/Mono.



Apple has always prohibited the use of outside frameworks, runtimes or plugins in iPhone apps, a measure that has prevented Adobe or others from delivering an app with the ability to run content such as Flash or Java or Silverlight.



This restriction prompted Adobe to attempt to salvage its developers' existing Flash content by adding a feature to the upcoming Creative Suite 5 that would allow the Flash Professional application to export existing Flash content into a native iPhone application package that could be legitimately sold in the iTunes App Store because it was no longer Flash, and therefore no longer needed any sort of external runtime to play.



However, in iPhone 4, a clause in the developer license that until now only prohibited the use of private APIs (that is, development features that Apple has not completed, documented, and disclosed as being available for public use) has now been expanded to include prohibitions on developing iPhone apps in other languages or in other development environments that are then translated or cross-compiled into native iPhone apps. The clause, section 3.3.3, now reads:



"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)."



This measure means Flash Professionals won't be able to develop content using Flash's ActiveScript and then port this code to iPhone. It also means that developers won't be able to directly port code written in Microsoft's C# language to its .NET framework into a translated iPhone app.



The prohibition may also be a roadblock for Appcelerator and its Titanium SDK or the similar PhoneGap, both of which are designed to build native mobile apps using web technologies such as HTML and JavaScript. The clause specifically limits JavaScript for use in web apps, and does not allow it to link against the native Cocoa Touch APIs.



The news should come as a crushing blow to Adobe, which has been working furiously to develop its Flash to iPhone cross compiler as the key new feature for Flash Professional in CS5. It also erases Adobe's strategy to push mobile and web development toward Flash while still leveraging compatibility with the iPhone OS.



By insisting that all iPhone apps begin as native development using its own Xcode tools, Apple can prevent third party middleware platforms from muscling into the market it created. This will effectively reserve the value and sales volumes of the App Store to benefit Apple's own development tools, ensuring that all the apps sold in the App Store are being built using the company's own native tools and not just cross-compiled from another source.



Apple's move apparently comes in a defense strike against Flash app shovelware, which threatens to water down the original content in the App Store with lots of existing, poor quality Flash games originally designed for the web or other mobile platforms and rebaked to work on the iPhone.



The new rule also rubs out any hope for Java or Silverlight/Mono as a common denominator for building mobile apps, preventing developers from coding apps using Java or C#/.NET and then just cross-compiling them into iPhone apps using a "translation or compatibility layer."
«13456710

Comments

  • Reply 1 of 198
    monstrositymonstrosity Posts: 2,234member
    Good. This pleases me.
  • Reply 2 of 198
    dreyfus2dreyfus2 Posts: 1,072member
    I bet Jobs was tempted to name this as the 8th tentpole



    Maybe it will cause more decent upgrade pricing for CS5 suites. Classic win-win!
  • Reply 3 of 198
    bloggerblogbloggerblog Posts: 2,462member
    Quote:

    the App Store are being built using the company's own naive tools and not just cross-compiled from another source.



    "Native" instead or "naive"



    Apple's coding platform had always been marginalized, so this will solidify it in market.
  • Reply 4 of 198
    justflybobjustflybob Posts: 1,337member
    Yeeeeeeessssssss!
  • Reply 5 of 198
    quinneyquinney Posts: 2,528member
    Couldn't they just add a "shovelware" section to the app store?
  • Reply 6 of 198
    it's called action script not active script. wtf?
  • Reply 7 of 198
    .....
  • Reply 8 of 198
    amdahlamdahl Posts: 100member
    Apple is guaranteeing they will not be the industry standard platform, once again.



    Quote:

    The news should come as a crushing blow to Adobe, which has been working furiously to develop its Flash to iPhone cross compiler as the key new feature for Flash Professional in CS5. It also erases Adobe's strategy to push mobile and web development toward Flash while still leveraging compatibility with the iPhone OS.



    Are you kidding me? Adobe is jumping for joy. Apple just removed themselves as a real contender for vertical markets and multi-platform apps.
  • Reply 9 of 198
    sflocalsflocal Posts: 6,092member
    I have to admit, it's actually quite funny. This has got to be pi**ing off the bigwigs at Adobe. Jobs really has his sniper-scope pointed directly at Flash.



    I know from Adobe's perspective it would make it easier for Flash designers to create iPhone apps. I always thought this was a bit fishy. I never used their Flash-port tool. Does the designer have access to the lower level code that is generated? I bet Adobe would slip something in there with no one's knowledge to override the App store guidelines.
  • Reply 10 of 198
    estyleestyle Posts: 201member
    Whatever it is that Apple wants Adobe to do, Adobe is about to do it, and they will probably have to do it for free.

    I just want to know what it is.
  • Reply 11 of 198


    Apple has earned the right to behave like South Park's Eric Cartman! You're bustin my balls! Or, Futurama's Bender.



    Apple to Adobe: Ya wana live in my house you gotta live by my rules or kiss my shinny metal iPad a..!



    Cheers to Apple for sticking it to the man. I mean the middle man.



    Also, I believe it's "Actionscript" NOT "Activescript". But who cares anymore. Maybe it's Antiquatedscript.



    OS4 is balls-to-the-wall! Really!

  • Reply 12 of 198
    prof. peabodyprof. peabody Posts: 2,860member
    Quote:
    Originally Posted by sflocal View Post


    I have to admit, it's actually quite funny. This has got to be pi**ing off the bigwigs at Adobe. Jobs really has his sniper-scope pointed directly at Flash.



    I know from Adobe's perspective it would make it easier for Flash designers to create iPhone apps. I always thought this was a bit fishy. I never used their Flash-port tool. Does the designer have access to the lower level code that is generated? I bet Adobe would slip something in there with no one's knowledge to override the App store guidelines.



    I wish someone with greater knowledge of the whole thing than the article's author would chime in with an explanation.



    I am no coder, but it seems to me that if the resultant code is the same then there is no way to tell what the thing was "originally" written in. Conversely, if Apple can tell what language things were "originally written in," then the resultant code is not equivalent and they have every right to argue for it not being used.
  • Reply 13 of 198
    jameskatt2jameskatt2 Posts: 720member
    This developer clause does not prevent Adobe or anyone else from creating a SDK which translates the language used (e.g. Flash) into C, C+, or Objective C. Then the output can be compiled in XCode into a working app.



    It does prevent 3rd party apps which create native apps which then hook into Apple's APIs without going through XCode for compilation. But this is easy to work around using the above described process.
  • Reply 14 of 198
    Quote:
    Originally Posted by Amdahl View Post


    Apple is guaranteeing they will not be the industry standard platform, once again.







    Are you kidding me? Adobe is jumping for joy. Apple just removed themselves as a real contender for vertical markets and multi-platform apps.





    And you think Flash is the solution to multi-platform apps????



    BWAHAHAHAHAHAHAHAHA!!!!!!!



    Can I have what you're smoking?
  • Reply 15 of 198
    mdriftmeyermdriftmeyer Posts: 7,503member
    Quote:

    Apple's iPhone 4 SDK license bans ported Flash, Java, Mono apps



    As it should be.
  • Reply 16 of 198
    jameskatt2jameskatt2 Posts: 720member
    Quote:
    Originally Posted by Amdahl View Post


    Apple is guaranteeing they will not be the industry standard platform, once again.



    Are you kidding me? Adobe is jumping for joy. Apple just removed themselves as a real contender for vertical markets and multi-platform apps.



    NO.



    This clause insures that developers who build multi-platform apps will create apps that are best-in-class for the iPhone platform - not just hacked Bizarro Java apps.



    This insures that iPhone users will get BEST TREATMENT from developers and are not treated like second-class citizens.
  • Reply 17 of 198
    jeffdmjeffdm Posts: 12,951member
    Making apps compiled from other development tools against the rules is one thing, but exactly what tools would Apple use to detect this? I understand they have a tool that detects calls to private APIs, but what kind of signature is there for using an unapproved compiler / programming language?
  • Reply 18 of 198
    Once again, a smart move by Apple.
  • Reply 19 of 198
    gordygordy Posts: 1,004member
    Quote:
    Originally Posted by Amdahl View Post


    Are you kidding me? Adobe is jumping for joy.



    Apple is banking on the mobile market surpassing the consumer desktop market in the near future...the next frontier one might say. At this point, Flash has made no real inroads into the mobile market, so, I doubt they are happy about this.
  • Reply 20 of 198
    Wildly speculative programmer here. Either:



    a) It's because in those environments code is effectively data and can be modified post-submission (e.g., for mono, just download another .dll - it's dynamic linking, which is banned). If Adobe's Flash converter is outputting C code compiled through the iPhone SDK then it could still work. If it's just an SWF runtime, then it's doomed.



    b) Apple's app validation tool can't verify the contents of non-native code (all apps have to go through validation to check for use of private APIs).
Sign In or Register to comment.