Depuis 15 ans, le nombre d’appareils différents dans notre quotidien a significativement diminué. Les appareils photo, les enregistreurs audio, les lecteurs de musique ont tous rejoint nos smartphones. Il en va de même pour nos ordinateurs de bureau, qui ont intégré la machine à écrire, les jeux, le cinéma et même les livres. Tous ces usages et médias sont maintenant dématérialisés à grande échelle et proposés au sein de différentes plateformes d’achat sur différents systèmes d’exploitation.

Ainsi, pour vous qui souhaitez sûrement créer votre propre service, il est indispensable de comprendre les alternatives techniques qui s’offrent à vous pour la réalisation de votre application. Si on distinguait il y a quelques années encore trois grandes catégories d’application : natives, hybrides et web, la seconde catégorie a aujourd’hui fusionné avec les applications web. Que sont-elles ? Quels en sont les avantages et les inconvénients ? Réponse dans cet article.

Table des Matières

Qu’est-ce qu’une application ?

S’il fallait prendre un point de départ, celui-ci serait sûrement le plus pertinent. Si nous en utilisons plusieurs chaque jour, nous ne savons pas tous ce qu’est exactement une application. Essayons d’apporter une réponse simple et directe à cette question.

Vous utilisez certainement un smartphone et un ordinateur pour travailler, vous divertir et rester au contact de vos proches. Sur chacun de ces appareils se trouve un système d’exploitation : Windows, Android, iOS, macOS, une distribution GNU/Linux. Quoi qu’il en soit, ce système permet à l’appareil de démarrer puis de lancer des applications. Il s’agit du système d’exploitation.

Une application est un ensemble de lignes de code que votre OS (operating system en anglais ou système d’exploitation en français) est capable d’exécuter. Du point de vue technique, ce code est compatible avec votre OS, ce qui vous permet d’utiliser votre application.

Les applications natives

Les OS sont par nature différents et le code de votre application ne pourra pas être compatible partout. Il vous faudra une version de votre code pour chaque OS visé. C’est ce qui caractérise les applications natives.

Ces dernières sont conçues sur la base des technologies du système et peuvent prendre en charge toutes les fonctionnalités avancées qu’il offre. L’inconvénient, c’est que ce code ne pourra pas être réutilisé à l’identique sur une autre plateforme, il vous faudra développer de nouveau tout ou une partie de votre application.

Le code de votre application sera généralement écrit en C, C#, C++ pour un ordinateur et en Java ou en Swift pour les appareils Android et iOS.

capture-decran-2020-10-23-a-12-24-06
ITDM Group
Colmar , France
4,5 - 5 recommandations
Mobile & App DesignStratégie DigitaleWeb & Software DevelopmentDéveloppement mobile & AppDéveloppement webLogiciels Création de Site Web
Découvrir l’agencearrow_forward
mark1
Make it
Brussels, Belgium
5/5 - 5 recommandations
Content MarketingBrandingRéseaux SociauxStratégie DigitaleWeb & Software DevelopmentE-commerce SoftwareLogiciels Création de Site Web
Découvrir l’agencearrow_forward
zee-group-illustration
Zee Group
Paris, France
4.5 - 15 recommandations
Web & Software DevelopmentE-commerce SoftwareCreative & Design
Découvrir l’agencearrow_forward
capital-panache-illustration
Capital Panache
Brussels, Belgique
5 - 7 recommandations
Web & Software DevelopmentE-commerce SoftwareCreative & Design
Découvrir l’agencearrow_forward

Les web applications

Lorsque vous consultez un site internet, ce dernier s’affiche de la même façon sur un ordinateur Windows et macOS. De même, son apparence ne change pas entre iOS et Android. En réalité, le code derrière ces sites internet prévoit tous les cas d’usage possibles et le site s’adapte à votre appareil.

Si cela est possible, c’est parce que vous utilisez un navigateur web : Edge, Chrome, Mozilla, Opera, Brave, ils sont très nombreux. Chacun d’eux fait la passerelle entre votre OS et le site internet à afficher. Ainsi, votre site s’affichera partout parce que le navigateur a été conçu pour interpréter cette représentation abstraite du site sur votre OS.

Une web application consiste à créer un service en utilisant cette abstraction. Au lieu de coder votre service pour chaque OS, vous travaillez une fois et ce sont aux navigateurs de faire la passerelle avec l’appareil de l’utilisateur. C’est pour cette raison que l’on parle de web application : il s’agit de logiciels qui fonctionnent dans votre navigateur.

Les sites internet et web applications s’appuient sur des langages plus abstraits comme JavaScript, HTML et CSS.

Deux visions et beaucoup de différences

Chacune de ces approches a des qualités et des défauts. Selon la typologie de votre projet, vous opterez pour l’une ou l’autre de ces alternatives.

Le natif, mieux intégré, mais moins compatible

