Apple lets in Java and Flash; should Android be worried?

Apple lets in Java and Flash; should Android be worried?

Summary: Apple just relaxed all restrictions on the development tools used to create iOS apps. Get all the juicy details here including a complete before and after comparison of the developer agreement.


Temperatures dropped about 30 degrees in Hades this morning when Apple announced they were relaxing all restrictions on the development tools used to create iOS apps. They will also be allowing 3rd party advertisers such as AdMob, but not analytics software such as Flurry.

The changes bring iPhone, iPad, and iPod Touch development a bit closer to the laissez-faire policies of Google's Android Market. Though the latter still does not require any kind of review or approval process before developers can upload new programs, Google can and does sometimes remove apps after the fact if its policies are violated.

The new policy removes another self-imposed roadblock that Apple had built in the way of developers hoping to support the popular iOS platform. In the final analysis, though, it's unlikely to have much effect on the competition between Android and iOS. Why? Because developers, while vocal and opinionated, are very pragmatic. They go where the audience is. The main thing that will determine which platform gets the most attention from developers is which platform gets the most attention from the consumers that buy the phones and tablets that host it. And consumers don't care whether or not apps are written in Objective-C, Java, or Moo. They care about price, selection, and network quality.

You and I, though, we care about the technical bits and the nitty gritty details, right? So without further ado, let's dive right in.

Next: Before and after changes >

Four sections (not three as stated in the press release) of the iOS Developer Program License Agreement (available here, PDF) were changed compared to the previous version released on April 8th:

Section 3.3.1 old version:

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

Section 3.3.1 new version:

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

All the stuff about which languages you can and can't use is gone. Huzzah!

Section 3.3.2 old version:

3.3.2 An Application may not itself install or launch other executable code by any means, including without limitation through the use of a plug-in architecture, calling other frameworks, other APIs or otherwise. No interpreted code may be downloaded or used in an Application except for code that is interpreted and run by Apple's Documented APIs and built-in interpreter(s).

Section 3.3.2 new version:

3.3.2 An Application may not download or install executable code. Interpreted code may only be used in an Application if all scripts, code and interpreters are packaged in the Application and not downloaded. The only exception to the foregoing is scripts and code downloaded and run by Apple's built-in WebKit framework.

Even interpreters and script languages are allowed, as long as everything is pre-packaged. This section and the one above it lets developers use Flash, Java, or any other package as long as it's all self-contained. It seems to disallow non-WebKit browsers (like Fennec) but I doubt Apple will enforce that.

What it does not address is whether or not Flash will be allowed inside web pages. I think we all know the answer to that is still no. But at least stand-alone games and apps written in Flash, Unity, or other systems will be welcome again.

Next: Policy changes on data collection >

Section 3.3.9 old version (first half):

3.3.9 The following requirements apply to You and Your Application's use, collection, processing, maintenance, uploading, syncing, storage, transmission, sharing and disclosure of User Data:

- All use of User Data collected or obtained through an Application must be limited to the same purpose as necessary to provide services or functionality for such Application. For example, the use of User Data collected on and used in a social networking Application could be used for the same purpose on the website version of that Application; however, the use of location-based User Data for enabling targeted advertising in an Application is prohibited unless targeted advertising is the purpose of such Application (e.g., a geo-location coupon application).

- You may only provide or disclose User Data to third parties as necessary for providing services or functionality for the Application that collected the User Data, and then only if You receive express user consent. For example, if Your Application would like to post a message from a user to a third party social networking site, then You may only share the message if the user has explicitly indicated an intention to share it by clicking or selecting a button or checking a box that clearly explains how the message will be shared.

- Notwithstanding anything else in this Agreement, Device Data may not be provided or disclosed to a third party without Apple's prior written consent. Accordingly, the use of third party software in Your Application to collect and send Device Data to a third party for processing or analysis is expressly prohibited.

Section 3.3.9 new version:

