vu_d_iciIls ont adapté les techniques d’OVH aux conditions nord-américaines

focusOVH lance sa gamme CDN, avec une solution dédiée

eventLes Français surferont en VDSL avant la fin de l’année

eventCloud Computing World Expo : OVH dans le vif du sujet

eventLe Marketplace renforce l’écosystème Cloud d’OVH.com

focusBHS passe la seconde

eventOVH choisit l'Écosse pour mettre en œuvre sa toute dernière innovation

eventPrivate Cloud certifié ISO27001

focus100 000 lignes activées, le pari réussi de la VoIP

focusVPS 2013 à la conquête des métiers du Web

focusRéseau OVH : l’essentiel en 1’50

expertiseOVH en direct du CeBIT

vu_d_iciDes postes de plus en plus spécialisés pour accompagner la croissance

expertiseLe point de vue d’OVH, fournisseur d’infrastructures d’hébergement, entendu par la mission Lescure

eventOVH.com grande gagnante du VMware Partner Exchange 2013 à Las Vegas

focusNouvelle API, chacun son « OVH’world »

focusLes serveurs OVH : de la production à la livraison aux clients

articleOVH en Amérique du Nord : un réseau XXL pour BHS

eventOVH au salon IT Partners : deuxième !

eventCybersécurité : à vous de placer le curseur

expertiseUne PME sur trois utilisera le Cloud en 2014

focus« La qualité du service est incomparable »

focushubiC : une première année épique

vu_d_iciZoom sur le dégroupage

focusLe cœur du réseau d’OVH dopé au PIC 500

focusOVH étend son implantation strasbourgeoise

focusLes enjeux de Private Cloud 2013

eventLes vœux d’Octave Klaba, fondateur d’OVH

focusRetour express sur 2012

focusVendée Globe virtuel 2012, première course en double pour Many Players et OVH

focus2012 : une année au support téléphonique d’OVH.com

focusSupport xDSL et téléphonie : qui est au bout du fil ?

focusL’écologie chez OVH.com

eventOVH Academy, « un formidable accélérateur »

eventOVH (bêta) teste un nouveau concept de recrutement : le jobdating

eventOVH Academy, première !

vu_d_iciDans les coulisses du Centre Pompidou virtuel

eventVMworld : le Cloud d’OVH doublement récompensé

eventLancement du centre Pompidou Virtuel

vu_d_ici« L'homme reste la base de notre métier »

focusOVH.com propose DNSSEC sur 90% de son parc de noms de domaine

eventJeux olympiques de Londres 2012, OVH.com derrière Romain Mesnil

focusLes utilisateurs choisissent Strasbourg pour la proximité et la sécurité

eventOVH.com à la conquête des utilisateurs nord-américains

eventOVH.com testera le VDSL2 en octobre

event1, 500, 1 000...

focusCloud Computing : la CNIL pointe un manque de transparence

focus« Dual Stack » : l’IPv6 pour de vrai

vu_d_iciBHS, un « american dream »

focusL’hébergement mutualisé à la loupe : zoom sur les bases de données (6/6)

focusL’hébergement mutualisé à la loupe : zoom sur la sauvegarde des données (5/6)

focusL'hébergement mutualisé à la loupe : zoom sur le stockage des fichiers (4/6)

focusDomaines accentués : prenez les devants !

focusL'hébergement mutualisé à la loupe : zoom sur le nouveau cœur du système (3/6)

focusL'hébergement mutualisé à la loupe : les chiffres (2/6)

focusL’Hébergement mutualisé à la loupe (1/6)

vu_d_iciFin de bêta pour le Manager OVH sur Android

focusAvez-vous réfléchi à votre stratégie de sauvegarde ?

focusLe premier serveur dédié livré en Amérique du Nord

eventLe Cloud Computing, concrètement

expertiseMentions légales erronées, Octave Klaba et la justice

focusLa portabilité des numéros enfin disponible en Belgique

debat« L’exit tax » vers le Canada remet en cause le développement du groupe OVH.com à l’international

vu_d_iciUn programme partenaires musclé

focusBeauharnois, les premiers tests prévus courant mars

vu_d_iciVoyage au bout du haut débit

eventStrasbourg 1 : lancement d’un datacentre en containers

eventLe Cloud français distingué à Las Vegas

vu_d_iciRegards croisés sur le développement mobile

eventOVH au salon IT Partners 2012, une première réussie !

eventOVH Canada, c’est parti !

eventOVH rencontre ses partenaires à Lille

focusLe saviez-vous ?

debatNumérique : enquête sur les propositions du PS et de l’UMP

eventCoup d’envoi pour les nouvelles extensions de premier niveau

expertiseVers une sécurisation du DNS ?

