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:
- “Programming in Objective-C” par Stephen Kochan (ISBN 978-0672325861)
- Learning Cocoa with Objective-C, Second Edition, par James Duncan Davidson (ISBN 978-0596003012)
- Cocoa Programming for Mac OS X, par Aaron Hillegass (ISBN 978-0321213143)
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!