Earlier, we reported that Apple had rejected Opera Mini from the App Store. A New York Times blog entry claimed that Opera’s CEO and co-founder Jon Stephenson von Tetzchner said that Apple wouldn’t let them release Opera Mini for the iPhone because it competed with Mobile Safari. John Gruber, of Daring Fireball, did some researching of his own, and found out via anonymous sources who do not wish to be identified, that the situation is a little bit different.
According to these anonymous sources, Opera indeed has developed an iPhone version of Opera Mini, but they haven’t submitted it to Apple just yet, so it couldn’t have been rejected in the first place. So, concerning this specific point, we have a New York Times blogger paraphrasing from an interview he conducted with Opera’s CEO – and John Gruber’s anonymous sources. I have little reason to doubt any of the two’s good intentions, but only time will tell who’s got it right on this one.
John Gruber dove a little deeper into the possible reasons why Opera Mini would be rejected, and apparently, he didn’t know the difference between Opera Mobile and Opera Mini. Now that he does, he seems to think a possible rejection of Opera Mini might stem from its use of MicroEmulator, a pure Java implementation of J2ME in J2SE, when porting Opera Mini to Android. Android doesn’t have a full J2SE implementation, so Opera had to write their own bridge to run Java ME bytecode on Android.
The iPhone doesn’t have Java in any shape or form, so Gruber argues that “if what they’ve done for the iPhone is along the same lines – that they’ve gotten a Java ME runtime running on the iPhone – it’s clearly outside the bounds of the iPhone SDK Agreement.” Article 3.3.2 reads:
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 and used in an Application except for code that is interpreted and run by Apple’s Published APIs and built-in interpreter(s).
Assuming that Opera Mini was ported to the iPhone in the same way as it was ported to Android, it wouldn’t pass Apple’s iPhone rules. Opera Mini will need to use the native iPhone APIs in order to be accepted into the App Store.
And then Apple could reject it on some other ground.