• Aucun résultat trouvé

I. Introduction

Le Smartphone est un téléphone disposant des fonctions similaires à celles d'un assistant numérique personnel (PDA). Les fonctions les plus courantes concernent l'accès à Internet, le courrier électronique, la gestion d'emploi du temps et de carnet d'adresses. La plupart des téléphones mobiles sont maintenant équipés d'appareil photo numérique et de GPS et peuvent lire des mp3 et des vidéos ainsi que des fichiers dans divers formats (Word, PDF, ...). Pour prendre en compte ces fonctionnalités, les systèmes d'exploitation mobile (Android, iOS, Windows phone 8.1 et Blackberry OS) se concentrent sur la gestion de la configuration matérielle, des différents types d’interfaces, etc.

Dans ce qui suit, nous présentons une classification des différents types d’applications mobiles, ensuite, nous citons les outils qui permettent le développement des applications mobiles de type hybride (native et Web).

II. Les types d’application mobile :

Actuellement, nous recensons 3 principaux types d’applications mobiles [mangotreestudios, 2013]: a) Les applications natives :

Ces applications correspondent à des logiciels crées uniquement pour une plateforme mobile. Le développement de ces logiciels se fait au travers du SDK (Software Development Kit) de la plateforme mobile choisie. Le nom de ces applications vient du fait qu’elles sont développées avec l’utilisation de langages « natifs » comme par exemple le langage JAVA ou le langage Objective-C. b) Les applications WEB :

Ces applications correspondent à des sites web qui sont conçus spécialement pour un affichage sur mobile optimisé. Pour accéder à ces sites web, on utilise le navigateur internet disponible sur le mobile. Ces applications mobiles sont développées principalement à partir de technologies web comme HTML5 ou encore CSS3. Grâce au support HTML5 il est possible d’accéder à environ 80% des fonctions présentes sur le mobile. Par exemple cela permet d’accéder à la géolocalisation, à l’accéléromètre, gérer la fonction multitouche ou encore permettre la synchronisation offline lorsque le mobile perd et retrouve sa connexion par la suite.

Ces applications web peuvent être de deux sortes : (1) Génériques : c’est-à-dire qu’elles sont compatibles avec toutes les plateformes mobiles et donc utilisables sur toutes ces plateformes ou (2) conçues spécialement pour un genre de support en particulier.

c) Les applications mobile de type hybride :

Ces applications sont considérées comme un mix à la fois entre les applications natives et les applications web. En effet, elles sont compatibles avec toutes les plateformes mobiles. Ces applications sont principalement développées à l’aide d’HTML, CSS ou JavaScript. Ainsi, une application hybride, contrairement à une application native, n’est pas dépendante d’une plateforme mobile en particulier. De la même manière, contrairement aux applications web, les applications hybrides peuvent accéder à toutes les fonctions présentes sur le mobile. Cela est rendu possible par des liens faits entre le langage natif et la technologie web présents dans l’application hybride.

Dans le cadre de notre scénario de type sortie pédagogique, nous nous sommes intéressés aux applications hybrides car elles combinent les points forts des applications natives et web.

III. Outil de développement des applications mobiles de type hybride :

a) Phonegap

Phonegap32 est une solution hybride qui utilise une bibliothèque permettant d'accéder depuis le JavaScript d'une page Web à de nombreuses ressources matérielles de l'appareil mobile. Le système de callback permet l’intégration de cette bibliothèque avec le JavaScript. Cependant, Phonegap ne gère pas l'interface utilisateur qui est entièrement laissée à la charge de l'utilisateur et du navigateur embarqué. La présentation se fait donc à l'aide de CSS, de bibliothèques JavaScript tierces, ou des langages spécialisés. Enfin, nous notons que Phonegap est une petite bibliothèque gratuite et extensible qui permet d’accéder à de nombreuses ressources matérielles.

b) Rhomobile

La société Rhomobile33 propose une série d'outils et de solutions de développement pour les parties clientes et serveur des applications. « Rhodes » est le Framework que propose « Rhomobile » pour le développement d'applications mobiles. Le développement se fait dans Eclipse à l'aide du plugin « Rho Studio » et du debugger « Rho Debugger ». Une application « Rhodes » est une application hybride pouvant accéder à certains « widgets » et aux ressources matérielles des appareils. Le serveur RhoConnect permet d'interfacer et de synchroniser très simplement les données de l'application avec celles hébergées par un site Web. « RhoHub » permet de développer son application en ligne, de la déployer et d'héberger un serveur de synchronisation des données.

c) AppceleratorTitanium

Titanium est une API et une plate-forme JavaScript éditées par « Appcelerator ». Elle permet de créer des applications natives et offre une API supportant une grande quantité de ressources

32 http://phonegap.com/ 33 http://rhomobile.com/

matérielles. Appcelerator fournit également un IDEbasé sur Eclipse, « Titanium studio », qui permet de compiler et tester son code à la volée. Cependant, Titanium souffre de deux inconvénients majeurs. Le premier est qu'il faut une connexion Internet permanente pour pouvoir utiliser « Titanium Studio », cela signifie que si on perd sa connexion ou si le site de Titanium34 est en maintenance, alors on ne peut plus travailler. Le second inconvénient est la documentation : il y a beaucoup d'outils mais l'information y est divisée et aucun d'eux n'est vraiment exhaustif, on peut passer de précieuses minutes (voire heures) à chercher une information.

d) Adobe Flex

Le développement mobile « Flex » profite de l'intégration des différents outils Adobe. L'environnement de développement « Adobe Flash Builder35 » est très complet, depuis l'intégration au workflow des outils graphiques comme Photoshop ou Fireworks jusqu'au monitoring des communications entre le serveur et l'application. « Flash Builder » permet de construire graphiquement son application à la manière d'un « Interface Builder ». Les points négatifs se retrouvent au niveau de l'ergonomie : il y a des problèmes de fluidité et de performance lors de la navigation dans de grosses applications, et il n'existe pas pour le moment de "Template" complet pour imiter complètement un aspect natif.

e) Sencha Touch

Sencha Touch36 est la solution la plus indiquée si l'on souhaite réaliser une application HTML/Javascript esthétiquement identique à une application mobile native. Cette solution est construite sur une architecture objet JavaScript entièrement créée par l’équipe de « Sencha » et permet d'utiliser le design pattern « Model View Controller » pour une meilleure maintenabilité et une meilleure évolutivité. En outre, il faut prévoir un peu de temps pour une formation basique qui est plutôt bien documentée. Cependant, pour traiter les situations plus compliquées, le forum est assez réactif bien que la priorité est accordée au support payant. D’autre part, l'équipe « Sencha » propose « JSBuilder », un outil gratuit et indispensable, permettant d'optimiser le code des projets pour la production.

f).jQ.Mobile

La version mobile de jQuery37 semble avoir actuellement la communauté la plus importante des frameworks présentés précédemment. La première version de ce Framework vient de sortir et jouit de nombreux composants. Cependant, il lui manque quelques finitions pour permettre une bonne simulation d'application native. La communauté est très active et le développement avance vite.

34 http://www.appcelerator.com/

35 http://www.adobe.com/products/flash-builder.html 36 https://www.sencha.com/products/touch/

ANNEXE III. Les interfaces relatives à la visite