CM APP-Mobile-ENSI3a-2015-16
Transcription
CM APP-Mobile-ENSI3a-2015-16
18/01/2016 Application Web le Web Mobile Hubert Segond – Orange Labs ENSI 2015-16 Plan du cours Introduction Web mobile OS mobile Application native WebApp Développement applications mobiles Application mobile hybride 2 1 18/01/2016 Introduction Le Web mobile a depuis quelques années envahie le quotidien de concepteur de sites web. Aujourd'hui, smartphones et tablettes font partie intégrante du parc de terminaux sur lesquels nous consultons différents sites web avec plus ou moins d’efficacité quand ces derniers ne s’affichent pas correctement. Le Web mobile requiert ainsi une conception et un développement adapté pour pouvoir être efficace sur les terminaux. 3 Web mobile Le Web mobile a été initialement proposé pour la productivité et la récupération d’information, tel que le mail, calendrier, contacts, marchés boursiers et informations météorologiques (souvent en technologie Wap au départ). La demande du public et la disponibilité d’outils de développement ont conduit à une expansion rapide dans d’autres domaines, comme les jeux mobiles, les GPS, les opérations bancaires, applications médicales et de divers domaines. Le nombre de téléchargements d’applications mobiles est actuellement en forte hausse. 4 2 18/01/2016 Statistiques Systèmes d’exploitation mobiles 1/2 Il existe plusieurs systèmes d’exploitation mobiles (OS) dont les plus répandus sont les suivants: – Android (Google) qui anime un grand nombre de smartphones tels que Samsung, HTC, LG, Motorola… – iOS (Apple) utilisé sur iPhone et iPad. – Blackberry OS – Firefox OS – Windows Phone (Microsoft) – Symbian (Nokia) – Bada (Samsung) 6 3 18/01/2016 Systèmes d’exploitation mobiles 2/2 iOS, Android et Windows Phone représentent les systèmes les plus courants avec chacun leurs propres propriétés et interface utilisateur. Windows Phone propose une interface similaire au PC et Tablette et peut faciliter la prise en main pour un néophyte. BlackBerry OS se recentre sur l’offre entreprise A chaque OS mobile correspond une technologie et un « store » où les applications peuvent être téléchargées, de manière gratuite ou payante. 7 Application native vs. Application web mobile Deux principales directions: – Application native – ou Application Web mobile ou Web App. Les applications natives sont téléchargées et installées au cœur du système. A l’inverse les Applications Web mobile sont accessibles via le navigateur web de l’appareil et nécessite aucune installation. 8 4 18/01/2016 Qu’est ce qu’une Application native ? Une application native est une application dédiée à un périphérique mobile (Smartphone, Tablette…). Est installée directement sur l’appareil dès la conception ou par la suite par Les utilisateurs par le biais d’une boutique en ligne ou un store en ligne comme l’App Store ou Google Play. Des exemples d’applications natives avec la messagerie, la vidéo (Camera), GPS (Waze ou Mappy) etc… Une partie des applications disponibles sont gratuites tandis que d’autres sont payantes. 9 Qu’est ce qu’une Application Web Mobile ? Une application web mobile (ou WebApp) est une application utilisée via Internet et possédant des fonctionnalités spécifiques pour les appareils mobiles. Elles sont accessibles via le navigateur Web de l’appareil mobile (Safari sur iPhone par exemple) et n’ont pas besoin d’être téléchargés et installées sur l’appareil pour fonctionner. une WebApp est donc un site internet créé spécialement pour les Smartphones. 10 5 18/01/2016 Comparaison entre Application native et WebApp Principaux critères de comparaison entre Application native et WebApp – – – – – – Expérience utilisateur Interface utilisateur Fonctionnalités Développement/coût Mise à jour Points forts / faiblesses Le processus de développement et donc le coût vont être impactant dans le choix. L’expérience utilisateur est également différente entre les deux approches. 11 Interface utilisateur Peu de différence générale entre les deux, pour une expérience utilisateur cohérente. 12 Application native (iPhone) WebApp (Safari sur iPhone) source Internet source Internet interne Orange 6 18/01/2016 Développement Applications natives Chaque plate-forme de développement d'applications mobiles (iOS, Android) nécessite son propre processus de développement. Chaque plate-forme de développement d'applications mobiles possède son propre langage de programmation natif: Java (Android), Objective-C (iOS), Visual C++ (Windows Phone), etc. Les kits de développement de logiciels (SDK), les outils de développement et des éléments d'interface utilisateur standard (boutons, champs de saisie de texte, etc) sont souvent fournis par le fabricant de la plate-forme. 13 Développement WebApps Chaque navigateur possède ses propres fonctionnalités et interprétation de certains codes. Les applications Web mobiles sont écrites en HTML5, CSS3, JavaScript côté client et au choix du client ou du développeur côté serveur (par exemple, PHP). Pas de kits de développement de logiciels (SDK) que les développeurs doivent absolument utiliser pour créer une application web mobile. 14 7 18/01/2016 Coûts de développement Une application native va être propre à un système d’exploitation (selon le téléphone mobile). Une application native pour iPhone n’est pas du tout faite comme une application native pour Android ou Windows Phone. Il faut d’ailleurs bien souvent reprendre toute la partie “création” à zéro (ou presque). Le coût de développement s’en fait donc ressentir. De plus, les processus de soumission sur les stores étant parfois longs, les mises à jour d’application peuvent être longues. Une Web App quant à elle fonctionne dans un navigateur Internet, et peut donc théoriquement s’exécuter sur n’importe quel téléphone disposant d’un navigateur. Sa mise à jour se fait de manière transparente pour l’utilisateur. 15 Installation Applications natives Doit être téléchargés pour ensuite être installée sur le téléphone. Une fois installée, fonctionne comme une application autonome. Les utilisateurs doivent télécharger et installer manuellement les mises à jour. Les stores des fabricants aident les utilisateurs à trouver votre application 16 8 18/01/2016 Installation WebApp Pas besoin d'installer un nouveau logiciel, elle fonctionne via la navigateur de l’appareil. Les mises à jour sont effectuées sur le serveur Web sans intervention de l'utilisateur Toutefois, il peut être nécessaire d’utiliser le bon navigateur ou sa dernière version 17 Applications natives Points forts – S’exécute généralement plus rapidement. – Les App Stores aident les utilisateurs à trouver des applications natives. – Le processus d'approbation des applications mis en place par l’App Store peut contribuer à rassurer les utilisateurs sur la qualité et la sécurité de l'application. – Les outils, le soutien et la mise à disposition de bonnes pratiques fournies par les fabricants de périphériques peuvent aider à accélérer le développement. Points faibles – Généralement plus coûteuses à développer, surtout si le développement porte sur de multiples appareils mobiles. – Prendre en charge plusieurs plates-formes nécessite la gestion de plusieurs codes et peut entraîner des coûts plus élevés en matière de développement, de maintenance, de mise à disposition des mises à jour. – Les versions présentes sur les mobiles peuvent être différentes, ce qui peut rendre la maintenance difficile et ne facilite pas le support utilisateurs. – Le processus d'approbation App Store peut retarder le lancement de l'application ou d'empêcher la mise à disposition de l'application pour les utilisateurs 18 9 18/01/2016 Web Apps Points forts – Base de code commune sur toutes les plateformes. – Les utilisateurs n'ont pas à aller sur un store, ils utilisent l’application depuis le navigateur web. – Peut être lancée sous n'importe quelle forme et à n'importe quel moment, aucun tiers (App Store) devant au préalable approuver l'application. Points faibles – Ne peuvent pas toujours accéder à toutes les fonctionnalités de l'appareil. – Supporter plusieurs navigateurs Web mobiles peut se traduire par des coûts plus élevés en matière de développement et de maintenance. – Difficulté pafois de trouver une application web mobile en raison de l'absence d'un store centralisé 19 Expérience utilisateur 1/2 Une application native sera généralement plus rapide et réactive qu’une Web App selon le téléphone (iPhone vs, Android par exemple) L’application native va également pouvoir accéder aux fonctionnalités du téléphone : répertoire, SMS, appareil photo, GPS… Possible d’envoyer à l’utilisateur des notifications (notifications Push, car « poussées » depuis un serveur vers le smartphone) pour communiquer des informations diverses, ce que ne permet pas globalement une Web App. 20 10 18/01/2016 Expérience utilisateur 2/2 La Web App s’exécute dans le navigateur du téléphone, et il n’est pas toujours possible de masquer les éléments de navigation (barre d’adresse en haut, barre de navigation en bas par exemple). Contrairement à une application native qui elle va s’exécuter en plein écran. La Web App a un avantage majeur pour la navigation de l’utilisateur : il peut facilement passer d’un site internet à la Web App, puis repartir sur un autre site internet, sans avoir à quitter son navigateur. Avantages de l’application native : une exécution en plein écran, une réactivité et une rapidité plus agréable, accès aux fonctionnalités du téléphone Avantage de la Web App : continuité dans la navigation de l’utilisateur. 21 Marketing et communication Les applications sont maintenant des outils connus de tous, et le public est habitué à en entendre parler, et à en installer. Il est donc simple dire que l’on est disponible sur iPhone ou Android. La WebApp quant à elle est moins connue du grand public, et donc plus difficile à expliquer et marketer. Le public peut ne pas comprendre et se mélanger entre site internet et application, ne sachant pas vraiment comment trouver cette web-application. 22 11 18/01/2016 En résumé Que l’on décide de choisir une application native ou une WebApp, il n’y a pas de miracles : elle ne marchera pas sur tous les téléphones du marché. Dans le cas de la WebApp, tous les navigateurs sont différents et interprètent de manière différente, donc de petites différences peuvent survenir. Les diverses tailles d’écran peuvent aussi réserver quelques surprises. Dans le cas des applications natives, les outils de développement évoluent et deviennent plus puissants. Les applications qu’ils permettent de créer demandent de plus en plus de ressources, et les téléphones les plus anciens sont de plus en plus inexploitable. Plutôt que de choisir entre WebApp et Application native il est judicieux de propose les deux alternatives aux utilisateurs (ex Facebook) 23 Développement Application Mobile 1/2 PhoneGap: est un framework open-source développé par Adobe et basé sur Apache Cordova. Il permet de créer des applications mobiles pour différentes plateformes (Android, iOS, Windows Phone…) en HTML, CSS et JavaScript. AngularJS: est un framework JavaScript open-source développé par Google. Il est fondé sur l’extension du langage HTML par de nouvelles balises (tags) et attributs pour aboutir à une définition déclarative des pages web. 24 12 18/01/2016 Développement Application Mobile 2/2 ionic: est un open-source pour le développement de l’application hybride. Construit sur angularjs et Cordova, ionic fournit des outils et des services pour le développement d’applications mobiles hybrides utilisant les technologies web comme le HTML5, CSS. Les applications peuvent être construits avec ces technologies web et ensuite distribués par le biais des stores d’applications natives Cordova: est un framework open-source développé par la Fondation Apache. Il permet de créer des applications pour différentes plateformes (Android, Firefox OS, iOS, Ubuntu, Windows 8…) en HTML, CSS et JavaScript 25 Réalisation d’une application mobile Analyse: Identifier les besoins des utilisateurs potentiels de l’application mobile. Déterminer les usages, les fonctionnalités pertinentes. Modélisation: Définir de manière formelle et exhaustive, chaque composant de l’application mobile. MOODLE MOBILE Guillaume Blot 26 [email protected] 13 18/01/2016 Exemple de réalisation avec WebIDE et émulateur Firefox OS WebIDE permet de créer, éditer, lancer et déboguer des applications web en utilisant le Simulateur Firefox OS ou un appareil sous Firefox OS. Il permet également de connecter les outils de développement de Firefox à certains navigateurs, dont : Firefox pour Android, Chrome pour Android, et Safari dans iOS. 27 Exemple de réalisation avec HTML5, CSS3 et JavaScript HyperText Markup langage (HTML) est le socle de tout processus de développement web. Son rôle est de formaliser l'écriture d'un document avec des balises de formatage. Les balises permettent d'indiquer la façon dont doit être présenté le document et les liens qu'il établit avec d'autres documents. Sa version 5.0 apporte de nouvelles possibilités en termes de création d'applications Web riches bénéficiant de l'intégration d'éléments multimédias et d'interactivité. Les feuilles de style en cascade, généralement appelées CSS, forment un langage informatique qui décrit la présentation des documents HTML et XML. JavaScript est un langage de programmation orienté évènement qui est utilisé pour la transformation des pages web statiques en interfaces dynamiques. 28 14 18/01/2016 29 Application mobile Hybride Une application hybride combine des éléments HTML5 sous forme de web application et des éléments d’une application native, Ceux-ci permettent d’utiliser les fonctionnalités natives des Smartphones. De plus elle pourra être distribuée en tant qu’application sur les plateformes d’applications (App Store, Android Market, etc.). Le principe de l’application hybride permet de réduire les coûts et délais de développement. Cependant la qualité, la performance, et la résolution de ces applications sont nettement inférieures à celles des applications natives. En effet l’application hybride peut ne pas bien s’adapter au système d’exploitation utilisé par le smartphone du mobinaute (interface polluée par des widgets inutiles, mauvaise résolution etc.). En plus les applications hybrides ne sont accessibles que sur iPhone et Android, et sont parfois refusées sur certaines plateformes d’applications. 30 15 18/01/2016 Application mobile Hybride architecture 31 Application mobile Hybride architecture PhoneGap fournit une API JavaScript multi-plateforme pour accéder aux fonctions des appareils (ex. appareil photo, GPS, carnet des contacts…). 32 interne Orange 16 18/01/2016 Comparaison (source IBM) 33 Typologie des interfaces 34 17