Dossier sur le SDK de l’iPhone

Christophe Laporte |
Élément clé dans la stratégie d'Apple, le SDK de l'iPhone - son kit de développement - dévoilé en début de mois a fait couler beaucoup d’encre. Afin de vous y retrouver, nous avons fait le point dans ce dossier sur ce qu’est ce SDK, quels en sont les enjeux et les points de divergence entre Apple et les développeurs.


Qu’est-ce qu’un SDK ?
SDK signifie Software Development Kit. En bon français, cela donne kit de développement. L’archive qu’Apple propose gratuitement au téléchargement, fait un peu plus de 2 Go. Elle contient tout ce qu’il faut pour concevoir des applications natives pour iPhone à savoir :
- Xcode, l’environnement de développement bien connu des développeurs Mac
- Interface Builder, l’outil d’Apple pour dessiner des interfaces
- des outils pour analyser et optimiser le fonctionnement de ses applications sur l’iPhone
- de la documentation présentant les interfaces de programmation (API) ainsi que des exemples.
- un simulateur permettant de tester son projet depuis son ordinateur.

iPhoneSDK2


Le kit de développement est gratuit, mais ne fonctionne que sous les Mac Intel. Précisons que certains ont toutefois réussi à l’utiliser sur des Mac PowerPC. Pour le récupérer, il suffit de s’inscrire sur le site d’Apple dans la section développeurs.


Qu’est-ce que l’iPhone Developer Program ?
Si le kit de développement est gratuit, Apple a mis en place deux programmes payants pour assister les personnes désireuses de développer pour l’iPhone. Ils sont pour le moment limités à un nombre restreint de développeurs résidant aux États-Unis. Apple prévoit d’enlever ces restrictions lors de la finalisation du kit de développement qui devrait intervenir au mois de juin, en même temps que la sortie de la nouvelle version du système d’exploitation de l’iPhone.

Apple a mis en place deux programmes :
- Standard : 99 $
- Entreprise : 299 $

Apple%20Developer%20Connection%20-%20iPhone%20Dev%20Center%20-%20iPhone%20Developer%20Program


En plus du SDK, ces deux programmes leur offrent la possibilité de tester leurs projets directement sur un iPhone ou un iPod touch. Apple s’engage également à les assister sur le plan technique. De plus, cette obole leur ouvre les portes de l’App Store, un magasin en ligne spécialisé dans la distribution des applications pour iPhone et iPod touch.

Le programme réservé aux entreprises leur permettra d’avoir un espace privé de distribution des logiciels, uniquement ouvert à leurs clients et/ou employés.

Qu’est-ce que l’App Store ?
L’App Store sera aux logiciels pour iPhone/iPod touch ce que l’iTunes Music Store est à la musique. Il sera possible d’acheter des logiciels aussi bien depuis iTunes que depuis son terminal mobile. A noter que les gratuiciels et les logiciels libres auront également droit de cité sur la plate-forme de distribution d’Apple.

Contrairement aux maisons de disque, les éditeurs auront le choix de fixer librement le prix de leurs logiciels. Outre les 99 $ ouvrant aux développeurs les portes de l’App Store, ils devront reverser 30 % de leurs ventes à Apple.

Apple%20Developer%20Connection%20-%20iPhone%20Dev%20Center%20-%20iPhone%20Developer%20Program



Existe-t-il d’autres manières de développer des applications pour l’iPhone ?
Il existe à l’heure actuelle deux autres moyens pour développer des solutions pour iPhone / iPod touch :
- les applications web. L’avantage de cette solution est qu’elle nécessite moins de connaissances que pour développer une véritable application pour iPhone. Deux inconvénients majeurs toutefois : elles ne sont pas natives (donc plus lentes) et «victimes» de nombreuses restrictions.
- le kit de développement officieux. Pour utiliser les applications écrites avec ce dernier, il est indispensable d’avoir un appareil jailbreaké (déprotégé).

Quels sont les points de divergence entre Apple et les développeurs ?

À force d’éplucher la documentation incluse avec le SDK, certains développeurs ont fait des découvertes déplaisantes.

- Il leur est interdit de faire fonctionner des applications en tâche de fond

