iPhone SDK: Une Nouvelle Ere DĂ©marre

Il y a de moments clĂ©s dans l’histoire de la technologie. Hier soir, vers 18h (heure suisse), il s’est produit l’un de ces moments. Apple a dĂ©voilĂ© un SDK (Software Development Kit) pour l’iPhone, et le monde du dĂ©veloppement logiciel mobile ne sera plus jamais le mĂ­ÂŞme. Voici pourquoi.

Après de multiples rumeurs, Apple a finalement devoilĂ© hier soir un SDK (Software Development Kit) pour son tĂ©lĂ©phone fĂ©tiche, l’iPhone. Cette nouvelle, bien que apparemment sans intĂ©rĂŞt pour l’utilisateur moyen, aura des effets sans prĂ©cĂ©dents, autant pour chacun de nous, communs mortels utilisateurs de tĂ©lĂ©phonie mobile, comme pour l’industrie toute entière.

En effet, bien que ce n’est pas la première fois qu’un fabriquant de tĂ©lĂ©phones mobiles offre un tel produit, l’engouement autour de l’iPhone tout comme ses charactĂ©ristiques techniques font que la nouvelle prenne une toute autre ampleur.

Pour ceux qui ne le sauraient pas, un SDK est un ensemble d’outils, qui permet aux dĂ©veloppeurs de logiciels de pouvoir crĂ©er des applications autour d’une plate-forme. Par exemple, J2EE ou Ruby on Rails peuvent ĂŞtre considĂ©rĂ©s comme des SDKs, spĂ©cifiquement conçus pour crĂ©er des sites web, qui stockent leurs informations dans un système de base de donnĂ©es structurĂ©. De la mĂŞme façon, chaque système d’exploitation comme Windows, Mac OS X, Linux, mais aussi Solaris, QNX, BSD et n’importe quel autre, est gĂ©nĂ©ralement fourni avec un SDK (usuellement gratuit) pour que les dĂ©veloppeurs puissent augmenter les capacitĂ©s de la plate-forme, en l’Ă©tendant dans des façons nouvelles et inconnues par son fabriquant.

Dans les cas des tĂ©lĂ©phones portables, aucun des SDK existants (la plupart basĂ©s sur le langage Java) n’ont eu un succès fulgurant, bien que le hardware utilisĂ© pour le monde mobile devient chaque jour plus puissant, et bien que l’expĂ©rience utilisateur de la plupart de tĂ©lĂ©phones laisse vraiment Ă  dĂ©sirer. Quiconque aura attendu 2 minutes pour que son jeu puisse ĂŞtre utilisĂ© sur son portable (le temps pour que le logo “Java” disparaisse), ou quiconque aura vu son SMS disparaĂ®tre lorsque le tĂ©lĂ©phone redĂ©marre inopinĂ©ment, saura de quoi je parle.

Voici donc Apple; une sociĂ©tĂ© dont l’iPhone est la deuxième intervention sĂ©rieuse dans le monde de l’informatique mobile, le premier essai, le Newton, s’Ă©tant soldĂ© sur un Ă©chec commercial (mais un succès conceptuel, comme Palm l’a prouvĂ© quelques annĂ©es plus tard). Cette fois-ci, la sociĂ©tĂ© fondĂ©e par Steve Jobs en 1976 compte bien changer les règles du jeu, et le SDK annoncĂ© hier soir est une partie fondamentale de cette stratĂ©gie.

D’un point de vue technique, on peut dire sans se tromper que l’iPhone et un Mac de poche. Le système d’exploitation de l’iPhone (ou “iPhone OS”) est une version miniature du Mac OS X, le software qui gère le fonctionnement de n’importe quel Mac sur le marchĂ©. Mac OS X compte une panoplie complète de librairies et de fonctionnalitĂ©s prĂŞtes Ă  l’emploi, la plupart d’entre elles dĂ©veloppĂ©es et testĂ©es continuellement depuis la fin des annĂ©es 80 (Ă  l’Ă©poque de l’ordinateur NeXT). Tout cela est maintenant Ă  disposition des dĂ©veloppeurs dans l’iPhone OS.

Mais ce n’est pas seulement un compilateur qu’Apple fournit avec son SDK; c’est aussi une suite d’utilitaires qui permet de crĂ©er le code et de le corriger (Xcode), de crĂ©er graphiquement des interfaces utilisateurs avec le moindre effort (Interface Builder), de voir son exĂ©cution et de paramĂ©triser ses performances (Instruments) et de livrer les applications aux utilisateurs (App Store).

Finalement, Apple s’est inspirĂ© de Cocoa, la librairie et runtime graphique utilisĂ© dans le Mac, en ajoutant les contrĂ´les nĂ©cessaires pour crĂ©er des applications iPhone, qui gèrent correctement les actions de l’utilisateur, lorsqu’il promène ses doigts sur le “touch screen” de l’appareil. Cette nouvelle version de Cocoa, “Cocoa Touch” utilise tout le pouvoir d’Objective-C, le langage de programmation orientĂ© objet, vraie “lingua franca” du dĂ©veloppement sur Mac.

Objective-C est un langage unique en son genre: c’est probablement le seul langage de programmation dynamique et compilĂ© Ă  la fois; il offre toute la puissance et vitesse du langage C, avec la beautĂ© et la grâce de la programmation objet, tout en fournissant un environnement qui se prĂŞte au “dĂ©veloppement rapide” d’applications comme aux plus hautes performances.

Bref, l’iPhone OS ouvre la porte Ă  une nouvelle gĂ©nĂ©ration d’applications mobiles: vitesse native, support pour “multithreading”, rapiditĂ© de crĂ©ation, facilitĂ© de maintenance et de dĂ©ploiement, et accès natif aux multiples capacitĂ©s de l’iPhone (camĂ©ra, carnet d’adresses, navigateur web intĂ©grĂ©, système de gĂ©olocalisation, et j’en passe). Je vous invite Ă  voir la vidĂ©o de la prĂ©sentation d’hier pour voir les capacitĂ©s de l’outil; avancez jusqu’a la minute 40, et regardez ce qu’on peut faire avec.

L’iPhone SDK est disponible gratuitement (il fait 2 GB!) chez http://developer.apple.com (il est juste nĂ©cĂ©ssaire de crĂ©er un compte ADC - Apple Developer Connection -, ce qui est gratuit et ne prend que quelques secondes). Dans la version disponible actuellement, seul l’Interface Builder fait dĂ©faut, mais les autres outils sont prĂ©sents et prĂŞts Ă  l’emploi. La version dĂ©finitive sera offerte dès le mois de juin prochain.

Entre temps, pour les développeurs qui voudraient apprendre Cocoa, je vous recommande trois livres:

Et quatre websites:

Je reste aussi à votre disposition pour toute question à propos de Cocoa, Objective-C et des technologies Mac, ayant utilisé Cocoa (avec un énorme plaisir!) depuis 2002.

Happy coding!