L’avantage évident des applications natives, c’est leur parfaite compatibilité avec un OS donné. En optant pour une application native, vous pourrez aller très loin dans l’usage de l’OS et mobiliser toutes les ressources de la machine ainsi que ses spécificités.

Sous Windows par exemple, tous les logiciels comme Word, Premiere Pro ou Photoshop sont développés nativement. Sans cela, ils ne pourraient pas fonctionner puisqu’ils s’appuient sur les technologies du système d’exploitation pour s’exécuter. Il en va de même pour les versions macOS de ces logiciels qui ont été intégralement conçues pour parfaitement fonctionner dessus.

À contrario, cela vous obligera à développer votre application pour chaque OS où vous souhaitez la déployer. Ce processus s’avèrera coûteux et nécessitera de maintenir chaque version. Vos mises à jour pour Windows ne seront pas les mêmes que pour macOS, par exemple.

Cette typologie de projet correspond bien aux jeux vidéo, aux logiciels très gourmands en ressources comme ceux de montage vidéo, de musique assistée par ordinateur, de modélisation 3D, tout ce qui nécessite de faire appel à des technologies pointues et qu’il est difficile (ou impossible) d’abstraire.

Une application native ne nécessite pas d’être connecté à internet, à moins que vous l’exigiez.

Les web apps, hyper compatibles, mais vite limitées

Vous l’aurez compris, les web apps sont bien plus souples que les applications natives. Elles permettent de créer votre produit ou service une fois et de le déployer sur tous les appareils capables d’accéder à internet. Cela comprend les ordinateurs et les smartphones, mais aussi les TV, les voitures récentes, certaines montres connectées et même les consoles de jeu. Ainsi, les coûts de développement sont extrêmement limités et vous n’aurez à mettre à jour qu’une seule version de votre service.

En revanche, le champ des possibles s’avère relativement limité. Les web apps sont, par nature, des sites internet. Cela signifie que certains usages ne sont tout simplement pas possibles avec du web. 

Dans le cas où votre application utilise des flux de données comme dans un réseau social, une boutique en ligne, un service de stockage de fichiers ou une application de navigation, les web apps sont toutes indiquées. N’espérez pas cependant afficher autre chose que des images et de la vidéo, la 3D en temps réel et les traitements lourds évoqués plus tôt ne sont pas compatibles.

De même, les web applications n’ont pas accès au matériel de l’appareil sur lequel il s’exécute. Ainsi, impossible de stocker des fichiers ou d’utiliser la caméra de l’utilisateur depuis un site web. Tout cela n’est pas pris en charge.

Enfin, une web application nécessite d’être connecté à internet, sans quoi votre utilisateur ne pourra pas s’en servir.

Un mot sur la technologie Progressive Web App (PWA)

Lancé par Google en 2015, PWA tente d’amincir la frontière entre natif et web. Le concept de départ consiste à considérer que les développeurs doivent pouvoir créer une web app qui se comportera comme un programme classique dans les grandes lignes. Elle pourra fonctionner en partie sans accès à internet, disposer de son icône et accéder au stockage et la caméra de l’appareil.

Ces applications sont très répandues aujourd’hui puisqu’elles fonctionnent sur iOS, Android et Windows, soit les 3 OS les plus utilisés au monde. Leur adoption a été plutôt rapide puisque les PWA permettent de développer avec les langages abstraits du web et de faire appel à l’OS à l’aide de commandes génériques. Il sera donc possible d’utiliser le stockage d’un appareil Windows, iOS et Android sans avoir à développer trois gestions des fichiers différentes, puisque la technologie PWA s’occupe de tout.

Qu’est-ce que PWA techniquement ?

Pour faire simple, PWA est comme un navigateur web ultra allégé dont il ne resterait que la passerelle entre le web et le système d’exploitation. Ici, pas de barre d’adresse, d’historique ou de favoris, votre application s’affiche sous la forme d’une page web et c’est au développeur de fournir le nécessaire pour naviguer dedans. 

L’avantage est évident, les PWA sont, pour la plupart, très rapides à installer et ne nécessitent que très peu d’espace de stockage. En somme, il s’agit d’un croisement entre le web et le natif.

Pour autant, tout n’est pas encore possible en PWA. En effet, malgré les efforts de Google, certains usages sont trop pointus pour pouvoir être abstraits. Nous en revenons donc aux jeux vidéo, aux logiciels professionnels et à tout ce qui nécessite de la puissance de calcul : n’espérez pas développer l’équivalent d’un gros jeu vidéo en PWA, cela ne fonctionnera pas.

Ce système reste une excellente alternative pour la plupart des applications : facile à développer et à maintenir, capable de stocker des fichiers et d’accéder à une partie des fonctionnalités avancées de l’OS comme la caméra et le micro de l’utilisateur.

Conclusion

Les web apps sont idéales pour de nombreux projets, mais ne répondent pas à tous les usages. Vous savez tout ! Maintenant, à vous de déterminer si vous avez besoin de tirer parti de l’OS pour concrétiser votre projet d’application ou si une version web s’avèrera suffisante.