Applications web vs. applications natives

Il existe aujourd’hui 2 principales solutions pour créer une app :

  • créer une application dite « native », c’est-à-dire avec les langages propres à chaque téléphone et tablette (Java/Kotlin pour Android, Objective-C/Swift pour iOS) ;
  • créer une application web ou hybride, avec JavaScript.

Quelle solution est la plus avantageuse ? En bref : une application web nécessite un seul développement, représentant un gain d’argent, de temps et de compétences considérable.

Temps, coûts et compétences

L’avantage principal d’une application web est qu’elle nécessite un seul développement, quel que soit le périphérique, alors qu’une application native nécessitera un développement spécifique pour Android, puis un autre pour iOS, et éventuellement d’autres.

C’est évidemment au minimum le double de temps et d’argent nécessaires. C’est aussi le double de compétences. Et s’il est (relativement) facile de trouver des développeurs Java (pour Android), il est plus difficile de trouver des développeurs connaissant les langages propriétaires d’Apple.

Fonctionnalités natives

Les applications web peuvent aussi accéder aux fonctionnalités natives des téléphones et tablettes, avec des outils comme Cordova ou Capacitor : on parle alors d’applications hybrides.

Dans la plupart des cas aujourd’hui, ce n’est même plus nécessaire. Il existe des APIs JavaScript pour presque tout : stockage hors ligne, notifications push, géolocalisation, paiement, etc.

Performances

Une contre-vérité qui circule encore souvent : les applications web seraient moins performantes que les applications natives. C’est faux.

Aujourd’hui, on fait des jeux en 3D en JavaScript. Ou de la réalité virtuelle. Une application avec du texte et des images ne devrait donc pas trop poser de problèmes.

La tendance s’est même inversée, car à cause de la bande-passante, l’optimisation a toujours été une problématique centrale en web. Il vous suffit de comparer le poids, le temps de chargement et la réactivité d’Eclipse, d’IntelliJ ou de PHPStorm face à Visual Studio Code (qui est une application web). Ou la réactivité d’Apache/PHP ou de TomCat/Java face à Node.js.

Et cela va encore plus loin avec WebAssembly, qui permet de faire tourner du web directement en code machine.

C’est en revanche à la condition de coder correctement en JavaScript. D’où le besoin de se former à JavaScript, et d’outils comme TypeScript, qui rapproche JavaScript très fortement de langages comme Java ou C#.

Marketplaces

Une application web peut être distribuée directement via une URL, et donc profiter du référencement. C’est clairement la tendance aujourd’hui avec les Progressive Web Apps.

Mais elle peut aussi et simultanément être distribuée sur le Play Store d’Android ou l’App Store d’iOS. Exemples : Twitter Lite, Instagram Lite et Facebook Lite sont exactement les mêmes applications que les versions mobiles accessibles via un navigateur.

Les applications natives, elles, peuvent seulement être distribuées sur les stores, et sont donc soumises à leurs contraintes : censure, délais de validation, règles strictes à respecter, commissions parfois élevées pour les applications payantes, etc.

Conclusion

Bref, sauf cas particuliers (comme les jeux), il est bien plus avantageux de développer son application en JavaScript, pour avoir un développement unique.

Découvrez la formation Angular pour créer des applications en JavaScript