iPhone OS 4: Apple interdit les solutions de développement multi-plateformes

Pour Adobe, Apple ferme ses portes aux langages et environnements de développement tiers.

Les logiciels souhaitant apparaitre sur l’App Store d’Apple devront maintenant répondre à de nouvelles contraintes. Cette annonce inquiète Adobe qui estime que la firme de Cupertino ferme aujourd’hui la porte aux langages de programmation et environnements de développement tiers.

Voici le texte, en anglais, qui pose problème : « 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). »

Qu’apprend-on ici? Tout d’abord que les environnements d’exécution et les interpréteurs sont interdits. Rien de neuf, puisqu’ils n’étaient pas autorisés précédemment. Deux raisons peuvent expliquer ce choix: ce type de produits permettrait l’accès à des applications ne provenant pas de l’App Store. Ce serait une brèche dans le modèle économique d’Apple. De plus, les environnements d’exécution et les interpréteurs sont gourmands en ressources processeur. Cette décision est donc raisonnable de la part de la compagnie.

Les logiciels ne devront également pas utiliser de couches intermédiaires. Voilà qui est plus ennuyeux. Un éditeur qui souhaiterait utiliser une librairie compatible avec de multiples plates-formes afin de faciliter le portage de ses logiciels ne pourra donc plus le faire. Cette méthode est pourtant assez courante, les budgets alloués au développement n’étant pas extensibles à l’infini. Les studios de développement de jeux vont sans aucun doute apprécier cette nouvelle clause.

Enfin, et c’est le point qui inquiète Adobe, le code doit être écrit dès l’origine en C, C++, Objective-C ou JavaScript. Prise au pied de la lettre, cette condition signifie donc qu’il n’est plus possible d’utiliser des outils comme la Creative Suite 5, iSpectrum, MonoTouch, Titanium ou Unity, pour créer des applications iPhone. Ces derniers permettent effectivement de convertir du code ActionScript, Java, .NET ou JavaScript en instructions utilisables par Xcode. L’application est donc bel et bien écrite en C, C++ ou Objective-C, mais le code d’origine ne fait pas partie de ces trois langages.

Notez que concernant Adobe, nous ne parlons pas ici du greffon Flash, qui n’a de toute façon jamais été autorisé sur l’iPhone, mais de la possibilité d’exporter un projet Flash Professional CS5 sous la forme d’une application iPhone native.

Les responsables d’Appcelerator (Titanium), de Novell (MonoTouch) et d’Unity Technologies (Unity) ont d’ores et déjà demandé des éclaircissements à Apple ( la réaction d’Appcelerator, celle de Novell et celle d’Unity Technologies ). Le pire qui pourrait arriver maintenant serait que la firme de Cupertino demeure silencieuse. Une épée de Damoclès serait ainsi au-dessus des utilisateurs de ces outils.

Notez que les nouvelles conditions d’Apple permettent également de s’assurer indirectement – et c’est là une stratégie très astucieuse – que les applications iPhone ne seront pas facilement portables vers d’autres terminaux mobiles.