24 Sep Faut-il développer une application native ou une web app ?
Il y a beaucoup de débats parmi les développeurs pour savoir s’il vaut mieux se concentrer sur le développement d’une application web ou d’une application native quand il s’agit d’être présent sur les mobiles. J’ai beaucoup réfléchi à ce sujet et après avoir développé ces deux types d’applications pour des clients, je voulais partager mon point de vue à ce sujet. Je vais surtout faire référence aux applications iOS et Android ici. Les autres environnements comme Windowq 8 ou BB10 vous permettent de faire des applications natives en utilisant les technologies web.
Définition des termes
Tout d’abord, nous allons définir ce que ces termes signifient. Une application Web est une application qui se construit en utilisant du code HTML, CSS et JavaScript pour la plupart. En revanche, une application native est une application qui est construite en utilisant un langage natif (iOS / Android SDK avec de l’Objective-C ou Java).
Les avantages
Les applications Web ont les avantages suivants :
• Plus rapide de réaliser un prototype en HTML / CSS / JS, qu’en utilisant le langage natif du device comme l’Objective-C
• Pas besoin d’envoyer des mises à jour via l’App Store – vous pouvez publier des mises à jour à tout moment
• Votre application s’exécute dans des environnements multiples. Proche du rêve “L’écrire une fois pour l’exécuter partout”
Les applications natives ont les avantages suivants :
• Plus performantes que les applications web, puisque vous êtes plus proche de l’environnement natif
• Le design, l’ergonomie (UI / UX) semble plus et parait plus naturel
• Moins de temps passé sur certains éléments pour qu’ils semblent plus naturels
Les inconvénients
Les applications Web ont les inconvénients suivants :
• Votre application ne sera jamais aussi performante que son homologue native. Vous devrez toujours exécuter le code dans un contexte de navigation web, ce qui sera plus lent que le contexte natif
• C’est très difficile, voire impossible, que votre application ressemble à une application native. Cela est particulièrement vrai pour les applications iOS
• Pour les applications hybrides (comme sencha), la communication entre la couche Web et les couches natives est difficile et pas très élégante
• Les pages web doivent toujours être rechargées lorsque vous relancez l’application, ce qui provoque une expérience utilisateur désagréable
Les applications natives ont les inconvénients suivants :
• Vous devez écrire dans le langage spécifique de chaque plateforme. Vous êtes très loin du rêve, “L’écrire une fois pour l’ exécuter partout”
• Les mises à jour des applications doivent être explicitement téléchargée par les utilisateurs, ce qui signifie que vous aurez une base d’utilisateurs fragmentée
• Vous êtes à la merci de l’app store
Mon opinion
Mon opinion sur ce sujet a changé au cours des derniers mois. Au début, je croyais vraiment que les applications Web étaient la voie à suivre. J’ai tout essayé – PhoneGap, applications hybrides, etc.. Mais à la fin, j’ai réalisé qu’une application web ne pourrait jamais rivaliser avec son homologue native. Il est vraiment trop difficile de faire une application web qui semble naturelle. Par cela, je veux dire qu’il est extrêmement difficile de faire un style, une ergonomie et une structure DOM aussi propre qu’une application native . Tenter de le faire prend plus de temps que de développer une application native.
Maintenant, même si vous ne vous souciez pas du look de votre application, vous rencontrerez néanmoins de nombreuses difficultés sur les applications web. Par exemple, si vous avez des applications mobiles qui nécessitent une structure objet compliquée, vous devrez vous soucier de la gestion de la mémoire, du scrolling des pages web, etc. Linkedin a réussi car sa structure est extrêmement simple. Mais Facebook a modifié son fusil d’épaule et est passé en natif.
Quand on réalise une application mobile on devrait se concentrer uniquement sur la rédaction du cahier des charges technique et fonctionnel de celle ci, pas de savoir comment on va la rendre ergonomique pour tel ou tel device. En choisissant les applications natives, on enlève ce problème.
Pour conclure
Les applications Web et les applications natives ont des finalités différentes. Je pense qu’il est compréhensible et cela a du sens de commencer avec une application web (plus rapide de réaliser un prototype, toucher un plus grand nombre d’utilisateurs, etc), et ensuite de faire une application mobile si votre idée plait. Bien sûr, l’inverse fonctionne aussi bien (Instagram est allé sur le mobile en premier, par exemple). Mais pour ma part, je vous conseille fortement de commencer par une application native si vous en avez les moyens.
Et vous qu’en pensez-vous ?
No Comments