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.
Kick off your day with ZDNet's daily email newsletter. It's the freshest tech news and opinion, served hot. Get it.
Talkback
Flash is ok for bringing existing code over but if they want great new apps
Apple lost too much
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?
More tired predictions of Apple's doom
@Uralbas
RE: Apple lets in Java and Flash; should Android be worried?
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?
RE: Apple lets in Java and Flash; should Android be worried?
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?
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?
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?
If one wanted to get into programming with C# and SL how much of a learning curve would there be?
RE: Apple lets in Java and Flash; should Android be worried?
RE: Apple lets in Java and Flash; should Android be worried?
Same ol, same ol - but we did get some better tools to use.
RE: Apple lets in Java and Flash; should Android be worried?
RE: Apple lets in Java and Flash; should Android be worried?
RE: Apple lets in Java and Flash; should Android be worried?
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.
Game Point
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
RE: Apple lets in Java and Flash; should Android be worried?
Samsung Galaxy Tab