De nos jours, la question ne se pose plus à savoir si notre application « desktop » doit être accessible sur téléphone mobile.
Les gens veulent accéder à leurs services à partir de plusieurs emplacements différents. Ils veulent que le service s’adapte à leur environnement, ce n’est plus à l’utilisateur à faire un effort pour rejoindre votre service. Le service doit venir à lui le plus facilement possible.
Donc, la création d’une application mobile pour votre service devient essentielle. Sinon, votre client potentiel choisira le compétiteur qui lui offre la fonctionnalité.
Maintenant, il faut choisir un mode de développement pour votre application.
La grande question à se poser suite à la décision de créer un app mobile, est la suivante: Natif ou Web?
Le « natif » implique la création, dans le langage de programmation de la cible, d’une application indépendante pour chaque plateforme. Objective C pour IOS, Java pour Android, .NET pour Windows 8 Metro. Mais, il y a des coûts reliés à ces développements.
Voyons d’abord les avantages et inconvénients de chacun de ces 2 type d’application. Et, par la suite, je vous présenterai une troisième alternative, qu’on a décidé d’utiliser chez AceProject, qui combine le meilleur des 2 mondes.
Application 100% Web
Avantages
- Accessible de tous les téléphones récents.
- La modification de l’application est immédiatement accessible à tous les utilisateurs, peu importe leur appareil.
Inconvénients
- Ne pas être listé dans les boutiques virtuelles (moins de visibilité)
- La complexité pour l’usager d’avoir à entrer un URL et de rendre l’application accessible facilement de son téléphone.
- Complexité pour les développeurs d’adapter l’application (style CSS, code JS) à tous les environnement pour une réponse uniforme peu importe l’appareil
Application 100% Native
Avantages
- Utilisation de la puissance et de la flexibilité offerte par le « GUI » de l’appareil
- « Listing » de votre application dans le « Store », donc visibilité accrue
- Communication plus simple avec le matériel de l’appareil, comme le gps, l’appareil photo, les fichiers, etc.
- Mise à jour simple via les boutiques virtuelles
Inconvénients
- Développement multiple – difficulté à offrir une nouveauté sur les 3 plateformes simultanément
- Difficulté à offrir une expérence utilisateur unique d’un appareil à un autre
- Difficulté à trouver une équipe de développement multi disciplinaire capable de programmer dans 3 langages complètement différents
- Requiert souvent de s’équiper d’une équipe de développement variée pouvant fournir les services pour chacune des plateforme
Combinaison des 2: le meilleur des deux mondes.
Description
Il s’agit d’une technique permettant à la fois d’être publié dans toutes les boutiques, d’avoir une application sur toutes les technologies, sans avoir à développer 4 applications (3 native + web). C’est la décision qui a été prise chez AceProject. Techniquement, nous faisons faire, à prix minime, 3 applications extrêment simples pour les 3 plateformes. Ces applications ne sont que des « conteneurs », permettant de loger à l’intérieur, un accès à la version Web. Par exemple, pour l’application Android, on démarre une application « native », téléchargée du Android Market.
Cette application ne sert que de point d’accès vers l’application web, offrant un fureteur à l’intérieur de l’application, qui ouvre le url, sans que l’usager n’ait à s’occuper de cet accès. Il ne fait qu’entrer ses informations d’authentification dans la partie configuration native de l’application, une seule fois, et tout le reste se fait tout seul.
Le même procédé est utilisé pour IOS et Windows Metro. Ainsi, tous les utilisateurs mobiles utilisent exactement la même application, soit la version Web, peu importe leur appareil, tout en ayant installé une véritable version « native » sur leur téléphone ou tablette.
Avantages
- Une seule application doit être maintenue, soit la version Web.
- Coût de développement des application native minime
- Présence dans les boutiques virtuelles
- Forte présence de votre application sur toutes les plateformes
- Mises à jour simultanées sur toutes les plateformes
- Aucun besoin de mettre à jour les application natives lors de mises à jour de l’application web – 0 maintenance.
Inconvénients
- Incapacité à dialoguer directement facilement entre votre application web et le conteneur afin d’en utiliser la puissance
- Incapacité ou difficulté à utiliser le matériel natif tel la caméra, le gps, … via l’application Web.
- Complexité à avoir 1 seul app qui s’adapte à différents navigateurs pour offrir une expérience unique. Mais cette complexité est aussi présente si on fait l’application uniquement Web, sans être dans les conteneurs natifs. (multiple styles CSS / code javascript à adapter au navigateur)
- Pas de notification de mise à jour publiée dans les boutiques lors de mises à jour de l’application web.
Conclusion
Bien entendu, il faut que notre application web puisse vivre avec la contrainte suivante: Pouvoir exécuter toute tâche sans avoir à entrer un URL, ou à utiliser les touches suivant-précédent du navigateur. Il faut avoir une bonne gestion de la navigation à l’intérieur même de l’application Web.