3.3.9 You and Your Applications may not collect user or device data without prior user consent, and then only to provide a service or function that is directly relevant to the use of the Application, or to serve advertising. You may not use analytics software in Your Application to collect and send device data to a third party.

Apple is apparently still miffed about Flurry discovering unannounced models in use on the Apple campus. So Flurry Analytics is still out. However, it's ok to collect info in order to better target advertisements, so Flurry AppCircle still has a chance, as do competing ad platforms such as Google AdMob.

Next: Privacy clarifications >

Section 3.3.9 old version (second half):

- You must provide information to users regarding Your use and/or Transmission of User Data and explain how Your Application will use User Data, e.g., by providing information in the App Store marketing text that accompanies Your Application on the App Store, by adding an About box within Your Application, or by adding a link to Your privacy policy on Your website.

- You and the Application must take appropriate steps to protect any User Data from unauthorized disclosure or access. If a user ceases to consent to Your use and/or Transmission of User Data, You must promptly cease all such use and/or Transmission and destroy any such information from Your records (except to the limited extent necessary for Your Application back-ups and record-keeping or as otherwise prohibited by law).

Section 3.3.10 new version (new section):

3.3.10 You must provide clear and complete information to users regarding Your collection, use and disclosure of user or device data. Furthermore, You must take appropriate steps to protect such data from unauthorized use, disclosure or access by third parties. If a user ceases to consent or affirmatively revokes consent for Your collection, use or disclosure of his or her user or device data, You must promptly cease all such use.

This removes some of the technical restrictions saying how developers are supposed to implement their privacy policy, but doesn't remove the need for such a policies.

The sections after 3.3.10 were renumbered but were otherwise not changed.

Topics: Open Source, Apple, Hardware, iPhone, Mobility, Smartphones, Software Development

Ed Burnette

About Ed Burnette

Ed Burnette is a software industry veteran with more than 25 years of experience as a programmer, author, and speaker. He has written numerous technical articles and books, most recently "Hello, Android: Introducing Google's Mobile Development Platform" from the Pragmatic Programmers.

Kick off your day with ZDNet's daily email newsletter. It's the freshest tech news and opinion, served hot. Get it.


