Guide d`accélération du développement d`apps en interne
Transcription
Guide d`accélération du développement d`apps en interne
Guide d’accélération du développement d’apps en interne Présentation Comment donner vie à vos idées d’apps internes. Votre entreprise est unique, tout comme vos utilisateurs. Il existe d’innombrables possibilités pour répondre à leurs besoins avec des apps mobiles innovantes qui peuvent transformer leur façon de travailler. La plupart des équipes de développement en entreprise sont aussi soumises à des contraintes. Qu’il s’agisse de contraintes touchant au budget, à l’organisation ou aux ressources, vous devez vous attacher à développer des apps satisfaisant à vos exigences spécifiques. iOS est un outil formidable pour y parvenir. Le développement iOS peut être rapide et très enrichissant en vous permettant de créer des apps qui procureront des avantages immédiats à vos utilisateurs. Nul besoin d’un processus onéreux ni de ressources excessives pour faire la différence. Sans doute vous faudra-t-il néanmoins concentrer vos efforts différemment que dans le cadre d’un projet de développement interne classique. Ce guide va vous y aider. Il décrit les bonnes pratiques permettant de développer des apps mobiles fantastiques. Vous y trouverez également des conseils et des ressources qui vous aideront à organiser votre projet pour une efficacité maximale. Comment utiliser ce guide Check-list. La check-list proposée dans chaque chapitre vous permet de passer en revue et de vérifier les étapes les plus importantes du processus de développement. Astuces. Les astuces contiennent des informations essentielles pour le processus sous une forme facile à comprendre. Check-list Déploiement À la fin de la phase de déploiement, vous devriez avoir : créé les certificats d’entreprise et les profils d’approvisionnement mis en place un serveur web de distribution ou une solution pour distribuer les apps sans fil annoncé la solution aux utilisateurs finals Astuce : Apps de taille moyenne • Les apps simples, rapides et bien exécutées génèrent une demande interne, et limitent la portée et l’investissement. • Les apps de taille moyenne peuvent constituer un menu complet. Les utilisateurs créent leurs propres « solutions », ce qui laisse une plus grande marge de manœuvre à vos collaborateurs. Ce guide se compose des quatre sections suivantes : Planification - Définissez votre projet et ses exigences, planifiez votre processus de développement. Conception - Appuyez-vous sur les concepts de création d’une interface iOS pour que vos apps internes rencontrent un vif succès auprès de vos utilisateurs. Exemples. Lisez les exemples d’autres entreprises ayant développé des apps en interne pour iPhone et iPad pour y trouver l’inspiration et des idées. « Nous devions trouver un moyen d’appliquer très rapidement les mises à jour et les modifications. C’est pourquoi nous avons adopté une approche mixte, à base d’éléments d’interface natifs hébergés sur le téléphone. Le reste était toutes les pages web proprement dites. » - Giancarlo De Lio, Mt. Sinai Hospital Développement - Développez vos apps internes et tirez pleinement parti des outils Apple, comme le SDK iOS. Déploiement - Distribuez vos apps internes dans votre entreprise et créez votre propre service de distribution sans fil. Raccourcis. Ces liens vous permettent d’en apprendre plus sur le développement d’apps iOS en interne. Raccourcis FAQ sur l’inscription au programme http://developer.apple.com/support/ios/enrollment.html FAQ sur le programme pour développeurs iOS en entreprise (iOS Developer Enterprise Program) http://developer.apple.com/support/ios/enterprise.html C’est parti. Présentation 2 Planification La création d’une app fantastique requiert un plan fantastique. Il est important que les personnes de votre entreprise qui participent au projet se sentent en phase avec ses objectifs et prennent activement part à la formulation du plan. Plus votre équipe comprendra la répartition des tâches tout au long du processus et les étapes nécessaires à la mise en œuvre du plan, plus elle se montrera efficace et pourra créer quelque chose d’exceptionnel. Dans le cadre de ce plan, votre équipe et vous-même devez vous pencher sur les points suivants : • Identifier les besoins professionnels et les besoins des utilisateurs. Assurez-vous que votre solution répond à de véritables besoins professionnels. Permet-elle de gagner du temps ou de faire des économies, accroît-elle la productivité du personnel ou répond-elle d’une autre manière à une nécessité de faire progresser l’entreprise ? • Évaluer les ressources/l’infrastructure existante. Vous pouvez optimiser les ressources utiles en réaffectant une précédente réalisation, dont vous tirerez parti pour l’environnement mobile. • Explorer la simplicité de mise en œuvre. Commencez par les solutions les plus faciles à mettre en œuvre : tournez-vous vers les projets générant des retombées rapides, pour lesquels vous pourrez faire plus rapidement et plus facilement la preuve des fruits de vos efforts. En gardant ces concepts de planification à l’esprit, vous renforcerez la cohérence de votre projet. Ce chapitre présente les étapes que vous pouvez suivre pour démarrer rapidement un projet en restant organisé. Impliquez les utilisateurs Mettez-vous dans la peau de vos utilisateurs. Passez du temps dans leur espace de travail en assistant à quelques réunions ou en vous rendant sur le terrain. Vous vous forgerez ainsi un aperçu très précieux de leurs habitudes de travail, des goulets d’étranglement affectant le flux de production et des difficultés rencontrées par les collaborateurs ou les clients. Invitez les utilisateurs les plus avisés ou passionnés à rejoindre votre équipe afin de bénéficier de leurs idées tout au long du projet. Identifiez un problème dont la résolution par une app mobile profiterait un maximum à vos utilisateurs et à votre entreprise en un minimum de temps. Ne soyez pas trop gourmand quand vous commencez à développer des apps mobiles. Affinez vos idées à partir de ce que vous pourriez créer pour arriver uniquement à ce que vous devriez créer. Planification • Conception • Développement • Déploiement Check-list Planification Reportez-vous à cette check-list tout au long de la phase de planification de votre projet. À la fin de phase de planification, vous devriez avoir établi le cahier des charges incluant les points suivants : Inventaire de l’ensemble des besoins/exigences professionnels potentiels Inventaire des besoins des utilisateurs (à aligner avec les exigences professionnelles) Exigences relatives à l’infrastructure informatique pour soutenir le projet Énoncé de la définition de l’application décrivant l’app et l’objectif de la solution Chronologie générale et principales étapes du projet Équipe identifiée des intervenants, dont les rôles et les responsabilités sont définis Début du processus d’inscription au programme pour développeurs iOS en entreprise (iOS Developer Enterprise Program) « Nous avons mis en place une communication directe entre les développeurs et la force de vente. Nous nous sommes même rendus aux visites des commerciaux. Nous avons enfilé nos chaussures de sécurité et nos casques, et nous avons assisté aux visites commerciales pour savoir exactement ce dont ils avaient besoin et comment ils allaient utiliser l’app. » - Dean Moore, Sunbelt Rentals 3 Réfléchissez à quelques tâches simples que la majorité de vos utilisateurs font fréquemment et pensez à la façon dont une app mobile pourrait simplifier ces tâches. Voici quelques exemples : • Une app simple qui permet à un employé de valider une note de frais ou un bon de commande pendant un déplacement • Un annuaire d’entreprise ou un plan de campus que tout le monde peut consulter • Un système de réservation de salle de réunion que les employés peuvent facilement utiliser quand ils ne sont pas à leur bureau • Une app simple de suivi des heures travaillées qui serait rattachée à votre système de gestion du temps ou de facturation Dressez l’inventaire de vos actifs Souvent, la meilleure manière de développer efficacement une app interne est de tirer parti de la technologie existante. Vous pouvez faire l’inventaire de vos sites web d’entreprise afin de déterminer s’il serait pertinent de les optimiser pour l’iPhone ou l’iPad. Ou peut-être disposez-vous de systèmes back-end dont les données pourraient facilement être adaptées à l’environnement mobile ? Et n’oubliez pas les apps de l’App Store : il est possible qu’une app répondant à vos besoins y soit déjà disponible. Lisez l’exemple d’inventaire des actifs (à droite) pour découvrir d’autres questions qui pourront vous aider à explorer votre environnement existant. Définissez votre app Une fois que vous avez parfaitement identifié les besoins de vos utilisateurs et les solutions mobiles qui pourraient y répondre, vous devez affiner ces concepts dans un plan de projet concis, que vous pourrez communiquer aux parties prenantes. L’élément le plus important de votre plan de projet est l’énoncé de la définition de l’application - une définition concise de l’objectif de votre app. L’énoncé de la définition de l’application peut vous aider à éviter deux pièges courants : • Vous disposez déjà d’une application de bureau que vous souhaitez transférer vers l’environnement mobile et, avec elle, une longue liste de fonctionnalités. • Vous avez une idée géniale pour une nouvelle app mobile, mais vous vous attelez directement aux fonctionnalités avant de peaufiner l’objectif principal de l’app. Planification • Conception • Développement • Déploiement Exemple : Inventaire des actifs Répondez à ces questions pour savoir si vous pouvez réutiliser la technologie existante dans votre app mobile : • Quels systèmes les éléments les plus mobiles de votre personnel utilisent-ils au quotidien ? • Quelles tâches vos collaborateurs mobiles doivent-ils effectuer le plus souvent ? • Quels processus manuels pourraient être automatisés ou simplifiés grâce à des apps mobiles ? • Avez-vous des systèmes non mobiles qui pourraient être utiles à vos collaborateurs mobiles ? • Quelles fonctions de ces systèmes sont utilisées le plus fréquemment ? • Quel type d’accès aux données les systèmes de votre entreprise autorisentils ? Les données sont-elles facilement accessibles via les services web ? • Disposez-vous de sites web internes auxquels vos collaborateurs accèdent chaque jour ? Pourraient-ils être facilement transformés en apps mobiles ? « Nous avons passé en revue les différentes gammes de produits et nous nous sommes demandés : dans quels domaines la mobilité est-elle vraiment utile ? Quels sont les meilleurs profils ? Quels sont les premiers succès que nous voulons réaliser ? Et nous sommes partis de là. Nous avons examiné notre portefeuille de produits et réfléchi à ce qui était le plus pertinent. » - James Blomberg, General Electric 4 Formuler l’énoncé de la définition d’une application Pour commencer, rédigez l’énoncé de la définition de l’application, qui doit comprendre les éléments suivants : • Objectif de l’app • Personnes auxquelles l’app est destinée et comment elles l’utiliseront • Principale fonctionnalité de l’app Votre énoncé doit définir une solution et seulement sa principale fonctionnalité - et non un ensemble détaillé de fonctionnalités. L’énoncé de l’objectif doit être parfaitement clair afin que vous puissiez filtrer toutes les idées de fonctionnalité. Demandez-vous si chaque fonctionnalité sert l’objectif visé. Choisissez ensuite un nombre limité de fonctionnalités. Il s’agit des fonctionnalités le plus fréquemment utilisées et les mieux adaptées à un environnement mobile. Vous ne devez pas dresser une liste longue et vague de fonctionnalités qui sont difficiles à exécuter ou ne résolvent pas le problème. En ciblant votre app, vous optimiserez la productivité de vos utilisateurs avec une solution simple d’emploi. Planifiez le processus de développement La plupart des projets de développement de logiciels d’entreprise mobilisent d’énormes ressources pendant la phase de développement. Grâce au SDK iOS et aux frameworks Cocoa Touch de haut niveau, vos équipes de développement consacreront moins de temps au codage et plus de temps à concevoir l’expérience utilisateur idéale. Ce processus vous permettra non seulement de développer plus rapidement une app pour vos collaborateurs, mais aussi de créer des solutions qui dépasseront les attentes de vos utilisateurs. Exemple : Énoncé de la définition de l’application Voici ce à quoi pourrait ressembler l’énoncé de la définition d’une application, avec pour exemple une app de suivi des heures travaillées pour avocats : • Objectif : suivre le temps passé et les heures facturables pour chaque dossier • Pour qui : les avocats du cabinet qui ont besoin de suivre les heures facturables • Comment sera-t-elle utilisée : à chaque réunion client, le temps passé facturable sera décompté • Principale fonctionnalité : suivre et consigner le temps passé dans le système CRM • Énoncé consolidé de la définition : app pour avocats permettant de suivre le temps passé et les heures facturables pour chaque client • Fonctionnalités entrant dans le champ de la définition : chronomètre ; suivi/traitement en arrière-plan ; intégration serveur avec le système CRM ; interrogation des dossiers client afin d’associer les heures enregistrées avec le client/dossier correspondant ; synchronisation en ligne/hors ligne selon la connectivité réseau • Exemples de fonctionnalités n’entrant pas dans le champ de la définition : alertes des nouveaux dossiers ; interrogation des documents à des fins juridiques ; carte de localisation des clients ; interface de recherche brevetée Que vous ayez recours à un processus de développement souple ou à une méthode en cascade plus traditionnelle, veillez à prévoir le temps et les ressources à investir dans le processus de conception comme un élément central et continu de votre effort de développement. Établissez un calendrier approximatif du processus prévu et des rôles de chaque partie prenante pour chaque étape du projet. Il ne doit pas forcément être gravé dans le marbre, mais il peut constituer une référence commune à toutes les personnes concernées. Astuce : Crowdsourcing Genentech savait que, dans le domaine des apps, les bonnes idées peuvent venir de n’importe où et de n’importe qui. La société a donc créé un modèle de crowdsourcing qui permet aux salariés de suggérer les apps qu’ils souhaiteraient voir développées en interne. Depuis, la société a créé les cinq apps les plus demandées à la plus grande satisfaction des utilisateurs, ce qui a considérablement dopé le niveau d’adoption. Planification • Conception • Développement • Déploiement 5 Établir le cahier des charges Exemple : Équipe de projet classique Pour vous aider à rester concentré et à communiquer le processus, votre plan doit comprendre un cahier des charges, qui présente l’ensemble des ressources, objectifs, délais et principaux livrables du projet. Ce document constitue un important guide sur le projet pour tous les participants. Le cahier des charges peut inclure les prescriptions techniques préliminaires de votre app, ainsi que des organigrammes ou des diagrammes visuels qui vous permettront d’expliquer le but du concept de l’app durant la phase de développement. Code Requirements Release • Training • Coding of app • Design and graphics • Test cases • Unit testing • Scope project • Obtain approvals • Assemble team Design • Architecture design • Project plan built • Initial wireframes • Developer sizings • Internal release of app • Stakeholder signoff • Maintenance plan Verification • Testing on devices • Automated UI tests • Bug fixes • Design review/tweaks • Stakeholder walkthrough Constituez votre équipe Line-of-Business Owner Primary stakeholder and app user Executive Sponsor Primary stakeholder, responsible for strategic plan Project Leader Tracks schedules, timelines, and overall scope of work Product Manager Delivers the app, manages requirements, and reconciles business needs with solutions User Experience Architect Responsible for framework of user interaction model and user process flow/journey Technical Architect Responsible for infrastructure, security, and data access models Development Manager Technical lead and project manager User Interface Designer Responsible for app visual design, graphics, and identity IT Manager Responsible for deployment and life-cycle management of apps Developer Responsible for overall technical architecture and coding Comme pour tout projet, vous devez constituer une équipe d’intervenants qui ont tous un intérêt dans le succès et le résultat de votre projet. Certains participants peuvent être des clients internes (propriétaire d’une branche d’activité ou groupe d’utilisateurs), tandis que d’autres seront chargés de parties spécifiques du processus de développement proprement dit (concepteurs, développeurs, architectes techniques, etc.). Enfin, vous devez aligner les rôles et responsabilités des membres de l’équipe avec le calendrier et les étapes du projet mentionnés à l’étape précédente. Par exemple, la conception étant l’un des éléments centraux de tout projet de développement iOS, vous devez impérativement disposer d’une équipe de conception (ou des ressources correspondantes). Les participations et les intérêts peuvent varier selon le groupe. Aussi est-il conseillé de documenter ces rôles afin que chacun reste au fait des différentes responsabilités tout au long du processus. Planification • Conception • Développement • Déploiement 6 Externaliser le développement Si vous ne disposez pas de ressources internes suffisantes, vous pouvez externaliser tout ou partie du travail de développement. Les développeurs externes peuvent en outre vous présenter un portfolio de leurs travaux qui pourrait susciter de nouvelles idées. Bien sûr, la clé du succès réside dans une parfaite compréhension de votre projet - tout ce que vous avez défini pendant la phase de planification - de la part de l’équipe externalisée. Celle-ci doit également interagir régulièrement avec vous et votre équipe interne. Parlez de vos besoins et assurezvous qu’elle comprend vos objectifs. Passez en revue l’énoncé de la définition de l’application et examinez avec soin les détails du projet. Dès le début, vous devez mettre en place un dialogue clair et un processus de contact. Vous devez définir le rôle que jouera votre prestataire externe, comme vous le feriez pour un membre de votre équipe interne. Alignez ses rôles et responsabilités sur le plan et le calendrier du projet de manière à pouvoir communiquer clairement les aspects du projet sur lesquels il interviendra. Release Requirements Astuce : Choisir un fournisseur externe • Contactez plusieurs fournisseurs. • Examinez leurs réalisations passées, y compris les apps disponibles sur l’App Store ; notez le classement des apps et les commentaires des utilisateurs. • Évaluez leurs compétences et leurs capacités ; par exemple, le codage est-il entièrement effectué en interne ? • Demandez des références. • Évitez les solutions standardisées ou les approches basées sur une multiplate-forme générique. • Concentrez votre attention sur la conception de l’interface, la qualité des visuels et le « cheminement » de l’app. • Abordez la question de la maintenance et du cycle de vie de l’app au-delà de la version 1.0. • Interrogez les fournisseurs sur leur expérience en matière d’infrastructure informatique. In-house team responsibilities Outsourced developer responsibilities Design Code Verification Certains partenaires externes peuvent vous épauler pour tous les éléments du projet, des prescriptions initiales au déploiement final. D’autres se cantonneront à l’écriture du code. Il est recommandé d’étudier ces capacités et prestations avec votre partenaire, que vous fassiez finalement affaire avec lui ou non. Cela vous permettra d’évaluer ses forces et vous renseignera sur la forme que pourra revêtir votre relation. « Nous faisons appel à des sous-traitants externes pour les différents éléments. Et tout dépend des besoins de l’app. Si son apparence est très spécifique, nous nous adressons à des sous-traitants qui ont réalisé des choses similaires, car nous savons qu’ils possèdent l’expertise requise. De cette manière, nous pouvons offrir un produit de qualité supérieure à nos collaborateurs ou à nos clients. » - Todd Schofield, Standard Chartered Bank Planification • Conception • Développement • Déploiement 7 Premiers pas dans le programme pour développeurs iOS en entreprise (iOS Developer Enterprise Program) Après avoir défini les prescriptions, sollicité les utilisateurs et défini le plan de votre application et de votre projet, la dernière étape avant la phase de conception est l’inscription au programme pour développeurs iOS en entreprise. Ce programme propose un processus complet et intégré pour développer, tester et diffuser des applications iOS au sein de votre organisation. Une fois inscrit au programme, vous avez accès aux outils et ressources mentionnés ci-contre. Nous vous présentons ci-après le processus d’inscription. Découvrez ensuite comment faire vos premiers pas. Pour plus d’informations, visitez le site http://developer.apple.com/programs/ios/ enterprise. Conditions requises pour l’inscription Avant de vous inscrire au programme, vérifiez que vous remplissez les conditions suivantes : • Vous envisagez de distribuer des apps iOS uniquement au sein de votre entreprise ou de votre organisation. Le programme pour développeurs iOS en entreprise est conçu pour les développeurs qui souhaitent développer et distribuer leurs apps iOS aux salariés de leur entreprise ou organisation. • Votre entreprise possède un numéro Dun & Bradstreet (D-U-N-S). Vous devrez le communiquer à Apple au cours de la procédure d’inscription. Vous devez également connaître la dénomination sociale de votre entreprise ou organisation. Pour demander ou obtenir un numéro D-U-N-S, visitez le site http://dbfrance.dnb.com/French/default.htm. • Vous êtes habilité à signer les contrats au nom de votre société. Pendant la procédure d’inscription, vous devrez indiquer les coordonnées d’un contact juridique, qui doit être mesure de vérifier que vous êtes habilité à signer le contrat de licence du programme pour développeurs iOS en entreprise au nom de votre entreprise. • Vous avez la capacité technique de signer des applications dans Xcode. En tant que personne inscrite, vous serez « l’agent » de votre équipe, ce qui vous rend responsable de l’approvisionnement des apps et des tâches administratives afférentes au compte technique. Coup d’œil : Ressources du programme pour développeurs iOS en entreprise (iOS Developer Enterprise Program) En adhérant au programme pour développeurs iOS en entreprise, vous bénéficiez des avantages suivants : • Accès au centre de développement iOS (iOS Dev Center) • Accès au SDK iOS • Sélection de versions bêta de logiciels et d’outils • Possibilité de créer votre équipe de développement à la section Équipe du Member Center • Accès aux forums développeurs Apple • Assistance technique (deux incidents par année d’adhésion au programme) • Possibilité de tester les applications directement sur iPad, iPhone et iPod touch • Distribution ad hoc de votre app sur 100 appareils enregistrés au maximum • Distribution interne de votre app sur un nombre illimité d’appareils de collaborateurs Astuce : Préparez votre boîte à outils de développement Le SDK iOS nécessite avant tout un Mac à processeur Intel. La plupart des développeurs optent pour un MacBook Air ou un MacBook Pro en raison de la portabilité et de la liberté qu’ils procurent. Mais un iMac ou un Mac mini fera tout aussi bien l’affaire, en particulier si vous disposez d’un laboratoire de développement interne. Assurez-vous également d’avoir des appareils de test disponibles. Pour garantir une compatibilité totale, vous devez également disposer d’appareils de précédente génération, par exemple un iPhone 3GS ou un iPad de première génération. Présentation du processus d’inscription 1. S’inscrire en tant que développeur Apple. Pour commencer la procédure d’inscription, vous devez vous enregistrer auprès d’Apple en créant un nouvel identifiant Apple spécialement pour ce programme. Nous vous conseillons de créer une adresse électronique qui servira uniquement pour ce compte. De cette manière, votre organisation pourra l’affecter à plusieurs personnes si nécessaire. Planification • Conception • Développement • Déploiement 8 2. Entrer les informations relatives à l’entreprise, les coordonnées de contact et les informations juridiques. Ces informations sont nécessaires pour valider votre statut d’entité professionnelle. La principale condition à remplir est de disposer d’un numéro D-U-N-S valide. Vérifiez que le nom et l’adresse de votre société correspondent aux informations figurant dans la base de données Dun & Bradstreet. Dans le cadre de la procédure de vérification de l’identité, il vous faudra le cas échéant fournir à Apple des documents professionnels tels que les statuts de votre société, un contrat d’exploitation ou un permis d’exploitation. 3. Soumettre la demande à Apple. Après avoir transféré votre demande d’inscription, vous pouvez vérifier son statut en vous connectant au Member Center à l’adresse http://developer.apple.com/ membercenter. Authentifiez-vous avec l’identifiant Apple que vous avez créé à l’étape 1. Durant cette étape, Apple examine l’app et vous contacte, vous-même ou votre équipe juridique, si nécessaire. 4. Accepter les termes du contrat de licence du programme entreprise. Pour poursuivre la procédure d’inscription, vous devez accepter les termes du contrat de licence du programme. Vous pouvez lire le contrat et en faire part à votre équipe juridique à cette étape. 5. Acheter le programme. Après avoir accepté les termes du contrat, vous recevez les instructions d’achat de l’adhésion sur l’Apple Store en ligne. Si vous souhaitez utiliser un bon de commande, contactez votre Apple Store pour savoir s’il existe des options d’achat institutionnel. 6. Activer votre abonnement. Vous recevrez une confirmation de commande après avoir acheté le programme. Vous recevrez un e-mail d’activation de la part d’Apple dans un délai de 24 heures. Cet e-mail contient un code vous permettant d’activer votre adhésion. Lorsque l’adhésion est activée, vous pouvez accéder à l’ensemble des ressources du programme. Coup d’œil : Formation de l’équipe Les agents et les administrateurs peuvent ajouter de nouveaux membres - qui pourront être soit administrateurs, soit membres - sous l’onglet Personnes de l’Apple Developer Member Center. Ouvrez la section Invitations et cliquez sur le bouton Inviter une personne pour inviter de nouveaux membres à rejoindre votre équipe. Agent Admins Members Admin Setup and Distribution Member Setup and Approvals Development Distribution Certificate Development Certificates Development Certificates Enterprise Provisioning Development Provisioning Development Provisioning Création de votre équipe Une fois que votre entreprise est inscrite au programme pour développeurs iOS en entreprise, vous devez créer votre équipe de développement à la section Équipe du Member Center. Rôles et responsabilités des membres de l’équipe Une équipe de développement se compose de personnes assumant les rôles suivants : Agent. Principal contact de l’équipe de développement, en charge d’accepter tous les contrats pour développeurs iOS ; c’est également le principal utilisateur qui a inscrit votre entreprise au programme. Responsable de la gestion du certificat de distribution en entreprise utilisé pour l’approvisionnement des apps en vue de leur déploiement à grande échelle auprès des salariés. Administrateur(s). Les administrateurs gèrent leurs propres équipes et certificats de développement. Ils ont besoin de l’intervention de l’agent pour gérer la distribution en entreprise. Astuce : Enregistrer des appareils pour le développement Les administrateurs peuvent entrer plusieurs ID d’appareils simultanément en téléchargeant un fichier .deviceids, généré par l’Utilitaire de configuration iPhone. Dans l’Utilitaire de configuration iPhone, sélectionnez les appareils que vous souhaitez télécharger, puis cliquez sur le bouton Exporter. Un fichier .deviceids est créé. Vous pouvez télécharger l’Utilitaire de configuration iPhone à l’adresse www.apple.com/fr/support/iphone/enterprise. Membres. Principaux développeurs au sein de l’organisation. Les membres reçoivent l’autorisation des administrateurs d’approvisionner les apps et les appareils à des fins de test et de développement. Ils ont besoin de l’intervention de l’agent pour gérer la distribution en entreprise. Planification • Conception • Développement • Déploiement 9 Ressources d’apprentissage Après avoir créé votre équipe, visitez le centre de développement iOS (iOS Dev Center) à l’adresse http://developer.apple.com/devcenter/ios, où vous trouverez un ensemble complet de ressources. Vous pouvez les enregistrer dans vos signets ou en faire votre page d’accueil pour tout votre processus de développement. Voici quelques ressources très utiles qui vous sont proposées. Forums Communiquez avec d’autres développeurs en entreprise, échangez des idées et des bonnes pratiques. Il est toujours utile de savoir qu’une communauté de développeurs partageant vos préoccupations est accessible à portée de doigt. Bibliothèque de référence Une encyclopédie, un manuel et un support de formation tout-en-un. Interrogeable et classée, elle offre en outre un accès direct aux informations dont vous aurez besoin pour développer vos apps. Exemples de code Ces exemples peuvent vous donner des idées de développement pour vos propres apps. Vous pouvez même copier et coller les exemples de code directement dans votre projet. Guides de mise en route Si vous faites vos premiers pas dans le monde du développement iOS, ces guides permettront à votre équipe de découvrir les concepts et bonnes pratiques de base du développement iOS. « Les exemples proposés sur Apple.com nous permettent de découvrir très facilement une fonctionnalité spécifique, comme l’accès en mode descendant, les cartes ou l’intégration à une base de données SQL locale ». - Keith Debickes, JM Family Enterprises, Inc. Raccourcis FAQ sur l’inscription au programme http://developer.apple.com/support/ios/enrollment.html FAQ sur le programme pour développeurs iOS en entreprise (iOS Developer Enterprise Program) http://developer.apple.com/support/ios/enterprise.html Étape suivante Lorsque vous avez terminé votre processus de planification, reportez-vous à la check-list Planification, présentée au début de ce chapitre. Si vous avez effectué toutes les étapes, vous avez toutes les chances que votre direction vous soutienne, que votre équipe soit pleinement impliquée et que votre plan de projet soit parfaitement clair pour chaque intervenant. Votre équipe a toutes les cartes en main pour passer à la phase suivante du processus : explorer les bonnes pratiques en matière de conception et de développement et comprendre les bases des concepts de développement iOS. Planification • Conception • Développement • Déploiement 10 Conception La conception, c’est important. Il est très facile de créer une app basique pour iPhone ou iPad. Mais les apps qui connaissent un vif succès demandent un peu plus d’effort. Quelle est la clé du succès des apps les plus populaires ? Elles sont dotées d’un design attrayant, elles exploitent à la perfection les couleurs et les éléments audio, elles sont simples d’emploi, elles font ce qu’elles sont supposées faire, elles impliquent et fidélisent l’utilisateur. En prêtant une attention particulière à la conception lorsque vous développez une nouvelle app ou améliorez une app existante, vous renforcerez son attrait, créerez une expérience utilisateur plus captivante et donnerez aux utilisateurs l’envie de l’utiliser. Ce chapitre présente quelques stratégies que vous pourrez mettre en œuvre pour affiner votre idée, réexaminer vos choix de conception et opter pour une conception qui augmentera la productivité de vos utilisateurs. Check-list Conception À la fin de la phase de conception, vous devriez avoir : lu les Directives sur l’interface utilisateur iOS (iOS Human Interface Guidelines) d’Apple dressé une brève liste des fonctionnalités directement alignée sur l’énoncé de la définition de votre application principale hiérarchisé la liste des objets, tâches et concepts et établi leurs relations réciproques créé un ensemble de base de représentations filaires et de compositions sommaires vous permettant de visualiser le cheminement de l’app Concevoir une app pour la technologie tactile La conception d’une interface utilisateur destinée à une interaction avec la souris est très différente de la conception pour la technologie tactile. Pour concevoir une app, vous devez avant tout comprendre ce qui rend les appareils iOS si uniques. Prenez le temps de vous familiariser avec l’iPhone ou l’iPad, de découvrir l’interaction utilisateur et les conventions de conception des interfaces. Au niveau basique, l’interaction tactile requiert plus de pixels pour représenter un bouton sélectionnable par le doigt qu’avec la souris dans un environnement de bureau. Par exemple, la taille minimale de confort des éléments d’interface à toucher est de 44 x 44 points. Les éléments comme les menus déroulants ou les barres de défilement, très courants sur les ordinateurs de bureau, ne sont pas adaptés aux appareils mobiles conçus pour la technologie tactile. Lisez les Directives sur l’interface utilisateur (Human Interface Guidelines, HIG) Les Directives sur l’interface utilisateur iOS exposent les principes qui vous permettront de doter votre app iOS d’une interface exceptionnelle et de créer une expérience utilisateur optimale. Ces principes sont aussi importants pour les apps développées en entreprise que pour celles proposées sur l’App Store. Planification • Conception • Développement • Déploiement « Pour garantir la cohérence de nos apps, nous appliquons notamment les Directives sur l’interface utilisateur (Human Interface Guidelines, HIG) d’Apple. Elles nous aident vraiment à assurer la cohérence d’une app à l’autre. Nous avons quand même le choix entre de nombreux styles de conception et nous veillons à ce qu’ils aient tous un thème commun. Mais le respect des HIG est très important pour nous. » - Todd Schofield, Standard Chartered Bank 11 Simplifier Le plus souvent, les apps que vous développerez en interne seront tirées d’un environnement de bureau existant ou reposeront sur des systèmes métier dont dépendent vos utilisateurs. Vouloir transférer chaque fonctionnalité et fonction de l’application de bureau vers l’appareil mobile est un piège dans lequel il est facile de tomber. Cette approche ne parvient généralement pas à créer le type d’expérience que l’on attend sur un appareil mobile. N’oubliez pas que les utilisateurs effectuent leurs tâches différemment sur un appareil mobile, sur lequel certaines tâches ne peuvent pas être exécutées du tout. Les petites tâches aisées sont mieux adaptées à l’environnement mobile. C’est pourquoi il est important de continuer à filtrer les fonctionnalités au moyen de l’énoncé de la définition de l’application à mesure que vous affinez votre app. Astuce : Apps de taille moyenne • Les apps simples, rapides et bien exécutées génèrent une demande interne, et limitent la portée et l’investissement. • Les apps de taille moyenne peuvent constituer un menu complet. Les utilisateurs créent leurs propres « solutions », ce qui laisse une plus grande marge de manœuvre à vos collaborateurs. Voici quelques questions que vous pouvez vous poser concernant les éléments de l’interface utilisateur de votre app afin d’en simplifier la conception : • Est-il nécessaire que cet élément apparaisse à l’écran ? • Cet élément donne-t-il accès à une fonctionnalité essentielle ? • Est-il souvent utilisé ? Presque toujours ? • L’utilisateur a-t-il besoin de cet élément à chaque sélection ? • Étant donné le flux de l’app, est-il important d’afficher cet élément maintenant ? Si vous répondez par la négative à certaines de ces questions, vous pouvez peut-être envisager de ne pas inclure l’élément concerné dans votre app ou de combiner la fonctionnalité avec un autre élément. Les utilisateurs de l’iPhone et de l’iPad sont habitués à l’apparence et au comportement des apps intégrées fournies avec ces appareils. Vous n’êtes pas obligé de reproduire chaque détail des apps intégrées, mais il est utile de comprendre les schémas de conception qu’elles suivent et de réfléchir à la manière dont vous pourriez les appliquer à vos propres apps dans une conception simple, fonctionnelle et conviviale. Étudiez les commandes, les événements tactiles (par exemple, le pincement et le zoom) et les animations que l’on rencontre fréquemment dans ces apps et demandez-vous comment appliquer ces concepts à votre app de manière cohérente. Planification • Conception • Développement • Déploiement « Notre philosophie est que les apps développées en interne doivent être aussi élégantes et belles que la meilleure app du commerce. Aussi, quand nous nous sommes attaqués à la conception de l’interface utilisateur, nous ne voulions pas seulement résoudre le problème sur le plan fonctionnel, nous voulions le résoudre... de la manière la plus propre qui soit. » - Mark McWilliams, Razorfish 12 Définir les priorités Lorsqu’une app iOS reste axée sur sa fonction principale, elle donne toute satisfaction et est agréable à utiliser. Chaque élément de votre app doit être optimisé dans ce but. Pour parvenir à créer une interface utilisateur organisée et ciblée, vous pouvez dresser la liste des objets, tâches et concepts impliqués, puis les classer en fonction de leur pertinence par rapport à la fonction ou à l’objectif principal de votre app. Cette étape vous aidera également à réfléchir au flux de production ou au processus d’interaction de votre app, ce qui éclairera vos décisions relatives à la conception de l’interface utilisateur. Liste des objets, tâches et concepts Astuce : Écran Retina L’écran Retina de l’iPhone 4 ou ultérieur vous permet d’afficher des versions haute résolution de vos visuels et icônes. Si vous vous contentez de redimensionner vos visuels existants, vous passerez à côté de la possibilité d’offrir à vos utilisateurs les images superbes et captivantes qu’ils sont en droit d’attendre. Il est préférable de retravailler vos images pour en créer des versions plus grandes de meilleure qualité, à la texture plus riche, plus détaillées et plus réalistes. • Objets. Ce sont les principaux éléments fonctionnels de votre app. Par exemple, une app de calendrier comporte des éléments tels que des jours, des mois, des rendez-vous et des rappels. • Tâches. Il s’agit d’actions qui sont généralement exécutées sur des objets, par exemple le filtrage, la programmation, l’édition et la création. • Concepts. Ce sont des flux de production ou, dans certains cas, une série de tâches apparentées formant un concept plus large. Dans notre exemple de calendrier, un concept peut être une recherche englobant plusieurs tâches. Objects Calendars Tasks Scheduling Concepts Searching Days Create Search Weeks Edit Filter Months Search Appointments Reminders Lorsque vous aurez créé ces listes, vous constaterez des relations entre les éléments de chaque catégorie. Vous pourrez ainsi regrouper les objets, tâches, et concepts liés dans une hiérarchie qui doit permettre de simplifier la manière dont ils se présentent à l’utilisateur. Planification • Conception • Développement • Déploiement 13 Adoptez une approche descendante Placez les éléments le plus souvent utilisés (généralement de niveau supérieur) près du haut de l’écran, où ils sont le plus visibles et faciles d’accès. Comme les utilisateurs balaient l’écran de haut en bas, les éléments doivent s’afficher progressivement conformément aux critères suivants : • Fréquence d’utilisation : les éléments le plus fréquemment utilisés doivent apparaître dans la partie supérieure de l’écran, alors que les éléments utilisés moins souvent doivent être placés dans la partie inférieure de l’écran. • Importance pour l’utilisateur : les éléments les plus importants doivent être disposés dans la partie supérieure de l’écran. • Mise en exergue sur le plan visuel : les éléments que vous voulez mettre en évidence doivent apparaître dans la partie supérieure de l’écran. La même approche s’applique également aux informations contenues dans votre app. Il doit y avoir une progression des informations plus générales en haut de l’écran aux informations plus spécifiques en bas de l’écran. Optimiser Astuce : Esquissez votre app Couchez-la sur papier. Souvent, la meilleure manière d’exprimer sa vision est de créer des croquis au début du processus de conception. Cela vous aidera à mettre en forme et à affiner votre conception sans devoir passer par le développement du code. Vous pouvez acheter sur Internet des modèles très pratiques, qui vous aideront à créer et à peaufiner vos croquis. Créez votre app avec une app. Vous trouverez également sur l’App Store des apps, par exemple iMockup et App Layout, qui sont conçues pour vous aider à créer des maquettes d’interface utilisateur pour iOS avec des commandes et des fenêtres standard. Une conception de qualité est un processus itératif. Plus vous travaillerez vos concepts de conception de l’interface à un stade précoce du processus (avant d’écrire la première ligne de code), meilleur sera le résultat final. Il est également important d’optimiser votre conception en fonction de votre public cible et de l’appareil auquel il est destiné. Les apps de qualité savent adapter les concepts d’interaction utilisateur, qui varient selon les caractéristiques uniques de l’appareil. Pour optimiser votre app, vous devez affiner et répéter ces concepts afin que le résultat final enchante vos utilisateurs. Répétez Avant de vous attaquer au développement d’une app, vous devez réunir un ensemble solide de plans. Vous pouvez commencer avec quelques croquis, puis affiner vos idées au fur et à mesure. À chaque étape, vous en apprendrez plus sur la manière dont vos utilisateurs pourront interagir avec l’app et découvrirez de nouvelles idées - sans consacrer du temps, de l’argent ou des ressources au développement proprement dit. Pensez à dessiner ou à esquisser l’intégralité du flux de votre app, du début à la fin, pour ressentir pleinement l’expérience utilisateur et la fonctionnalité créée par votre conception. Planification • Conception • Développement • Déploiement 14 iPad ou iPhone Si vous souhaitez développer une app à la fois pour iPhone et pour iPad, vous devez adapter votre conception à chaque appareil. Si la plupart des éléments d’interface sont disponibles sur tous les appareils, la présentation générale est souvent très différente. Par exemple, les utilisateurs attendent généralement des visuels de meilleure qualité dans les apps pour iPad que dans les apps pour iPhone. Il est déconseillé de se contenter de redimensionner une app pour iPhone de manière à remplir l’écran de l’iPad . Votre app pour iPad doit au contraire éveiller l’intérêt de l’utilisateur en tirant pleinement parti de son grand écran et de ses capacités. De plus, nous vous rappelons que l’iPhone 4 (ou ultérieur) prend en charge une résolution plus élevée grâce à l’écran Retina, ce qui impose de doubler la résolution de vos visuels. Les différences se situent également dans les gestes disponibles et les modes de rotation. En outre, les deux appareils prennent en charge des éléments d’interface différents. Les contrôleurs flottants ou les contrôleurs de vue fractionnée sont par exemple disponibles uniquement sur l’iPad. « L’iPad nous offre vraiment un espace d’affichage plus grand, dont nous voulions tirer parti. C’était essentiel pour nous. Le but n’était pas de faire tout en trois fois plus grand avec tous ces pixels, mais d’utiliser à bon escient tout cet espace… Quand nous devons convertir une app pour iPhone en app pour iPad, nous la repensons. Il y a probablement 60 % des fonctionnalités principales qui restent identiques, mais pour le reste ? Comment pouvons-nous rendre l’app plus efficace, comment réduire le nombre de clics ou de fenêtres pour accéder à l’ensemble du contenu ? » - James Blomberg, General Electric Apps universelles Le SDK iOS prend en charge le développement d’applications universelles. Une app universelle est optimisée pour fonctionner sur tous les appareils iOS. Pour l’essentiel, il s’agit d’une app iPhone et d’une app iPad regroupées au sein d’un même fichier binaire. Une app universelle identifie l’appareil sur lequel elle est exécutée afin d’en exploiter tout le potentiel. Les apps universelles de qualité tirent parti des fonctionnalités matérielles spécifiques de l’appareil, offrent le meilleur choix d’éléments d’interface et n’utilisent que les fonctionnalités prises en charge par cet appareil. Lorsque vous concevez une app universelle pour appareils iOS, il est important de réfléchir à la manière dont vous allez séparer l’interaction utilisateur du code d’application sous-jacent. Les classes du SDK iOS et les API s’appuient sur un paradigme modèle-vue-contrôleur (model-view-controller, MVC), qui favorise une séparation claire entre les données de l’app et la logique des modes d’affichage utilisés pour présenter ces données. Si, par exemple, vous développez votre interface utilisateur avec Interface Builder, vous profiterez de cette flexibilité dans votre projet (voir chapitre suivant). La première étape du développement d’une app universelle consiste à créer des conceptions d’interface utilisateur pour chacun des facteurs de forme - une conception pour les iPad et une autre pour les iPhone/iPod touch. Une grande partie de votre conception sera influencée par les fonctionnalités que vous voulez associer à chaque facteur de forme. Demandez-vous comment les utilisateurs pourraient utiliser l’orientation ou les gestes différemment selon les appareils. Pensez aux capacités matérielles de chaque appareil, par exemple l’appareil photo. Les différences entre les modes d’utilisation doivent vous éclairer sur la manière dont vous pourrez développer une conception cohérente pour chaque appareil et les cas où vous devrez préférer un codage conditionnel. Planification • Conception • Développement • Déploiement 15 Accessibilité Dans un environnement professionnel, il est important que tous les utilisateurs bénéficient du même accès aux outils et à la technologie mobile. iOS intègre plusieurs fonctionnalités prêtes à l’emploi garantissant l’accessibilité et la simplicité d’emploi à tous les utilisateurs. Il est malgré tout important que vous optimisiez l’accessibilité de vos apps internes afin que les utilisateurs souffrant de handicaps visuels, auditifs ou physiques puissent, eux aussi, les utiliser et en profiter. iOS inclut l’interface de programmation de l’accessibilité de l’interface, une API allégée qui vous aide à fournir toutes les informations dont VoiceOver a besoin pour décrire l’interface de manière que les personnes malvoyantes puissent utiliser l’app. L’interface de programmation de l’accessibilité de l’interface vous permet d’ajouter une fine couche de fonctionnalité, qui ne modifie pas l’apparence de votre app et n’interfère pas avec sa logique principale. Cela signifie que, si vous utilisez des commandes et des affichages standard, la majeure partie du travail nécessaire pour garantir l’accessibilité de votre app est fait à votre place. Selon le niveau de personnalisation de votre app, il vous suffit pour cela d’ajouter des descriptions précises et utiles des éléments accessibles de votre interface utilisateur. Le SDK iOS met également les outils suivants à votre disposition : • Fenêtre Inspecteur d’Interface Builder : elle vous permet de fournir en toute simplicité des informations d’accessibilité descriptives lorsque vous créez les fichiers nib • Inspecteur d’accessibilité : il affiche les informations d’accessibilité intégrées dans l’interface utilisateur de votre app et vous permet de vérifier ces informations lorsque vous exécutez l’app dans le Simulateur iOS Astuce : Intégration de la prise en charge de VoiceOver Rendre votre app iOS accessible aux utilisateurs de VoiceOver est une excellente idée. Cela peut également contibuer au respect des directives d’accessibilité édictées par divers organes de direction. Pour être certain que les utilisateurs de VoiceOver pourront utiliser votre app, il n’est pas nécessaire d’apporter la moindre modification à la conception visuelle de votre interface. Si vous utilisez des éléments standard, vous avez très peu de travail supplémentaire à faire, voire aucun. Cependant, vous devrez le cas échéant ajouter quelques informations descriptives concernant les fenêtres et les commandes de votre interface utilisateur. Plus votre interface utilisateur est personnalisée, plus vous devrez fournir d’informations afin que VoiceOver soit en mesure de décrire votre app avec précision. Vous pouvez également utiliser VoiceOver pour tester l’accessibilité de votre app. Étape suivante En vous appuyant sur des bonnes pratiques de conception des interfaces utilisateur, vous êtes prêt à passer à la phase de développement de votre projet. Cependant, comme nous l’avons indiqué dans le chapitre consacré à la planification, la conception est un processus itératif qui se poursuit tout au long du cycle de vie du développement de l’app. Créer une conception de qualité en vous concentrant sur l’expérience utilisateur doit être une stratégie délibérée, y compris lorsque votre équipe s’attaquera à l’écriture du code. Les outils et les concepts abordés dans le chapitre suivant vous aideront justement à développer un code à toute épreuve, tout en vous permettant d’offrir à vos utilisateurs des apps parfaitement conçues. Planification • Conception • Développement • Déploiement 16 Développement Avec iOS, vous pouvez diffuser du contenu et des informations par de nouveaux moyens simples mais puissants pour aider vos collaborateurs à être plus productifs. En tirant parti du SDK iOS, votre équipe de développement pourra créer des apps avec les mêmes outils utilisés par les ingénieurs Apple pour développer le système d’exploitation et les apps fournis sur tous les iPhone et iPad. Vous pourrez ainsi créer des apps présentant une apparence, une convivialité et un comportement tout en élégance et en efficacité. Check-list Développement À la fin de la phase de développement, vous devriez maîtriser les bases : des outils du SDK iOS, à savoir Xcode, Interface Builder, Instruments et le Simulateur Avec les outils iOS, vous pouvez tirer parti des frameworks de haut niveau, qui vous permettent de profiter pleinement de la plate-forme. Nous allons étudier les principales API destinées au développement interne afin de vous donner des idées d’intégration de ces capacités dans vos apps. Nous verrons également comment vous pouvez utiliser les technologies web avec les langages HTML5, CSS et JavaScript. En dotant votre solution des fonctionnalités de sécurité adaptées, ces technologies s’associent pour créer une base puissante et sécurisée soutenant vos besoins professionnels. des principaux frameworks et API utilisés pour le développement d’apps en interne Enfin, avant de mettre votre app à la disposition de vos utilisateurs, vous devrez la tester et la déboguer de manière approfondie. Il vous faudra aussi valider ses performances sur différents appareils. Nous vous expliquerons comment les outils iOS vous aident à effectuer ces tâches et vous présenterons les bonnes pratiques vous permettant de vous assurer que votre app fonctionne comme vous le souhaitez. du test, du débogage et de la validation des performances de vos apps du développement d’apps web de l’architecture iOS permettant d’accéder aux données dans les systèmes de back-office des bonnes pratiques en matière de sécurité des apps internes Développement natif Le développement interne, c’est avant tout mettre en œuvre la vision de votre app en tirant pleinement parti des capacités de l’appareil dans un environnement organisé et efficace. Le SDK iOS inclut Xcode, l’IDE pour coder, développer et déboguer votre app, Interface Builder pour créer l’interface utilisateur, Instruments pour analyser le comportement et la performance de l’app, ainsi que des dizaines d’autres outils. « D’après l’expérience de mon équipe, le SDK et Xcode sont de fantastiques outils de programmation d’une simplicité enfantine, même pour les développeurs qui n’ont pas une formation Mac. » - Hans-Christian Pahlig, Axel Springer Xcode est la pierre angulaire de votre expérience de développement. Xcode met à votre disposition des fonctions de saisie assistée du code, d’analyse statique en temps réel et de débogage instantané sur l’appareil. Interface Builder vous permet de créer très facilement un prototype de votre app. Il vous suffit de faire glisser des éléments pour créer une interface utilisateur complète, sans écrire une seule ligne de code. Avec Xcode 4, Interface Builder s’intègre directement dans l’IDE Xcode. Instruments recueille et affiche les données en temps réel, par exemple l’utilisation des disques, de la mémoire et du processeur, ce qui permet de localiser facilement les problèmes. Le Simulateur exécute votre app presque comme un appareil iOS. Vous pouvez ainsi vérifier et tester votre code directement à partir de votre environnement de bureau. Planification • Conception • Développement • Déploiement 17 Principales API pour les développeurs en entreprise Les outils du SDK iOS vous permettent d’écrire presque toutes les fonctionnalités imaginables. Beaucoup de ces outils comprennent également des exemples de code et de ressources pour vous mettre le pied à l’étrier. Intéressons-nous à quelques-unes des milliers d’API disponibles dans le SDK iOS. Un simple coup d’œil peut nourrir votre imagination compte tenu de l’incroyable éventail de fonctionnalités que vous pouvez intégrer facilement dans vos apps internes. Multitâche. Les développeurs ont accès à sept services de traitement multitâche, permettant d’effectuer des tâches en arrière-plan tout en préservant les performances et en économisant la batterie. Il s’agit de fonctions telles que la voix sur IP, le son en arrière-plan, les services de localisation en arrière-plan, les notifications push et locales, la finalisation des tâches et le basculement rapide entre les apps. Notification push. Le service de notification push d’Apple permet d’alerter les utilisateurs de l’arrivée de nouvelles informations, même lorsque l’app n’est pas en cours d’exécution. Vous pouvez envoyer des messages de notification, déclencher des alertes sonores ou ajouter un badge numéroté à l’icône de votre app. Accessoires. Les applications peuvent communiquer avec des accessoires par le biais du connecteur dock 30 broches ou de l’interface sans fil Bluetooth. Vous pouvez développer une app qui récupère des données à partir de capteurs externes ou contrôle des accessoires au moyen d’une interface Multi-Touch perfectionnée. Créez une app d’inventaire pour votre lecteur de codes à barres ou encore une app qui consigne les données d’un cardiofréquencemètre associé. Vous pouvez aussi créer vos propres protocoles personnalisés afin d’échanger des données et des commandes avec votre app. Pour savoir comment intégrer des fonctions de prise en charge des accessoires à vos apps iOS, découvrez le programme de licences MFi à l’adresse http://developer.apple.com/programs/mfi. Avec ses fonctions de saisie assistée du code, d’analyse statique en temps réel et de débogage instantané sur l’appareil, Xcode est la pierre angulaire de votre expérience de développement. Services de localisation. Utilisez le framework Core Location pour déterminer la longitude et la latitude actuelles d’un appareil afin de configurer et de programmer la livraison d’événements basés sur la localisation. Le framework exploite le matériel disponible pour calculer la position de l’utilisateur par triangulation des signaux à proximité. iOS 4 (ou ultérieur) améliore la localisation avec l’API MapKit. MapKit prend en charge les fonctions de panoramique et de zoom, d’annotations personnalisées, d’identification de la position actuelle et de géolocalisation pour sélectionner des sections de la carte et afficher des informations complémentaires. Planification • Conception • Développement • Déploiement 18 Intégration de données partagées. iOS met à votre disposition de puissantes options de connectivité permettant de partager des informations entre les apps. À l’aide d’une syntaxe basée sur des URL, vous pouvez accéder à des données provenant du Web et lancer des actions dans d’autres apps installées, par exemple Mail, Calendrier, Contacts, etc. Votre app peut aussi déclarer un schéma URL unique pour permettre à d’autres applications de la lancer. • Mail. iOS vous permet de présenter une interface de composition d’e-mails ou de SMS standard depuis votre app. Dans les deux cas, vous pouvez préconfigurer par programme le message avec des destinataires et du contenu, que l’utilisateur pourra modifier avant d’envoyer le message. Les e-mails et SMS sortants sont automatiquement traités par les files d’attente de messages du système. • Contacts. Avec les API de Carnet d’adresses pour données partagées, vous pouvez créer un nouveau contact ou obtenir les données d’un contact existant. En accédant à la liste de contacts intégrée, votre app peut permettre à l’utilisateur d’associer un contact ou une adresse professionnelle à une tâche ou un processus d’application. • Calendriers. Event Kit permet aux apps iOS d’accéder aux informations des événements à partir de la base de données Calendrier d’un utilisateur. Récupérez les événements en fonction d’une période ou d’un identifiant unique, recevez des notifications lorsque les données des événements sont modifiées, et permettez aux utilisateurs de créer et de modifier les événements dans tous leurs calendriers. Les modifications apportées avec Event Kit aux événements figurant dans la base de données Calendrier d’un utilisateur sont automatiquement synchronisées avec le calendrier approprié, y compris les calendriers professionnels hébergés sur des serveurs CalDAV et Exchange. Interface Builder, qui est directement intégré à l’IDE Xcode 4, vous permet de créer très facilement un prototype de votre app. Il vous suffit de faire glisser des éléments pour créer une interface utilisateur complète, sans écrire une seule ligne de code. • Photos. UIKit permet d’accéder à la photothèque de l’utilisateur. L’interface de sélection de photos comprend des commandes permettant de naviguer dans la photothèque et de sélectionner une photo afin de la transférer dans votre app. Vous avez par ailleurs la possibilité d’activer les commandes de retouche pour que l’utilisateur puisse rogner la photo transférée ou en faire un panoramique. Cette fonction peut également servir à ajouter une interface à l’appareil photo afin que les photos prises puissent être chargées directement dans votre app. Core Animation Audio et vidéo. Les technologies multimédia du SDK iOS vous permettent d’intégrer des fonctionnalités audio et vidéo sophistiquées dans votre app. Le framework Media Player prend en charge la lecture en plein écran de fichiers vidéo et la prise en charge intégrée de la diffusion HTTP en direct simplifie la diffusion sans fil de contenus audio et vidéo de qualité supérieure au moyen de serveurs web standard. Votre app peut également faire appel à Core Audio pour créer, enregistrer, mixer, traiter et lire des contenus audio. Core Animation ajoute un mouvement souple et une réaction dynamique à l’interface utilisateur. Vous pouvez aussi vous servir d’OpenGL ES pour créer des graphiques 2D et 3D hautes performances. Planification • Conception • Développement • Déploiement 19 Développement web Les apps web - une toute nouvelle catégorie d’applications mobiles - ouvre un univers de possibilités pour l’entreprise. Les apps web sont des pages web personnalisées exploitant les langages HTML, CSS et JavaScript avancés pour offrir aux utilisateurs d’appareils iOS une expérience d’immersion incomparable. Et comme vous créez des apps en utilisant le langage HTML, vous pouvez développer des applications web dans n’importe quel environnement de développement web. Pour déployer une application web, vous avez seulement besoin d’héberger une page web. Vous pouvez gérer les modifications ou les mises à jour à partir du serveur sur lequel réside la page. Jetons un coup d’œil aux technologies permettant de développer des applications web pour appareils iOS. HTML5 est la dernière spécification de HTML, le principal standard déterminant la façon dont le contenu web interagit avec les navigateurs modernes. HTML5 permet aux développeurs d’intégrer du média enrichi directement dans des pages web standard, ce qui réduit le temps de développement et garantit une interactivité optimale pour la création d’apps web. Les animations et effets visuels CSS3 vous permettent de créer des interfaces graphiques utilisateur sophistiquées pour les apps web. Les effets visuels disponibles vont des dégradés, masques et reflets à des effets plus complexes en 2D et 3D. Lorsque vous combinez ces effets visuels avec des événements tactiles, vous pouvez créer des apps web qui interagissent davantage comme des apps natives sur iPhone et iPad WebKit est un moteur de navigation web open source. À la base de Safari sur iPhone et iPad, WebKit simplifie le développement web et favorise l’innovation. Ensemble d’outils open source que chacun peut utiliser gratuitement, WebKit fournit le moteur de rendu HTML pour apps web sur iPhone et iPad. Dashcode est inclus dans le SDK iOS. L’environnement intégré de Dashcode vous permet de créer la mise en page, d’écrire le code et même de tester les apps web. Dashcode met également à votre disposition des modèles très pratiques qui donneront vie à vos apps web. Le Simulateur exécute votre app presque comme un appareil iOS. Vous pouvez ainsi vérifier et tester votre code directement à partir de votre environnement de bureau. Et comme le Simulateur inclut le navigateur Safari pour iOS, vous pouvez aussi tester et vérifier vos apps web avant leur déploiement. « Le SDK nous a entre autres permis d’apporter des modifications rapidement. On peut le faire très vite à l’écran et, grâce au Simulateur, on peut voir ce que ça donne presque instantanément. Et pour nous, cela veut dire donner un feed-back direct. » - Todd Schofield, Standard Chartered Bank Safari 5 pour Mac et Windows propose un ensemble d’outils puissants qui simplifient le débogage, le peaufinage et l’optimisation des apps web pour une compatibilité et des performances maximales. Pour accéder à ces outils, activez le menu Développement dans les préférences de Safari sur votre Mac ou votre PC. Planification • Conception • Développement • Déploiement 20 Intégration de contenu web dans des apps natives Avec le SDK iOS, vous pouvez aussi fournir un accès à du contenu web dans une app iOS à l’aide de Web View. Vos applications web peuvent ainsi accéder à des fonctionnalités iOS telles que les notifications push, l’appareil photo intégré, la détection des mouvements 3D, etc. Grâce à cette fonctionnalité, vous pouvez améliorer votre app en effectuant des ajustements sur votre serveur web sans avoir à déployer de nouveau l’application. L’utilisation de contenu web dans votre app native constitue en outre un excellent moyen de se lancer dans le développement natif sans devoir revenir en arrière ou abandonner vos investissements en conception web. Accès aux systèmes de back-office « Nous devions trouver un moyen d’appliquer très rapidement les mises à jour et les modifications. C’est pourquoi nous avons adopté une approche mixte, à base d’éléments d’interface natifs hébergés sur le téléphone. Le reste était toutes les pages web proprement dites. » - Giancarlo De Lio, Mt. Sinai Hospital Il arrivera souvent que votre app d’entreprise doive accéder aux systèmes de back-office et aux entrepôts de données existants. Si toute app mobile de qualité se doit d’offrir une expérience utilisateur exceptionnelle côté client, la même attention doit être accordée au détail et à l’architecture pour intégrer l’expérience client aux données des serveurs back-end. Le SDK iOS inclut une puissante gamme d’outils et de frameworks permettant de stocker, de consulter et de partager les données résidant sur les serveurs de données de l’entreprise. Services web Avec le SDK iOS, vous pouvez travailler avec des données XML pour établir une communication entre votre application client et le serveur. Présentant un format léger et structuré, les fichiers XML peuvent être facilement lus et écrits par votre app et s’intègrent aisément au système de fichiers iOS. Avec SOAP, vous pouvez créer et analyser vos propres opérations de données ou utiliser des bibliothèques tierces telles que gSOAP ou Axis2. Si vous implémentez REST, vous pouvez intégrer XML directement dans votre app pour en accroître la performance. Par ailleurs, de nombreuses apps iOS utilisent JSON pour permettre un échange simple des données, ainsi que des bibliothèques tierces comme le framework JSON. Astuce : Web View Pour intégrer du contenu web, il vous suffit d’insérer un objet UIWebView dans votre app native, de le lier à une fenêtre et de lui envoyer une requête afin de charger le contenu web. Vous pouvez aussi utiliser cette classe pour naviguer dans l’historique des pages web. Vous pouvez même définir des propriétés du contenu web par programme. Réseau iOS offre un large éventail de technologies réseau modernes, perfectionnées et simples d’emploi. BSD Sockets est la principale interface de programmation réseau iOS, sur laquelle sont basés tous les frameworks de haut niveau. C’est le choix idéal pour un maximum de performance et de flexibilité. BSD étant le standard de fait de la programmation réseau sous UNIX, le transfert de code réseau à partir d’autres plates-formes ne pose généralement aucun problème. Bonjour est le puissant protocole d’Apple qui permet de trouver automatiquement des systèmes et des services sur un réseau local sans configuration fastidieuse. Votre app accède à ces fonctionnalités par le biais de frameworks de haut niveau, qui simplifient la connexion aux informations, leur livraison et l’interaction avec ces dernières, partout dans le monde. Planification • Conception • Développement • Déploiement 21 Stockage local Inclus dans iOS, Core Data et SQLite aident votre app à gérer les données stockées sur l’appareil luimême et à interagir avec elles. • Core Data. Le framework Core Data offre des solutions généralisées et automatisées aux tâches courantes associées au cycle de vie d’un objet et à la gestion du graphique d’un objet, y compris la persistance. Core Data est une solution généraliste de gestion des données conçue pour traiter les besoins en matière de modèle de données de tous les types d’applications, quelle que soit leur taille. Vous pouvez rapidement définir le modèle de données de vos apps sous forme graphique et y accéder facilement à partir de votre code. Cet outil met à votre disposition une infrastructure traitant les fonctionnalités courantes, par exemple enregistrer, restaurer, annuler et rétablir, ce qui vous permet de vous concentrer sur l’innovation. Comme Core Data utilise la bibliothèque de données SQLite intégrée, il n’est pas nécessaire d’installer un système de base de données distinct. • SQLite. iOS inclut la populaire bibliothèque SQLite, un moteur de base de données relationnelle léger mais puissant, qui peut facilement être intégré à une app. Utilisé dans une multitude d’apps sur de nombreuses plates-formes, SQLite est considéré comme le standard de l’industrie pour la programmation de bases de données SQL intégrées. Contrairement au framework Core Data, qui est orienté objet, SQLite fait appel à une API procédurale orientée SQL pour manipuler directement les tables de données. Vous pouvez même utiliser SQLite dans une app web basée sur JavaScript. Exemple : Services web centralisés La centralisation des services web est une solution idéale pour simplifier le développement back-end, en particulier si votre app doit interagir avec plusieurs systèmes de back-office. Par exemple, Sunbelt Rentals a utilisé les serveurs d’application .Net pour écrire des scripts pouvant invoquer des procédures stockées sur des systèmes AS/400 existants et des bases de données Microsoft CRM. Ils ont pu ensuite fournir les données récupérées par .Net via XML et celles-ci ont pu être traitées très facilement par l’app mobile. AS/400 MS SQL Servers MS CRM Sécurisation de votre app Il est fort probable que votre app interne utilise des données d’entreprise sensibles, qui doivent être protégées et sécurisées. La plupart des dispositifs de sécurité de base au niveau de l’appareil, par exemple les politiques de mot de passe et l’effacement à distance, peuvent être gérés par vos responsables informatiques. Mais quelles que soient les fonctionnalités de sécurité, il est conseillé de mettre en place une stratégie de sécurisation des données stockées dans vos apps internes. Pour soutenir ce processus de sécurisation des données, iOS adopte une approche de « bac à sable » (sandboxing) et exige que les apps soient signées afin qu’elles ne puissent pas être falsifiées. iOS comprend aussi un framework qui facilite le stockage sécurisé des informations d’identification des apps dans un trousseau chiffré. De plus, il intègre des frameworks de haut niveau permettant de chiffrer les données des apps et de sécuriser les connexions réseau. Vous pouvez exploiter toutes ces capacités dans votre propre processus de développement pour garantir la sécurité de vos apps sans entraver l’expérience utilisateur. « La sécurité a joué un rôle décisif dans notre choix de développer des applications pour iPhone. L’iPhone met à notre disposition la sécurité HTTPS et le trousseau d’accès pour garantir la confidentialité de certains éléments. Nous avons également pu chiffrer les données. » - Keith DeBickes, JM Family Planification • Conception • Développement • Déploiement 22 Apps Astuce : Trousseau d’accès partagé Core Services CF Network •••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• Security Services Keychain Services Certificate, Key, and Trust Services Randomization Services Core OS LibSystem CommonCyrpto Vous pouvez partager des éléments du trousseau d’accès entre plusieurs apps. Ce partage permet aux apps d’une même suite d’interagir de façon plus fluide. Vous pouvez par exemple utiliser cette fonctionnalité pour partager des mots de passe ou d’autres éléments plutôt que d’exiger leur saisie par l’utilisateur dans chaque application. L’accès à des éléments partagés lors de l’exécution passe par l’utilisation de l’interface de programmation des services Keychain avec les groupes d’accès définis pendant le développement. Pour savoir comment accéder au trousseau, consultez le guide de programmation des services Keychain (Keychain Services Programming Guide) sur le portail développeurs iOS. Architecture Les API de sécurité d’iOS sont situées dans la couche Core Services du système d’exploitation et s’appuient sur des services de la couche Core OS (noyau) sous-jacente du système d’exploitation. Les apps appellent directement les API de services de sécurité sans passer par les couches Cocoa Touch ou Media. Les apps réseau peuvent également accéder à des fonctions réseau sécurisées par le biais de l’API CFNetwork, elle aussi située au niveau de la couche Core Services. CFNetwork est une API C de haut niveau permettant de créer, d’envoyer et de recevoir très facilement des messages HTTP sérialisés. Comme CFNetwork repose sur Secure Transport, vous pouvez chiffrer le flux de données à l’aide de l’une des nombreuses versions des protocoles SSL ou TLS. Sécurité réseau Sans nécessiter la moindre écriture de code, iOS prend en charge les services VPN, qui permettent aux apps internes de communiquer avec les réseaux d’entreprise en toute sécurité. Les services informatiques peuvent configurer les réglages VPN intégrés pour IPSec, L2TP ou PPTP ou demander aux utilisateurs de télécharger les apps client VPN SSL de Juniper, Cisco ou F5 sur l’App Store. Pour les configurations utilisant l’authentification par certificat, iOS est compatible avec le VPN à la demande. Le protocole VPN à la demande établit automatiquement une connexion lorsqu’une app accède à des domaines prédéfinis, offrant ainsi une connexion fluide dans les apps internes. Pour les apps nécessitant un accès Wi-Fi, iOS prend en charge le protocole WPA2 Enterprise avec authentification 802.1X. iOS prend également en charge les méthodes d’authentification standard, comme les certificats numériques, les jetons de sécurité, par exemple SecurID ou CRYPTOCard, et l’authentification par mot de passe. Planification • Conception • Développement • Déploiement 23 Sécurité des données Les apps internes peuvent protéger les données sensibles en faisant appel aux fonctionnalités de chiffrement intégrées disponibles sur les appareils Apple de dernière génération. La protection des données associe le code unique de chaque appareil au chiffrement matériel de l’appareil pour générer une clé de chiffrement sécurisée. Lorsque votre app interne indique qu’un fichier est protégé, le système le stocke sur l’appareil sous un format chiffré. Tant que l’appareil est verrouillé, le contenu du fichier est inaccessible aussi bien pour l’app que pour tout intrus potentiel. Lorsque l’utilisateur déverrouille l’appareil, iOS crée une clé de déchiffrement qui permet à l’app d’accéder au fichier. Vous devez concevoir votre app de manière à ce qu’elle sécurise les données au moment de leur création et réagisse aux changements d’accès à ces données quand l’utilisateur verrouille et déverrouille l’appareil. Authentification sécurisée iOS fournit un trousseau chiffré sécurisé pour stocker les identités numériques, les noms d’utilisateur et les mots de passe. Le système d’exploitation segmente les données du trousseau afin que les informations d’identification stockées par des applications tierces soient inaccessibles aux applications ayant une identité différente. Ce mécanisme permet à iOS de sécuriser les informations d’authentification dans un large éventail d’applications et de services au sein de l’entreprise. Sous iOS, les Services de trousseau vérifient la signature d’une app avant de lui donner accès au trousseau et traitent tous les accès au trousseau sans faire intervenir l’utilisateur. Vos apps internes peuvent interagir avec le trousseau via l’API Services de trousseau. Test et validation Les tests de validation des performances, de l’optimisation de l’interface utilisateur, du réseau et de l’utilisation de l’app dans des conditions réelles doivent faire partie intégrante de votre processus de développement. La devise « Test précoce et fréquent » est en effet la clé du succès de tout projet de développement d’une app iOS. Vous pouvez vous assurer que la conception et le code de votre app sont sur la bonne voie en les testant et en les validant à un stade précoce du processus. Vous disposez pour cela de plusieurs méthodes. Nous vous présentons ci-après une synthèse des outils de test iOS que vous pouvez utiliser à des fins d’analyse et de débogage. Analyse statique. Pour repérer les bugs dans votre code avant d’exécuter l’application, demandez à l’outil intégré d’analyse statique Xcode d’analyser des milliers de chemins de code en quelques secondes et d’identifier les bugs potentiels, qui auraient pu ne jamais apparaître ou qui sont presque impossibles à reproduire. Planification • Conception • Développement • Déploiement Astuce : Bibliothèque d’authentification Pour intégrer un dispositif de sécurité élégant à vos apps iOS, vous pouvez créer une bibliothèque d’authentification partagée, que vous pourrez utiliser pour toutes vos apps internes. Vous pouvez intégrer cette bibliothèque d’authentification à vos services d’annuaire existants (LDAP ou Active Directory). De cette manière, à chaque fois que vous créerez une nouvelle app, vous n’aurez pas besoin d’écrire un nouveau code d’authentification. Les informations d’identification étant stockées dans le trousseau d’accès partagé, l’expérience des utilisateurs est améliorée, car il ne leur est pas nécessaire de se connecter à chaque app qu’ils utilisent. Votre bibliothèque peut aussi définir des délais d’expiration selon vos directives informatiques internes. Le partage de ce type de code entre vos apps internes renforce la cohérence de vos politiques comme de l’expérience utilisateur - un avantage aussi bien pour les utilisateurs que pour le service informatique. « Nous avons adopté un système d’authentification par signature unique pour toutes les apps et mis en place des listes de contrôle d’accès pour les apps privées. Ainsi, même si vous téléchargez une app avec l’authentification par signature unique, la procédure transitera par une zone de notre application où nous vérifions si vous possédez un droit d’accès. Dans l’affirmative, vous pourrez télécharger l’app. Dans le cas contraire, vous ne pourrez pas y accéder. » - James Blomberg, General Electric 24 Débogage en temps réel sur l’appareil. Branchez votre appareil pour utiliser le débogueur graphique Xcode ou recueillez les données de performance en temps réel en mode timeline dans Instruments. Ces puissants outils d’optimisation vous permettent d’identifier et de résoudre rapidement tous les problèmes de performance. Vous pouvez afficher des valeurs variables en pointant la souris. Instruments. L’application Instruments est un puissant outil de mesure de la performance, qui vous permet d’observer votre code pendant qu’il est exécuté et de recueillir d’importants indicateurs sur ses performances. Vous pouvez consulter et analyser les données recueillies par Instruments en temps réel ou les enregistrer pour les analyser ultérieurement. Enregistrement des données. Indiquez à Instruments l’app que vous voulez analyser et les instruments que vous voulez utiliser. Cliquez sur le gros bouton rouge pour lancer l’enregistrement. Les données sont collectées et enregistrées en vue d’une analyse ultérieure. Comparaison visuelle. Les données étant enregistrées et affichées dans la durée, il est facile d’identifier les relations entre les différents types de données recueillies et les mêmes données recueillies au cours de plusieurs sessions. Analyse descendante. Repérez les pics de données sur le graphique pour identifier le code exécuté au moment de leur survenue, puis faites appel à Xcode pour résoudre le problème. Lecture répétée. Créez une batterie de tests ad hoc en enregistrant un utilisateur qui interagit avec votre app, puis repassez l’enregistrement pour comprendre en quoi les changements de code affectent la performance. Test automatisé de l’interface utilisateur. L’instrument d’automatisation intégré travaille à partir de scripts (écrits en JavaScript) que vous fournissez pour effectuer la simulation d’événements de votre app. Ces événements simulés sont générés au moyen des interfaces d’accessibilité intégrées à iOS. Vous pouvez utiliser cet instrument pour améliorer le processus de test et travailler les éléments de l’interface utilisateur de votre app pendant qu’elle est exécutée sur un appareil connecté. Étape suivante Comme indiqué dans ce chapitre, les outils et ressources fournis dans le SDK iOS vous permettent de créer rapidement des apps époustouflantes, qui tirent pleinement parti des capacités d’iOS et de l’appareil. De plus, avec le SDK iOS, vos apps sont immédiatement prêtes à être déployées. Beaucoup d’équipes de développement en entreprise adoptent en effet une approche itérative au cours du processus de développement : elles développent et déploient fréquemment les apps tout au long du cycle de vie du projet. Avec les outils de test et de validation intégrés associés à un modèle de sécurité qui protège les données de votre entreprise, vous pouvez déployer vos apps auprès d’utilisateurs et de groupes de toute taille. Le chapitre suivant vous guide à travers chaque étape du processus de distribution des apps et vous aide à mettre sur pied une stratégie adaptée à votre environnement professionnel spécifique. Planification • Conception • Développement • Déploiement L’application Instruments recueille et affiche les données en temps réel, par exemple l’utilisation des disques, de la mémoire et du processeur, ce qui permet de localiser facilement les problèmes. « Static Analyzer a été un outil très précieux pour nous. Il peut rechercher les problèmes sans qu’il soit nécessaire d’exécuter les apps. Static Analyzer a été capable de trouver immédiatement ce que nous aurions pu mettre des semaines ou des mois à déboguer ou que nous n’aurions peut-être jamais trouvé. » - Mark McWilliams, Razorfish 25 Déploiement Lorsque le développement et le test du code de votre app sont terminés, vous devez effectuer quelques tâches importantes avant que l’app ne soit prête à être utilisée. Pour préparer votre app à la distribution, vous devez obtenir un certificat de distribution en entreprise auprès d’Apple et signer votre code dans Xcode. Une fois votre projet Xcode prêt à être déployé, vous pouvez héberger votre app interne sur votre propre serveur web en toute sécurité et la distribuer directement par Wi-Fi et 3G. Ce chapitre décrit les processus de déploiement et de gestion du cycle de vie de votre app. Préparation du lancement Check-list Déploiement À la fin de la phase de déploiement, vous devriez avoir : créé les certificats d’entreprise et les profils d’approvisionnement mis en place un serveur web de distribution ou une solution pour distribuer les apps sans fil annoncé la solution aux utilisateurs finals Pour initier le processus de déploiement, vous devez certifier et approvisionner votre app dans le cadre du programme pour développeurs iOS en entreprise (iOS Developer Enterprise Program), puis signer et assembler votre projet dans Xcode. En suivant un processus simple en trois étapes, vous serez prêt à distribuer votre app directement depuis Xcode. 1. Créer et télécharger un certificat de distribution. Pour distribuer votre app iOS, l’agent désigné lors de votre adhésion au programme pour développeurs doit créer un certificat de distribution. Seul l’agent de votre équipe est autorisé à créer ce certificat et seul ce certificat permet la distribution de l’app en entreprise. Vous trouverez de plus amples informations et les instructions de création et de téléchargement d’un certificat de distribution en entreprise sur le portail d’approvisionnement iOS, à l’adresse http://developer.apple.com/ios/manage/overview/. 2. Créer et télécharger un profil d’approvisionnement. Lorsque vous êtes prêt à déployer votre app, vous devez créer un profil d’approvisionnement en entreprise. Ces profils pouvant être installés sur n’importe quel appareil, cette méthode est adaptée à la distribution à grande échelle au sein de votre entreprise. Coup d’œil : Portail d’approvisionnement Le portail d’approvisionnement iOS vous accompagne tout au long des étapes vous permettant de tester vos apps sur des appareils iOS et de les préparer en vue de leur distribution. Vous utiliserez le portail d’approvisionnement iOS pour de nombreuses étapes décrites dans ce chapitre, notamment pour la création des certificats et des profils d’approvisionnement. Visitez le Member Center du centre de développement iOS (iOS Dev Center) pour trouver le portail, sur lequel des informations complémentaires utiles vous sont également proposées. Les profils d’approvisionnement correspondent à votre certificat de distribution, ce qui vous permet de créer des apps que les utilisateurs peuvent exécuter sur leurs appareils iOS. Vous créez un profil d’approvisionnement pour une app particulière ou plusieurs apps, en indiquant l’identifiant AppID autorisé par le profil. Si un utilisateur dispose d’une app sans posséder le profil qui autorise son utilisation, il ne pourra pas utiliser l’app. Puisque ces profils sont liés à votre certificat, l’application ne s’exécutera plus si vous révoquez le certificat ou si celui-ci expire. Il existe deux types de profils d’approvisionnement : Ad hoc et Entreprise. Les profils d’approvisionnement Ad hoc sont limités à des identifiants d’appareils spécifiques. Ils ne peuvent donc s’appliquer qu’aux appareils ayant été identifiés (au moyen de leur identifiant) et transférés sur le portail du programme pour développeurs. Les profils Ad hoc sont plus adaptés aux procédures de test interne ou aux programmes bêta limités, car ils ne peuvent pas aller au-delà de 100 appareils et génèrent un coût administratif important (puisqu’il faut ajouter les identifiants des appareils sur le portail du programme). Planification • Conception • Développement • Déploiement 26 Il est important de souligner qu’un profil d’approvisionnement n’est pas un mécanisme de sécurité. S’il requiert une autorisation de base permettant d’exécuter une app, il n’implique pas une authentification de l’utilisateur ni une quelconque protection des données utilisées ou consultées dans votre app. Il est toujours recommandé de sécuriser l’app elle-même par des mécanismes internes. Comme expliqué au chapitre « Développement » de ce guide, vous pouvez mettre en œuvre une multitude de fonctionnalités de sécurité et de frameworks iOS dans votre app interne. Par exemple, l’un des moyens les plus efficaces de sécuriser votre app est de créer une bibliothèque standard pour l’authentification des utilisateurs. 3. Signer et assembler dans Xcode. Après avoir installé le certificat de distribution et le profil d’approvisionnement, vous devez signer votre code dans Xcode. Pour plus d’informations sur le processus de signature de code, suivez les instructions pas à pas publiées sur le portail d’approvisionnement pour développeurs. Lorsque vous avez signé votre app, Xcode l’assemble en vue de sa distribution en entreprise selon un processus d’exportation simple. Xcode Organizer vous permet de partager un projet qui a été ajouté à votre archive et de sélectionner les options de distribution en entreprise. Ce processus assemble automatiquement l’app, le profil d’approvisionnement et d’autres éléments requis pour la distribution sans fil. Distribution Une fois l’app assemblée, vous pouvez la distribuer en l’hébergeant sur un simple serveur web interne, en créant votre propre catalogue d’apps internes ou en faisant appel à une solution tierce de gestion des appareils mobiles. La solution la mieux adaptée à votre cas dépend de vos besoins spécifiques, de votre infrastructure et du niveau de gestion des apps que vous recherchez. Planification • Conception • Développement • Déploiement Coup d’œil : Xcode Organizer L’Organizer est une fenêtre unique permettant de gérer les projets Xcode, les référentiels SCM, les apps archivées et les appareils - incluant la configuration en un clic des nouveaux appareils iOS utilisés pour le développement. Concernant la distribution des apps, l’Organizer est la bibliothèque centrale à partir de laquelle les apps peuvent être partagées (exportées) afin d’être distribuées dans l’entreprise. L’Organizer peut également servir à installer des apps internes et des profils d’approvisionnement sur les appareils connectés. 27 Processus de distribution d’app sans fil La méthode de distribution la plus simple est l’hébergement de l’app sur un serveur web. Il vous suffit de procéder comme suit : 1. Hébergez votre app sur un serveur web auquel vos collaborateurs ont accès. 2. Informez vos utilisateurs - par e-mail, SMS, notification push ou toute autre méthode disponible sur les appareils iOS - que l’app est disponible. N’oubliez pas d’indiquer l’URL de l’app. 3. Touchez l’URL pour installer l’app. Une boîte de dialogue demande aux utilisateurs s’ils souhaitent procéder à l’installation. Pour savoir comment créer votre propre service de distribution d’apps sans fil, visitez le site http://developer.apple.com/library/ios/navigation/. Catalogue d’apps internes Votre équipe peut aussi créer un catalogue interne, offrant un portail pour la distribution sans fil de vos apps iOS. Ce modèle en libre-service demande un minimum d’effort de la part des collaborateurs pour télécharger et installer les apps. Le catalogue peut fournir directement les URL de téléchargement des apps, ce qui permet d’installer et de mettre à jour plusieurs apps simultanément, tout en accélérant le déploiement et la configuration. Une app web ou native - optimisée pour l’iPhone ou l’iPad - représente une méthode encore plus simple de mettre les URL à disposition de manière organisée et conviviale. À titre informatif, découvrez un exemple de catalogue d’apps internes ci-contre, à la section « Étude de cas : L’App Store interne de GE ». Gestion des mises à jour Les apps d’entreprise développées et distribuées en interne ne sont pas mises à jour automatiquement. Vous devez informer vos collaborateurs qu’une mise à jour est disponible et les inviter à installer l’app. Si l’identifiant d’application affecté à l’app dans Xcode n’a pas changé, l’app sera reconnue comme une app existante et la mise à jour sera installée, les données de l’app stockées localement et les préférences étant conservées. Pour plus de commodité, pensez à intégrer une fonction dans l’app qui contacte le serveur pour vérifier si des mises à jour sont disponibles quand l’app est exécutée. Dans le cadre de la distribution d’apps sans fil, vous pouvez fournir un lien vers l’app mise à jour directement dans votre app. Si vous créez une application de catalogue d’apps natives, vous pouvez utiliser les services de notification push pour informer les utilisateurs que des mises jour sont disponibles au moyen d’une alerte ou d’un indicateur sur l’icône. Gestion des appareils mobiles De nombreuses solutions tierces de gestion des appareils mobiles proposent des options de distribution sans fil prêtes à l’emploi. La gestion des apps internes dans un environnement géré permet notamment de contrôler les versions et de vérifier quelles versions de votre app sont exécutées par les différents utilisateurs. Beaucoup de solutions de gestion des appareils mobiles Planification • Conception • Développement • Déploiement Étude de cas : L’App Store interne de GE Le groupe de travail mobile interne de GE, le Mobile Center for Excellence, ne se contente pas de développer des apps de pointe. Il a aussi créé un portail web interne, l’App Store interne de GE, afin de simplifier le téléchargement des apps développées par la société pour les plus de 300 000 salariés qu’elle emploie. « Nous avions besoin d’un outil efficace pour distribuer les applications mobiles en interne », explique James Blomberg, directeur du département Nouveaux médias et technologies émergentes chez GE. « Nous avons des apps sur l’App Store d’Apple, mais nous avions aussi besoin d’une plate-forme privée pour les applications de GE qui ne doivent pas être partagées avec le monde entier. » Depuis son lancement en 2009, l’App Store de GE a vu passer des dizaines de milliers de visiteurs internes et enregistré plus de 100 000 téléchargements. Lorsque de nouvelles apps sont disponibles, le groupe en fait la promotion sur un portail Intranet de la société, ainsi que par le biais des messages et du bouche-à-oreille au sein du Mobile Center of Excellence de GE, composé de 200 membres issus de tous les principaux secteurs d’activité du groupe. Le succès de l’App Store s’explique en partie par son design à la fois simple et efficace. « L’interface est riche, mais très facile à utiliser », commente Dayan Anandapa, directeur du département Technologies numériques et collaboration chez GE. « Une fois que vous êtes enregistré, il vous suffit de cliquer sur une URL pour être guidé à travers le processus de téléchargement. Comme les appareils sont intuitifs, nous voulons que l’installation soit, elle aussi, intuitive. » Dans une société aussi grande et diversifiée que GE, toutes les apps développées en interne ne s’adressent pas à tous les utilisateurs. Pour que les apps soient accessibles aux seuls utilisateurs autorisés, la société a mis en place un système d’accès à deux niveaux. « Nous avons adopté un système d’authentification par signature unique pour toutes les apps, complété par des listes de contrôle d’accès pour les apps privées », précise Blomberg. L’App Store interne de GE contribue à sensibiliser l’ensemble des collaborateurs aux ressources mobiles de GE, tout en simplifiant le processus de téléchargement des apps. Mais il présente d’autres avantages. « Il sert de référentiel, de plate-forme centralisée de partage des connaissances entre nos différents secteurs d’activité », poursuit Blomberg. « Et il crée vraiment de nouvelles relations. Des personnes qui ne se connaissaient pas travaillent aujourd’hui ensemble. Dans l’ensemble du groupe GE, on voit se développer une multitude de collaborations et de communications grâce aux technologies mobiles. » 28 proposent en outre des services de notification push, servant à informer les utilisateurs de la disponibilité de mises à jour et de nouvelles apps. Et comme les solutions de gestion des appareils mobiles peuvent mettre en place des configurations réseau et des politiques de sécurité, c’est le moyen idéal de transférer les réglages directement sur l’appareil, au moment où l’app est installée (par exemple, certificats VPN ou Wi-Fi). Pour plus d’informations sur les solutions de gestion des appareils mobiles, rendez-vous l’adresse www.apple.com/fr/iphone/business/integration/mdm. Lancement de votre solution Félicitations ! Vous avez conçu, développé et déployé une app iOS pour vos collaborateurs. Il ne vous reste plus qu’à le faire savoir au sein de votre organisation. Si les utilisateurs ne savent pas qu’elle existe, même une app de qualité très innovante ne sera pas adoptée ou ne générera pas le retour sur investissement attendu. Vous disposez de nombreux moyens pour informer vos utilisateurs. Voici quelques idées qui pourront inspirer votre campagne de lancement et de communication : • Vous pouvez faire la promotion de vos dernières apps sur l’Intranet de votre entreprise. • Sur votre Intranet, créez un site dédié aux apps iOS, où les utilisateurs pourront publier des commentaires, participer à des forums, etc. • Proposez aux utilisateurs une vidéo de démonstration présentant l’app en action pour qu’ils comprennent les avantages de la solution. • Envoyez des e-mails et des lettres d’information pour sensibiliser les utilisateurs à vos solutions. • Accrochez des affiches et d’autres visuels à des endroits stratégiques afin que vos collaborateurs découvrent l’app quand ils se déplacent dans votre bureau ou sur le campus de votre entreprise. Exemple : Communications internes En annonçant à ses utilisateurs le lancement de nouvelles apps développées en interne, Genentech fait de la communication des fonctionnalités et des avantages de chaque solution une priorité absolue. Tout comme un développeur commercial mettrait au point une campagne de lancement, Genentech a créé des supports marketing internes uniques pour chaque nouvelle app maison. Ces efforts ont eu un impact immédiat, contribuant à faire découvrir et adopter les nouvelles apps par le plus grand nombre. • Dans la mesure du possible, envoyez aux utilisateurs des notifications push pour les informer de la disponibilité de nouvelles apps ou de mises à jour logicielles importantes. • Enrichissez votre catalogue d’apps internes de captures d’écran et de vidéos de démonstration de votre app pour leur faire découvrir son utilité. Étape suivante Le déploiement et lancement de votre app ne marquent pas la fin du processus - en fait, ce n’est que le début. À chaque fois que l’une de vos apps rencontrera un succès, les utilisateurs en réclameront d’autres à cor et à cri. Ce guide n’est qu’un point de départ pour votre équipe de développement. Outre ce guide, le programme pour développeurs iOS met à votre disposition une mine de ressources d’apprentissage, de bonnes pratiques, de conseils et de techniques. Entrez en contact avec d’autres développeurs dans les forums développeurs ou téléchargez des vidéos pour découvrir plus de fonctionnalités avancées de la plate-forme. Les possibilités sont illimitées. Planification • Conception • Développement • Déploiement 29 Ressources d’apprentissage complémentaires Vous souhaitez faire passer vos efforts de développement en interne à la vitesse supérieure ? Les ressources d’apprentissage avancées présentées ci-après approfondissent le sujet et proposent des informations techniques détaillées sur les principaux aspects du développement d’apps en interne. Vidéos WWDC Pour découvrir des vidéos où les ingénieurs et experts Apple expliquent comment innover avec les dernières technologies Apple, visitez le site http://developer.apple.com/videos/ wwdc/2010/ Podcast de l’université de Stanford Découvrez les outils et API requis pour développer des apps pour iPad, iPhone et iPod touch. Le podcast « Développement d’apps pour iOS » de l’université de Stanford étudie la conception d’interfaces utilisateur pour les appareils mobiles, les interactions utilisateur uniques permises par la technologie Multi-Touch, Core Animation et bien plus. Cette série est disponible sur iTunes ou à l’adresse http://itunes.apple.com/fr/itunes-u/developing-appsfor-ios-hd/id395605774 Big Nerd Ranch Profitez d’une introduction complète au développement iOS avec ce cours de sept jours qui vous enseignera les bases d’Objective-C et du SDK iOS. Pour plus d’informations sur l’offre de Big Nerd Ranch en Europe, visitez le site www.bignerdranch.com/locations/netherlands Pragmatic Studio Des podcasts sur la création d’apps iOS complètes pour développeurs de niveau débutant ou intermédiaire sont disponibles sur iTunes. Pour en savoir plus, rendez-vous à l’adresse https://itunes.apple.com/fr/podcast/pragmatic-studio-bonus-tracks/id312552710?mt=2 © 2013 Apple Inc. Tous droits réservés. Apple, le logo Apple, Bonjour, Cocoa Touch, Dashcode, iMac, Instruments, iPad, iPhone, iPod, iPod touch, iTunes, le logo iTunes, Keychain, Mac, MacBook, MacBook Air, Safari et Xcode sont des marques d’Apple Inc., déposées aux États-Unis et dans d’autres pays. Multi-Touch est une marque d’Apple Inc. Apple Store est une marque de service d’Apple Inc., déposée aux États-Unis et dans d’autres pays. App Store est une marque de service d’Apple, Inc. Le terme et les logos Bluetooth® sont des marques déposées détenues par Bluetooth SIG, Inc. et utilisées sous licence par Apple. Intel et Intel Core sont des marques d’Intel Corp. aux États-Unis et dans d’autres pays. UNIX est une marque déposée de The Open Group. Les autres noms de produits et de sociétés mentionnés sont des marques de leurs sociétés respectives. Les informations contenues dans ce document sont fournies à titre indicatif uniquement ; Apple n’assume aucune responsabilité quant à leur utilisation. 30