focusBest of : les 10 temps forts d'OVH en 2011

vu_d_iciPrivate Cloud : retour sur un lancement épique (5/5)

vu_d_iciPrivate Cloud : retour sur un lancement épique (4/5)

vu_d_iciPrivate Cloud : retour sur un lancement épique (3/5)

vu_d_iciPrivate Cloud : retour sur un lancement épique (2/5)

vu_d_iciPrivate Cloud : retour sur un lancement épique (1/5)

focusLa longue marche vers le Cloud privé externe

vu_d_iciDomaines : trois lancements en direct

event6 décembre 2011 : journée marathon pour les domaines !

expertiseLe SSL n’a pas dit son dernier mot !

expertiseOuverture des extensions de premier niveau, ce qui va changer

eventOVH lauréate de la distinction « Emblème International Entreprendre et Réussir »

debatLe Patriot Act, dix ans d’incertitude

debat« Brider l’internaute, c’est prendre le problème dans le mauvais sens »

eventOVH distinguée par VMware au salon VMworld de Copenhague

expertiseLe " .fr " s’ouvre à l’Europe

eventIl y a quelque chose d’ESXi au Royaume de Danemark

debatVDSL : une alternative à la fibre

testESXi et ses nouvelles contreparties

expertiseLes dessous du .xxx

eventOVH inaugure un datacentre unique au monde

testOn a testé pour vous : vSphere pour iPad

focusCréer sa première application iPhone

expertiseCe qu'il faut savoir avant de passer à l'IPv6

expertiseLe clustering démocratise le traitement des données
vu_d_iciIls ont adapté les techniques d’OVH aux conditions nord-américaines

eventLe Marketplace renforce l’écosystème Cloud d’OVH.com

focusBHS passe la seconde

eventOVH choisit l'Écosse pour mettre en œuvre sa toute dernière innovation

focusRéseau OVH : l’essentiel en 1’50

expertiseOVH en direct du CeBIT

vu_d_iciDes postes de plus en plus spécialisés pour accompagner la croissance

expertiseLe point de vue d’OVH, fournisseur d’infrastructures d’hébergement, entendu par la mission Lescure

focusNouvelle API, chacun son « OVH’world »

focusLes serveurs OVH : de la production à la livraison aux clients

articleOVH en Amérique du Nord : un réseau XXL pour BHS

eventOVH au salon IT Partners : deuxième !

focusLe cœur du réseau d’OVH dopé au PIC 500

focusOVH étend son implantation strasbourgeoise

eventLes vœux d’Octave Klaba, fondateur d’OVH

focusRetour express sur 2012

focusVendée Globe virtuel 2012, première course en double pour Many Players et OVH

focus2012 : une année au support téléphonique d’OVH.com

focusSupport xDSL et téléphonie : qui est au bout du fil ?

focusL’écologie chez OVH.com

eventOVH (bêta) teste un nouveau concept de recrutement : le jobdating

vu_d_iciDans les coulisses du Centre Pompidou virtuel

eventLancement du centre Pompidou Virtuel

vu_d_ici« L'homme reste la base de notre métier »

eventJeux olympiques de Londres 2012, OVH.com derrière Romain Mesnil

focusLes utilisateurs choisissent Strasbourg pour la proximité et la sécurité

eventOVH.com à la conquête des utilisateurs nord-américains

event1, 500, 1 000...

vu_d_iciBHS, un « american dream »

vu_d_iciFin de bêta pour le Manager OVH sur Android

focusAvez-vous réfléchi à votre stratégie de sauvegarde ?

focusLe premier serveur dédié livré en Amérique du Nord

expertiseMentions légales erronées, Octave Klaba et la justice

debat« L’exit tax » vers le Canada remet en cause le développement du groupe OVH.com à l’international

vu_d_iciUn programme partenaires musclé

focusBeauharnois, les premiers tests prévus courant mars

eventStrasbourg 1 : lancement d’un datacentre en containers

eventOVH au salon IT Partners 2012, une première réussie !

eventOVH Canada, c’est parti !

eventOVH rencontre ses partenaires à Lille

focusLe saviez-vous ?

debatNumérique : enquête sur les propositions du PS et de l’UMP

focusBest of : les 10 temps forts d'OVH en 2011

expertiseLe SSL n’a pas dit son dernier mot !

eventOVH lauréate de la distinction « Emblème International Entreprendre et Réussir »

debatLe Patriot Act, dix ans d’incertitude

eventOVH inaugure un datacentre unique au monde

focusCréer sa première application iPhone

expertiseCe qu'il faut savoir avant de passer à l'IPv6


FocusFocus  |  Le 25 / 03 / 2011

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


Créer un nouveau projet

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.



Article rédigé par Christophe Brunet|