Log in or register to join the discussion
  • Flash is ok for bringing existing code over but if they want great new apps

    to be built quickly and productively they should go ask MS to port the SL runtime over. That app paltform is a decade ahead of both flash and java already and widening the gap over both with each new release. They already have a great osx implementation, porting to ios is probably really simple. Centainly easier than the meego and symbian ports already being done.
    Johnny Vegas
    • Apple lost too much

      Trying to turn the tide at this point may be a little too late. The fact that Apple had to eat its words and take a step back shows who really is scared.

      If you believe your way is right, you don't back out of your plan. When you see you are loosing control you do so, but by then, in most cases its too late.

      Too me, Apple did this too late and will not be able to stop the Android momentum.
      • RE: Apple lets in Java and Flash; should Android be worried?


        Flash is horrible at consuming resources unjustly, but you are right..... it is a defacto standard and Apple had to include it sooner or later.
      • RE: Apple lets in Java and Flash; should Android be worried?

        @Uralbas so true. Apple's going out of trend more subtly than people know.
      • More tired predictions of Apple's doom

        You numb skulls have been basically saying the same dribble for nearly 20 years. Good thing you aren't business people nor investors! LOL!
      • RE: Apple lets in Java and Flash; should Android be worried?

        @Uralbas : I don't see Apple backing out. Also I don't think this announcement was targeted at Flash nor Java. Adobe was stopped at a crucial moment and know it would cost them money to get back in the play. Java is a no player and SL would mean "downloading" code (specifically restricted in the license).

        I think this move was targeted at the hundreds of game developers accustomed on using built in engines. Apple would loose plenty if they angered that crowd.

        Last but not least: I don't really agree with @Johnny Vegas' comment regarding SL, but every developer has it's taste and a company should not limit the choices for its dev crowd. With that said, Android is Java-ish and still more limited than iOS.
    • RE: Apple lets in Java and Flash; should Android be worried?

      @Johnny Vegas
    • RE: Apple lets in Java and Flash; should Android be worried?

      @Johnny Vegas
      This is so very true; after completing our first app for WP7, I am amazed how far ahead C#, SL, and the Visual Studio environments are ahead of Java and Objective-C. It almost spoils you to the point you dont want to go back to those other environments!
      • RE: Apple lets in Java and Flash; should Android be worried?

        @C#2010 I tried coding for UNIX-systems; it is unfair. Someone needs to come out with not-only a good enough framework and integrate it seamlessly to a magic IDE, but they need the method of executing and installing IDEs to be changed up a bit.
      • RE: Apple lets in Java and Flash; should Android be worried?

        What exaclty is it that makes the enviroment that good.
        Just curious. I like Visual Studio but i also like Eclipse just as much.
      • RE: Apple lets in Java and Flash; should Android be worried?

        @C#2010 I don't really think C# is ahead of Java.... They're probably about evenly matched in terms of capabilities, acceptance, and usage. C#'s syntax is almost the same, and I don't really think syntactically any better or worse.

        Obj-C on the other hand is a really ugly language and it would have been better off dying... I don't really think it's as sophisticated as C# or Java, and definitely not as pleasant to write in as C++. Language choice is generally a matter of opinion, of course, and that's my opinion... and ultimately it's the developer that writes the code and makes the project... pretty syntax is no substitute for crappy coding.
    • RE: Apple lets in Java and Flash; should Android be worried?

      @Johnny Vegas

      If one wanted to get into programming with C# and SL how much of a learning curve would there be?
      Loverock Davidson
      • RE: Apple lets in Java and Flash; should Android be worried?

        @Loverock Davidson I do not think that much, after all you can download for free microsoft studio express which included C#, Visual Basic, SQL, and 1 or two other express programs. These are almost the same as the full version but you cannot sell the program you write, it is for learning and internal programs only.
  • RE: Apple lets in Java and Flash; should Android be worried?

    While this is a good thing, notice that Apple just reworded the terms of app approval and resons for rejection.

    Same ol, same ol - but we did get some better tools to use.
  • RE: Apple lets in Java and Flash; should Android be worried?

    Interesting use of a purposely vague/misleading title to hide a fairly boring post. No one really cares if Apple allows people to use Flash to create apps, only if Apple allows the Flash player to run on the iPhone.
    • RE: Apple lets in Java and Flash; should Android be worried?

      @mikeydangerous You could probably make an FLV player though that would be fully compatible with the Adobe flash-video content server and thus allow people to stream videos.
    • RE: Apple lets in Java and Flash; should Android be worried?

      @mikeydangerous Well, the folks who want to support multiple platforms care a lot. Take Armor Games, for example. They have about a billion Flash games that run on the PC. They're already porting some of them to a Flash runtime on Android. It was one of the things that attracted them to Android. Now they can do the same on iPhone.

      We could argue about whether or not any of these ports will be any good compared to native platform-specific apps, but that's another question. I've seen some pretty good Flash games so if they get the controls right, I'm hopeful.
      Ed Burnette
    • Game Point

      @mikeydangerous Exactly. I read the first page and skipped right to the comments (which are often the best part about ZDNet).
      In truth I think the entire internets are abuzz with this for nothing. In the end it still doesn't change the end user experience for iPhone users. It's getting headlines that will mostly just confuse consumers into thinking they can play games on Kongregate when they still can't.
  • Ha ha ha, Apple continues to reveal its true agenda

    So as long as you consider that Apple is a for-profit company then they made a strategic move. Of course they are worried about the success of Android and no, this will have no measurable impact on the success of Android.<br><br>Apple needs to worry about an honest to goodness quality competitor to the iPad using Android.
    • RE: Apple lets in Java and Flash; should Android be worried?

      Samsung Galaxy Tab