OVH NEWS | ACTUALITÉ, INNOVATION ET TENDANCES IT


Découvrir, comprendre et anticiper












Le 25 / 03 / 2011
Partagez

Dossier rédigé par Christophe Brunet


Créer sa première application iPhone


Créer une première application iPhone

Avec Cyril Gy, développeur chez OVH




Difficulté : 3 étoiles sur 5
Temps de développement : 3 heures
Compétences nécessaires : connaître les bases de la programmation orientée objet,
s'intéresser à l'ergonomie des appareils mobiles
Matériel nécessaire : un Mac, un iPhone de test
Logiciels nécessaires : Xcode et Instruments (fournis par Apple)

Les outils d'Apple laissent libre cours à la créativité des développeurs. Jeux, utilitaires ou encore visionneuses d'images, tout est possible pourvu que vous respectiez les règles de l'App Store (pas de contenu adulte, notamment). Pour vous permettre de réaliser une application en quelques heures et ainsi de vous familiariser avec ces logiciels, nous nous sommes toutefois cantonnés au développement d'une fonction basique : l'affichage de l'heure en plein écran.



ÉTAPES PRÉLIMINAIRES




1. Ouvrez un compte sur le site d'Apple


Connectez-vous à la section développeurs (http://developer.apple.com) et créez votre compte. Pour soumettre des applications sur l'App Store, faites l'acquisition d'une licence (79 euros par an).



2. Obtenez la dernière version de Xcode


Téléchargez gratuitement l'environnement de développement d'Apple depuis votre compte. À noter que vous pouvez tester le logiciel sans compte ni licence, en faisant son acquisition sur le Mac App Store.



LA RECETTE




1. Créez un nouveau projet


Lancez Xcode et choisissez un template parmi ceux proposés. Cette base est toujours un bon point de départ. Pour réaliser une horloge, une seule vue suffira. Cliquez donc sur "View-based Application".



2. Construisez la vue


Il s'agit de la partie la plus ludique. Tout se déroule dans le fichier ".xib", via des glisser-déposer. Insérez vos labels ("heures/minutes" et "secondes"), définissez la taille des polices, sélectionnez la couleur d'arrière-plan…

Construisez la vue


Façonnez l'orientationFaçonnez l'orientation

3. Façonnez l'orientation


Pour déterminer le comportement de votre application lors du basculement en mode paysage, affinez les paramètres d'Autosizing. Cela permet de définir des largeurs flexibles, selon les labels.



4. Déclarez les deux labels


Dans le fichier ".h" (interface) et ".m" (implémentation de la classe Controller), indiquez la présence de vos deux labels, via les annotations @property et @synthesize.

Déclarez les deux labels


Liez le code et l'interface

5. Liez le code et l'interface


Dans le fichier ".h", ajoutez IBOutlet aux annotations @property pour établir un lien entre le code et l'interface graphique. De retour dans le fichier ".xib", sélectionnez les labels déclarés et reliez-les.



6. Affichez l'heure en temps réel


Créez une fonction "updateClock" pour mettre à jour l'affichage en temps réel. Définissez la méthode dans le ".h" et construisez-la dans le ".m". À noter que sur iOS, la bonne gestion de la mémoire est cruciale. Lorsque vous créez un objet, faites-le via les appels successifs des méthodes "alloc" et "init". Ensuite, appelez la méthode "release", afin de libérer de la mémoire pour la suite.

Affichez l'heure en temps réelAfficher l'heure en temps réel


Extrayez l'heure

7. Extrayez l'heure


Déclarez un objet "dateFormatter" pour extraire les heures, les minutes et les secondes. Et n'oubliez pas de mettre un "release" dans le dealloc. Cela permet de détruire les objets "en cascade", afin de libérer de la mémoire facilement.



8. Optimisez le démarrage


"ViewDidLoad" permet d’initialiser des données juste après le chargement de la vue. Initialisez ici votre objet "dateFormater", afin de rendre votre application immédiatement opérationnelle. Retenez aussi que tout ce qui est fait dans le "ViewDidLoad" doit être défait dans le "ViewDidUnload", toujours pour optimiser la gestion de la mémoire.

Optimisez le démarrage


Gérez le fuseau horaire

9. Gérez le fuseau horaire


Votre horloge doit prendre en compte le fuseau horaire réglé dans les préférences de l'utilisateur. Pas question d'afficher l'heure de Greenwich ! Utilisez donc le mécanisme "currentDate".



10. Complétez la fonction


Complétez la fonction d'extraction de l'heure afin de formater l'affichage : "HH:mm" (24 heures) ou "hh:mm" (12 heures, AM/PM) pour les heures et les minutes ; "ss" pour les secondes.



Rafraîchissez l'affichage

11. Rafraîchissez l'affichage


Afin de mettre à jour l'affichage en temps réel, créez un objet NSTimer qui appellera toutes les secondes la fonction "updateClock". N'oubliez pas de la lancer une première fois au démarrage, via "viewWillAppear". Sinon, durant une seconde, l'écran sera noir.



12. Affinez l'orientation


Autorisez le support des changements d'orientation de l'iPhone dans le ".m". Peu importe la façon dont l'utilisateur tiendra son téléphone, votre horloge s'adaptera ainsi automatiquement.

Affinez l'orientation


Cachez la barreCachez la barre

13. Cachez la barre


Dans le fichier ".plist", cachez la barre de statut (celle qui affiche le nom de l'opérateur et le niveau de batterie) lors du lancement de l'application. Et pour qu'elle soit masquée définitivement, ajoutez un bout de code dans le fichier ".m".



14. Testez virtuellement


Lancez le simulateur d'iPhone intégré à Xcode et vérifiez le bon comportement de l'application. Testez les modes d'affichage portrait et paysage grâce aux raccourcis clavier "cmd + flèche droite" et "cmd + flèche gauche"

Testez virtuellementTestez virtuellement


Optimisez et stabilisezOptimisez et stabilisez

15. Optimisez et stabilisez


Téléchargez puis lancez le logiciel Instruments d'Apple. Testez notamment la gestion de la mémoire et du CPU de votre application. S'il y a des erreurs, prenez en compte les remarques du logiciel avant de retourner dans Xcode.



16. Testez réellement


Transférez le projet sur votre iPhone de test et profitez de votre première application "maison".

Testez réellement : Position verticale...... et horizontale


TROIS QUESTIONS POUR ALLER PLUS LOIN




1. Quels éléments faut-il prendre en compte avant de développer sur iOS ?


Cyril. Tout d'abord, il faut déterminer le besoin. Une application iPhone n'est pas un fourre-tout ! Il faut donc mener une réflexion autour de son utilité, sous peine de devoir tout recommencer en cours de route. Ensuite, il faut concevoir une interface adaptée. En situation de mobilité, l'utilisateur doit arriver à son but le plus vite possible. Il faut donc lister un nombre limité d'actions au sein du logiciel.



2. Quelles sont les principales difficultés lors du développement ?


Sur l'iPhone, la gestion de la mémoire est très importante. Apple n'a pas inclus de garbage collector (gestionnaire automatique de la mémoire) pour les applications, afin d'économiser l'énergie et de préserver l'autonomie des appareils. C'est donc aux développeurs de bien gérer cet aspect, sous peine de voir le logiciel refusé. Il faut également suivre toutes les règles édictées par Apple concernant l'interface et le code, pour espérer être accepté sur l'App Store.



3. Est-il facile d'optimiser les applications pour l'iPhone, l'iPad et l'écran Retina ?


L'écran Retina de l'iPhone 4 offre une densité de pixels quatre fois supérieure aux générations précédentes. Pour en tirer profit, il suffit d'insérer des images disposant d'une résolution adaptée, en plus de celles d'origine. Concernant les applications compatibles iPhone et iPad, le développeur doit s'adapter aux deux tailles d'écran. Sur un iPhone, tout doit tenir sur une page, avec une navigation verticale. Alors que sur iPad, en mode paysage, l'écran peut être scindé en deux. Cela nécessite une partie de code supplémentaire.