Explications : Ce n’est pas une limitation technique. Certaines applications livrées avec l’iPhone fonctionnent parfaitement en tâche de fond comme Mail. Apple le présente d’ailleurs comme une directive et non une limitation d’ordre technique. D’ailleurs, des développeurs sont parvenus à faire en sorte que leur projet continue à être exécuté après avoir lancé une nouvelle application. Alors, pourquoi une telle demande ?

Même si les outils de développement sont identiques, les problématiques concernant le développement d’applications pour un terminal mobile et un ordinateur sont très différentes. Sur un ordinateur, les éditeurs sont bien moins confrontés à des problèmes de puissance, d’espace disque ou de quantité de mémoire vive, que par le passé.

Sur l’iPhone, tout est différent. Ceux qui possèdent un téléphone sous Windows Mobile ont pu constater que leur appareil ramait de temps à autre. Pourquoi ? Trop d’applications étaient ouvertes en même temps, sollicitaient trop le processeur et consommaient beaucoup de mémoire. C’est très probablement pour éviter ce genre de désagréments qu’Apple a imposé ce genre de restrictions.

Une application mal programmée pourrait avoir de nombreuses répercussions : ralentissement, autonomie en baisse, surchauffe de l’appareil…

Cependant il n’est pas dit que la Pomme n'assouplisse pas sa position dans certains cas de figure. Certaines applications, comme la messagerie instantanée, perdent de leur intérêt si elles n’ont pas accès à ce genre de disposition.


- Permettre aux applications tierces de récupérer des données sur le Mac ou le PC lors de la synchronisation entre l’iPhone et iTunes

Explications : À ne pas en douter, cette fonctionnalité serait très pratique pour les développeurs. Toutefois, il faut ne pas perdre de vue que ce SDK est une version 1.0 et qu’il est amené à être amélioré et complété au fil du temps. En attendant, il ne faut pas oublier non plus que l’iPhone est un appareil connecté, capable par conséquent de récupérer des données à tout moment provenant d’Internet.

- Permettre aux éditeurs de distribuer leurs logiciels par d’autres biais que l’App Store

Explications : on doute fortement qu’Apple accède à cette demande. Pour des raisons de sécurité, elle cherche à garder la mainmise sur l’ensemble de la chaîne. Ne perdons pas de vue également que ce business, s'il rencontre le succès escompté et quoiqu'en dise Steve Jobs, générer rapidement de rondelettes sommes pour Apple.

La direction d’Apple avait tenu un discours similaire au sujet de l’iTunes Music Store à ses débuts. Selon les estimations de Billboard, son disquaire lui aurait rapporté entre 190 et 500 millions de dollars en 2007.

- Donner la possibilité aux applications d’accéder à l’ensemble du système de fichiers de l’iPhone

Explications : Les applications ne peuvent écrire des données que dans un espace qui leur est dédié. Cette restriction a été mise en place pour des raisons de sécurité. En théorie, cela empêche un programme malintentionné de supprimer par exemple le contenu de votre carnet d’adresses. Dans le même genre de limitation, l’accès administrateur est bloqué.

- Permettre aux logiciels d’accéder au connecteur Dock

Explications : Apple n’a publié aucune documentation à ce sujet. Pourquoi ? On ne sait pas si elle se réserve dans un premier temps l’exclusivité de développer des accessoires pouvant se piloter via un logiciel sur ses appareils, si elle réserve cela aux membres du programme «Made for iPhone» ou si tout simplement, elle n’a pas eu le temps ou voulu publier des spécifications sur le sujet. Rappelons encore une fois que c’est une version 1.0.

- L’interdiction pour une application de faire appel à des plug-ins, d’appeler d’autres frameworks ou d’autres API ainsi que de lancer d’autres exécutables

Explications : C’est sans doute le point le plus controversé. C’est ce point qui bloque potentiellement l’arrivée sur l’iPhone de technologies comme AIR, Silverlight ou encore Java. Cela montre bien la volonté d’Apple de tout maîtriser. C’est une manière de contraindre les développeurs à adopter ses technologies, et non d’utiliser les outils d’un concurrent pour concevoir des applications sur l’iPhone. En faisant cela, Apple fait la promotion ‘de manière autoritaire’ de ses outils de développement et s’assure que les applications écrites pour iPhone seront à la hauteur des exigences des utilisateurs.

