Application mobile – native, web ou hybride ? Le titre de ce billet est en fait la question que l’on doit se poser dès le début du développement d’une application mobile. Au-delà des impacts sur le temps et le budget, le choix de l’une de ces trois options doit tenir compte des contraintes technologiques de chacune et des fonctions que vous voulez donner à vos utilisateurs. État de l’art dans le développement d’applications mobiles Le monde du dispositif mobile est contrôlé par quatre systèmes d’exploitation : Apple IOS, Google Android, Blackberry OS et Windows Phone. Chaque système d’exploitation possède des fonctions distinctives pour leurs utilisateurs. L’accès à toutes ces fonctions se fait par l’entremise d’interfaces de programmation (API) graphique, de bas-niveau et de haut-niveau. Les interfaces graphiques sont des librairies de contrôles graphiques distinctives au système d’exploitation. Les interfaces de bas-niveau permettent d’interagir directement avec les ressources matérielles du dispositif mobile (clavier, caméra, GPS, microphone, etc.). Les interfaces de haut-niveau sont en fait des accès aux applications intégrées au système d’exploitation (courriel, calendrier, contact, téléphone, SMS, etc.) ainsi qu’aux services nuagiques offerts par les manufacturiers. Application native Une application native est un fichier contenant du code binaire spécifique au système d’exploitation du dispositif mobile ciblé. Le code est en mesure d’accéder à toutes les fonctions rendues disponibles par les API de ce système d’exploitation dont celles qui le distinguent de ses concurrents auprès des utilisateurs. Ce sont ces interfaces de programmation spécifiques qui rendent la portabilité d’une application entre les différentes plateformes très complexe. Application web La venue du HTML5 a permis la transition de la « page web » vers les applications Internet riches exécutées sur les fureteurs des dispositifs mobiles. Au niveau de ce type d’application, on distingue deux approches : (1) le furetage mobile où le site Internet a été optimisé pour reconnaître le dispositif mobile et d’y adapter son contenu et (2) le site Internet mobile dont le rendu est identique à celui d’une application native. Le haut degré de portabilité d’une application web est basé sur le fait que la plupart des fureteurs mobiles utilisent le même moteur de rendu (WebKit) pour le HTML5. Cependant, cette forte portabilité a ses limitations : elle doit être exécutée à l’intérieur d’un fureteur (lui-même une application native) dont les accès aux interfaces du système d’exploitation ne sont pas homogènes d’une plateforme à l’autre. En fait, les systèmes d’exploitation restreignent grandement ces accès pour l’instant. Application hybride Tel que le nom l’indique, il s’agit d’une approche combinant les deux types d’application précédents. L’application hybride est une application native qui contient un engin de rendu HTML qui fait le pont entre l’application web et les interfaces de programmation du dispositif mobile. Le pont le plus utilisé est « PhoneGap », une libraire ouverte. La plus grande lacune de cette approche est que le contenu n’est disponible que lorsqu’une connexion Internet est présente (comme une application web). La portabilité des applications mobiles est encore un sujet nécessitant des avancées technologiques. Si votre entreprise désire mettre en marché plusieurs de celles-ci, une approche structurée de recherche et développement sera peut-être nécessaire. Crédit photo : freedigitalphotos.net