iPhone SDK
Le kit de développement iPhone SDK a été officiellement annoncé le 6 mars 2008 par Apple, lors d'une présentation communément appelée « Apple 6 March Event ». Il est compatible uniquement avec Mac OS X. La première version Beta du SDK a été disponible immédiatement avec la version 1.2b1 iOS, aussi appelée iOS 2.0 (build 5A147p), sans que les applications développées sur la plate-forme soient alors distribuables. Il faudra pour cela attendre qu'une mise à jour du firmware soit disponible le 11 juillet 2008, gratuitement pour les utilisateurs de l'iPhone, et au prix de 9,99 $ (7,99 € en Europe) pour les possesseurs d'iPod Touch. Cependant, pendant ces quatre mois, les développeurs purent préparer et tester leurs applications natives.
Contenu du SDK
En plus d'offrir aux développeurs exactement les mêmes API que celles d'Apple, le SDK contient de nombreux outils facilitant le développement et le test d'applications pour iOS.
API
Voici une liste non exhaustive des API principales contenues dans le SDK, classées par couche d'abstraction :
- Core OS, couche la plus « profonde », contient les bases du système d'exploitation :
- Le Kernel d'OS X,
- « Power Management », gestion de la charge du processeur en fonction de la batterie,
- « Lib System », le système de librairies,
- « KeyChain », les chaînes de clés,
- Le protocole TCP/IP du noyau BSD,
- La prise en charge des certificats,
- La prise en charge des Sockets Réseau,
- Le système de sécurité,
- Bonjour
- Core Services propose des API de plus haut niveau, permettant une gestion plus poussée du système :
- La gestion des collections,
- Core Location, qui permet la géolocalisation de l'appareil,
- La gestion d'un carnet d'adresse,
- « Net Services », des services réseau,
- La gestion du réseau en lui-même,
- Le « threading », gestion des processus légers,
- L'accès à des fichiers,
- La gestion de préférences,
- SQLite, bibliothèque permettant la gestion de bases de données,
- Des utilitaires pour la gestion d'URL
- La couche Media gère quant à elle les données multimédia. Son contenu est accéléré matériellement pour de meilleures performances et une meilleure durée de batterie :
- Core Audio,
- Prise en charge des formats d'image JPEG, PNG, TIFF,
- OpenAL,
- Prise en charge du format PDF,
- La gestion de l'« audio mixing »,
- Le moteur graphique Quartz,
- La gestion de l'enregistrement audio,
- Core Animation,
- La gestion du « Video Playback »,
- La prise en charge d'OpenGL ES
- Cocoa Touch est une réécriture de l'interface graphique Cocoa de Mac OS X, adaptée cette fois à l'interface Multitouch d'iOS :
- La gestion des événements Multitouch,
- La gestion des alertes,
- Les contrôles Multitouch,
- Une vue Web utilisant le moteur de rendu Webkit de Safari,
- La gestion de l'accéléromètre,
- La sélection d'un contact,
- La gestion de contenu avec une hiérarchie,
- La sélection d'une image,
- La localisation,
- L'utilisation de l'appareil photo pour l'iPhone, l'iPhone 3G et l'iPhone 3GS.
Outils de développement
La plupart des outils de développement du SDK étaient déjà présents dans Mac OS avant son arrivée. Cependant, ils gèrent désormais l'utilisation de l'iPhone, en tant que plate-forme de développement :
- Xcode est l'Environnement de Développement Intégré par défaut sur Mac OS X. Il permet l'écriture, la gestion et la compilation de projets de développement, écrits notamment en Objective-C. L'iPhone SDK y ajoute les librairies de développement pour iOS. Il est donc possible pour le développeur de créer des projets d'applications pour ce système. Pour tester l'application, deux possibilités existent : le développeur peut brancher un iPhone ou iPod Touch à son ordinateur Mac, puis y lancer l'application comme test, ou lancer l'application en test dans iPhone Simulator (voir plus loin).
- Interface Builder permet de construire une interface pour Cocoa Touch manuellement, à l'aide de glisser-déposer. Il permet également de traduire facilement une application dans plusieurs langues. De plus, il permet de gérer visuellement le schéma Modèle-Vue-Contrôleur, en connectant des éléments d'une interface à un code écrit pour eux au préalable, à l'aide d'un glisser-déposer. Finalement, le fichier d'interface ainsi créé est ajouté au projet Xcode.
- Instruments est un outil de monitoring informatique. Il permet, une fois l'application lancée sur un iPhone ou iPod Touch branché à l'ordinateur, d'observer en temps réel ses performances au niveau du processeur, mais également, par exemple, du moteur graphique ou de l'accéléromètre. Par ailleurs, il est également possible de surveiller les performances système dans iPhone Simulator (voir ci-après).
- iPhone Simulator (anciennement Aspen Simulator) est le seul de ces outils à avoir été développé spécifiquement pour l'iPhone SDK. Il simule de manière logicielle un iPhone virtuel, qui peut exécuter des applications directement sur l'ordinateur. Les mouvements Multitouch sont alors reproduits manuellement à la souris par l'utilisateur, et il est possible de faire pivoter le simulateur grâce à des raccourcis clavier. Par ailleurs, l'utilisateur est en mesure de choisir quelle version du firmware il désire utiliser.
Chronologie du SDK