En attendant, il y aura probablement des discussions à haut niveau pour trouver un accord entre Apple d’une part, Sun, Microsoft et Adobe de l’autre. Peut-être qu’Apple cherche à monnayer l’accès à sa plate-forme, à moins qu’elle souhaite initialement imposer et diffuser ses outils de développement avant de progressivement desserrer l’étau.

Après tout, cette stratégie jusque-là lui a plutôt réussi. Ainsi, YouTube s’est mis au MPEG-4 pour diffuser de la vidéo sur l’iPhone, chose encore impensable quelques mois auparavant.

- L’impossibilité de faire de la voix sur IP sur le réseau des opérateurs

Explications : sur ce point, il n’y pas grand chose à espérer sauf revirement de position des opérateurs de téléphonie mobile. Ce sont eux qui refusent pour le moment de mettre à disposition leurs réseaux pour ce genre d’usage.

Peut-on dire que le SDK d’Apple est d’ores et déjà un succès ?

Oui, sans aucun doute. Le kit de développement a été en l’espace de quatre jours téléchargé plus de 100 000 fois. Et il semble que cela soit plus que de la curiosité. De nombreuses sociétés d’univers très différent ont fait part de leur intention de commercialiser des applications pour iPhone.

On trouve aussi bien des éditeurs fidèles à Apple (The Omni Group, Rogue Amoeba, Ecamm Network), des éditeurs de jeux (Capcom, Sega, Electronic Arts), des sociétés spécialisées dans les logiciels pour terminaux mobiles (Datavitz, Iambic, Ilium Software) que des éditeurs concevant des solutions uniquement pour les professionnels (SAP, NetSuite, SalesForce). L’App Store devrait être assez garni à son ouverture en juin prochain.

Est-ce que l’arrivée du SDK signifie la fin du jailbreaking ?

Probablement pas. Les personnes qui ont mis au point le kit de développement officieux souhaitent continuer et ne s’arrêteront sans doute pas de si tôt. La vraie question est de savoir si dès lors que l’iPhone aura une bibliothèque de logiciels officiels, les utilisateurs continueront oui ou non à jailbreaker leur téléphone.
avatar So6 | 

Très bien, au moins j'ai tout compris.

Mais dans la dernière phrase de l'article (page 2) il me semble qu'il faut remplacer "officieux" par "officiels" :) Ou alors je n'ai rien compris ;-)

avatar Christophe Laporte | 

je te rassure t'as tout compris, je corrige :)

avatar Eikanil | 

@So6
Ben oui tu n'a rien compris, c'est officieux c'est-à-dire non officiel (non autorisé et non validé par Apple).

avatar james85 | 

1) Si j'ai bien compris, quelqu'un qui fait une application qui utilise l'accéléromètre est obligé de s'inscrire dans l'iPhone Developer Program, parce que même s'il y a une émulation de l'iPhone dans le SDK, il ne sert à rien de secouer son écran.
Donc pour l'instant, c'est bloqué pour ceusses qui veulent utiliser cette possibilité

2) une entreprise qui voudra distribuer une application propriétaire maison devra passer par un espace réservé sur iTunes, en priant que cet espace réservé ne soit pas "délocké" par les concurrents ou par de petits malins. Il faudra également voir comment seront gérés les accès pour éviter qu'un ex-employé, parti à la concurrence, puisse accéder à cet espace privé sur le réseau public.

[quote]Une application mal programmée pourrait avoir de nombreuses répercussions : ralentissement, autonomie en baisse, surchauffe de l’appareil…[/quote]
Toutes les applications passeront par le filtre Apple qui devrait détecter les mal programmées.
D'autre part, une application mal programmée en tâche unique en avant plan consommera autant que si elle est en tâche de fond. Le type qui laisse cette application ouverte et qui met le téléphone dans sa poche aura le même genre de surprise.
Apple aurait peut-être pu trouver des solutions qui "freeze" une application quand elle passe en arrière plan.
Enfin, entre une seule application active et des dizaines d'applications, il est peut-être possible de trouver un juste milieu et de regarder avant le lancement si l'application est acceptable ou pas.

[quote]C’est une manière de contraindre les développeurs à adopter ses technologies, et non d’utiliser les outils d’un concurrent pour concevoir des applications sur l’iPhone.[/quote]
C'est quoi les technologies d'Apple concurrentes de Flash, AIR, Silverlight, Acrobat ? Est-ce qu'il faut tout faire en H.264 ?

avatar So6 | 

@Eikanil : toi je suis pas sûr que tu aies tout compris. Mais c'est pas grave on se comprend.

avatar oomu | 

> C'est quoi les technologies d'Apple concurrentes de Flash, AIR, Silverlight, Acrobat ? Est-ce qu'il faut tout faire en H.264 ?

cocoa (et tout ce que contient cocoa).

avatar Nicky Larson | 

[quote]- Permettre aux applications tierces de récupérer des données sur le Mac ou le PC lors de la synchronisation entre l’iPhone et iTunes[/quote]

Génial, donc impossible de faire un lecteur audio/video alternatif...

avatar Nicky Larson | 

[quote]En faisant cela, Apple fait la promotion ‘de manière autoritaire’ de ses outils de développement et s’assure que les applications écrites pour iPhone seront à la hauteur des exigences des utilisateurs.[/quote]

Ha bon ? Comme si c'était impossible d'écrire des logiciels pourris en cocoa ...

avatar Christophe Laporte | 

Il fallait comprendre : avoir les meilleurs outils possibles pour concevoir des applications dignes de ce nom. Après tu as tout à fait raison, on peut très bien faire de mauvais logiciels en cocoa

avatar nlex | 

"Quels sont les points de divergence entre Apple et les développeurs ?"

encore un titre que je trouve faux : il tend à faire croire que la majorité des dev divergent d'apple alors que c'est une minorité !

Dommage que les titres chez MacG ne soient pas au niveau des textes, ça casse l'image de qualité du site je trouve…

avatar pooky31 | 

Et les applis permettant d'utiliser un gps en bluetooth (tomtom,...), seront elles interdites ? Je lis des choses différentes à ce sujet.

avatar languedoc | 

En bon français : kit

Oui, je veux bien, mais le Robert donne quand même : (1967 : mot anglais) puis : anglicisme.

Coupeur de cheveux en quatre :-))

avatar Christophe Laporte | 

-> pooky31
a priori avec un gps bluetooth, pas de problème.

avatar Eurylaime | 

Toujours aussi fort dans le monde "Mac", Apple dirait qu'il faut se couper une main pour utiliser programmer correctement un iPhone, il y aura toujours quelqu'un pour écrire que c'est une proposition formidable et tout à fait acceptable oO

avatar Thierry61 | 

que voilà une réflexion immature...

avatar polo50 | 

Personne n'ira jusqu'à se couper la main ! et Apple n'est pas le bon Dieu ! mais il faut aussi garder les pieds sur terre le monde du commerce s'est imposé des règles auquel aucunes entreprises ne peut déroger !! et même le monde soit disant libre n'est pas si libre que cela ! le monde ne va pas se refaire comme cela !!!

avatar james85 | 

J'ai acheté un iPhone. Je suis développeur. J'ai écrit une application pour moi tout seul, qui correspond à un besoin absolument personnel, et que je n'ai pas envie de diffuser à d'autres personnes.

1) je dois payer 99$ à Apple.
2) je dois attendre qu'Apple réouvre les inscriptions au Developper Program.
3) je dois soumettre mon application à l'approbation d'Apple.
4) je dois poser mon application sur iTunes, la télécharger et vite l'effacer avant que d'autres personnes ne la récupèrent (ou alors payer $299 pour avoir un accès privatif à iTunes ?)

J'ai beau tourner dans ma tête toutes les bonnes raisons évoquées par les uns et par les autres, il y quand même quelque chose qui n'est pas satisfaisant dans ce modèle par lequel Apple m'interdit de faire ce que je veux avec un matériel qui m'appartient.

avatar lau1967 | 

Bonjour à tous,
@james85
Plein de solutions s'offrent à vous, heureux mortel:
1°) changer de métier
2°) changer de téléphone
3°) changer de site (ah mince déjà fait avec MacBidouille)
4°) changer de pseudo ?
5°) Eh... changer de sexe ?
Bon allez c'est pas tout ça, faut que je mate l'épisode final de DoctorWho, saison 3 ;)
Laurent

CONNEXION UTILISATEUR