Différents types d'applications mobiles - laquelle convient à mon projet?

25. janvier 2023 - de Michael Schranz

Lorsque nous recevons une demande, la première chose que l'on nous dit - sans surprise - est souvent: nous voulons développer une application. Il s'agit presque toujours d'une application que l'on télécharge depuis l'App Store et que l'on installe sur son smartphone.

En examinant de plus près les besoins et les exigences, il s'avère parfois qu'une application de l'App Store n'est pas la seule solution possible. Mais quelles sont les alternatives possibles? Nous présentons les principaux types d'apps et faisons dans ce blog une comparaison entre les différentes approches, y compris leurs avantages et inconvénients.

La forme suit la fonction - pas seulement en architecture

Selon Wikipedia, "la forme suit la fonction" est un principe de conception associé à l'architecture de la fin du 19e et du début du 20e siècle, selon lequel la forme d'un bâtiment doit être en premier lieu liée à la fonction ou au but prévu. Chez Apps with love, nous considérons de la même manière le choix de la technologie, c'est-à-dire la sélection de ce que l'on appelle la pile technologique. Il y a plusieurs années, nous avons décidé de proposer, en plus des applications natives, des applications web et des applications web progressives (PWA) et, dans des cas exceptionnels, des applications multiplateformes, afin de pouvoir offrir à notre clientèle non pas un simple type d'application mobile, mais précisément la solution optimale pour le projet en question. Pour nous, une approche technologiquement neutre est importante et est également appréciée par notre clientèle. La technologie la mieux adaptée à un projet dépend de différents facteurs tels que la fonctionnalité, la complexité, le cas d'application et le contexte, le groupe cible et les marchés visés, les ressources temporelles et financières, la durée d'utilisation prévue du produit et ainsi de suite. Chaque type d'application mobile a ses avantages et ses inconvénients. Ce qui est important, c'est précisément le principe décrit initialement, à savoir que la forme suit la fonction et non l'inverse.

Quels sont les différents types d'applications mobiles?

Initialement, dans le cadre de notre collaboration avec Carpathia pour l'élaboration du Moniteur B2B 2022, nous avons demandé à nos développeurs quels étaient les principaux types d'applications mobiles et ce qui les caractérisait. Voici les déclarations un peu plus détaillées de Yannick, Raphael, Carra et Sophia.

Applications natives

Yannick Pulver, Technical Lead Android Development chez Apps with love, explique ce qu'est une application native:

Yannick Pulver

Une application native est un programme logiciel développé spécifiquement pour être utilisé sur une plate-forme particulière.
Comme une application native est développée pour un système d'exploitation particulier (également appelé OS de Operating System), elle peut utiliser le maximum de matériel et de logiciel spécifique à l'appareil. Les applications natives offrent les meilleures performances possibles en fonctionnant de manière optimale avec le système d'exploitation de l'appareil, ce qui leur permet de fonctionner plus rapidement et de manière plus flexible que les autres types d'applications. Cela a bien entendu une influence positive sur l'expérience utilisateur (UX) d'une application. L'inconvénient des applications natives est qu'il faut développer une application séparée pour chaque système d'exploitation. Par exemple, les développeurs écrivent des applications iOS en Swift, alors qu'ils programment des applications Android en Kotlin.

Yannick Pulver, Technical Lead Android Development

Application multiplateforme

Raphael Neuenschwander est développeur iOS et multiplateforme chez Apps with love et explique la notion d'application multiplateforme:

Raphael Neuenschwander

Une option pour le développement d'applications est de choisir des technologies multiplateformes comme React Native ou Flutter. Dans ce cas, une application est développée dans un langage de programmation intermédiaire qui n'appartient pas au système d'exploitation de l'appareil, mais qui peut être compilé ultérieurement à l'aide d'un framework pour le système d'exploitation en question. L'avantage est qu'une grande partie du code ne doit être écrite qu'une seule fois. Toutefois, certaines fonctionnalités très spécifiques à la plate-forme doivent souvent être programmées séparément pour les deux plates-formes, même avec de tels frameworks. Ce qui fait qu'au final, il y a quand même deux, voire trois codes, et non un seul. Un certain inconvénient ou risque par rapport au développement natif réside dans le fait qu'il existe une dépendance à la solution multiplateforme. Lorsque les plateformes proposent de nouvelles fonctionnalités, le framework multiplateforme doit d'abord les introduire avant que le développeu⸱r⸱euse puisse les utiliser..

Raphael Neuenschwander, développeur iOS & multiplateforme

Web-Apps progressives

Sophia Villiger, développeuse web chez Apps with love explique ce qu'est une PWA:

Sophia Villiger

Une Progressive Web App (PWA) est une application web qui possède certaines caractéristiques d'une application native. Il s'agit donc quasiment d'une forme mixte: les PWA sont certes basées sur le web, mais elles peuvent faire certaines choses qui sont normalement réservées aux apps natives et multiplateformes. Les PWA sont toutefois appelées via le navigateur, comme les pages web classiques ou les Web-Apps. Grâce à ce que l'on appelle un manifeste de l'application web, qui contient les métadonnées de l'application, la PWA peut être installée sur un terminal mobile. Les fonctions mises à disposition par les navigateurs modernes peuvent être utilisées à l'aide d'un Service Worker qui fait office de proxy entre le navigateur et le serveur. Cela permet par exemple d'utiliser la PWA hors ligne ou de recevoir des notifications push. La partie progressive est importante à comprendre: Tous les systèmes d'exploitation et navigateurs ne supportent pas toutes les fonctionnalités de la PWA - d'où le "progressif" dans PWA.

Sophia Villiger, développeuse web

Applications hybrides

Carra Tillon, développeuse web chez Apps with love explique ce qu'on entend par applications hybrides:

Carra Tillon

Les applications hybrides sont en fait des applications qui contiennent des contenus web au sein d'une application mobile. Dans sa forme la plus extrême, il s'agirait pratiquement d'applications web pures, intégrées dans un conteneur d'application natif ou dans ce que l'on appelle un wrapper. D'autre part, il s'agit également d'applications natives ou multiplateformes qui affichent des contenus web. Comme c'est aujourd'hui le cas pour un nombre extrêmement important d'applications, le terme "application hybride" perd pour ainsi dire un peu de sa justification. Une fois que les applications hybrides ont été téléchargées à partir d'un magasin d'applications et installées localement, des contenus web ou des fonctions entières peuvent être associés, via un navigateur intégré dans l'application, aux fonctions et contenus qui sont ensuite disponibles pour les utilisateur⸱e⸱s finaux dans leurs applications de smartphone. Les applications d'actualités sont un cas d'application classique.

Carra Tillon, développeuse web

Exemple d'application native : Pestalozzi Haustech
Exemple d'application Flutter (multiplateforme): Startfeld
Exemple d'application hybride: Denner
Exemple de PWA : Foire d'automne de Bâle

Exigences fonctionnelles et non fonctionnelles comme base pour la décision technologique

Il existe donc différentes possibilités pour une présence mobile: La plus simple est sans doute un site web avec un design responsive, qui peut également être utilisé pour les terminaux mobiles. Le responsive design est devenu la norme et est attendu par les utilisateurs et par Google pour un classement correct dans les résultats de recherche. Les organisations qui souhaitent s'orienter davantage vers le groupe cible mobile vont plus loin et misent sur l'un des types d'apps décrits précédemment, qui offrent davantage de possibilités pour une bonne expérience d'utilisation, des fonctionnalités étendues, une meilleure performance et une meilleure convivialité pour les utilisateur⸱e⸱s de smartphones.

Afin de pouvoir choisir la technologie optimale pour son propre projet ou produit numérique, il est absolument essentiel de déterminer dans un premier temps les exigences fonctionnelles et non fonctionnelles. Ce processus s'appelle également "Requirements Engineering" et comprend la définition, la documentation et finalement aussi la gestion des exigences d'un système, d'un produit ou d'un logiciel. Il existe pour cela différentes approches méthodologiques, comme par exemple le Story Mapping. Nous avons décrit comment cela fonctionne dans l'article de blog "Visualiser les exigences et créer une compréhension commune grâce au User Story Mapping".

Plan complet de l'histoire de l'utilisateur
Les exigences d'une solution numérique sont définies au moyen d'un User Story Mapping.

Que sont les exigences fonctionnelles et non fonctionnelles?

Les exigences fonctionnelles décrivent ce qu'un système, un logiciel ou un produit doit pouvoir faire. Par exemple, que les utilisateurs d'une boutique en ligne puissent voir un aperçu des achats qu'ils ont effectués. Les exigences non fonctionnelles, en revanche, décrivent la qualité avec laquelle la fonctionnalité requise doit être fournie. Par exemple, le système ne doit pas avoir plus de x secondes pour afficher cet aperçu.

Dans de nombreux cas, il est très difficile pour les non-spécialistes IT de décrire de telles exigences de manière propre, suffisamment détaillée et compréhensible pour le monde de la technologie. C'est pourquoi nous aidons dans de nombreux cas, dans le cadre d'ateliers de découverte et Requirements Engineering, à effectuer précisément ces travaux préliminaires nécessaires, afin qu'il existe une base propre pour le choix des piles technologiques et pour la mise en œuvre future.
Les exigences fonctionnelles et non fonctionnelles actuelles et futures d'un produit numérique constituent donc la base du choix optimal de la technologie. 

Application web, application multiplateforme, application native, PWA - un aperçu des avantages et des inconvénients

Ce n'est donc qu'après avoir recensé et documenté les principales exigences qu'il est possible de prendre une décision éclairée sur le meilleur type d'application. Comme nous l'avons vu plus haut, les différents types d'applications mobiles reposent sur des technologies différentes et présentent donc des avantages et des inconvénients différents. Ceux-ci doivent être mis en balance dans le processus de décision, en partant des besoins et exigences respectifs de la solution souhaitée.

Remarque sur l'application web par rapport à la PWA.

Dans le tableau suivant, nous avons volontairement utilisé le terme PWA, car les Progressive Web Apps offrent des possibilités plus étendues pour l'utilisation mobile que les sites web responsive purs ou les applications web. Comme nous mettons clairement l'accent sur les possibilités offertes par les différentes approches technologiques pour une utilisation sur smartphone (applications mobiles) dans ce tableau, nous partons du principe que le maximum de possibilités est exploité dans l'évaluation des PWA. Nous avons décrit plus en détail les PWA et leurs possibilités dans une série de blogs. Dans le deuxième article de blog de cette série: PWA Partie 2: Possibilités, limites et points forts, nous abordons ce sujet plus en détail. 

Comparaison des avantages et des inconvénients de différentes applications mobiles

Disclaimer

Les données du tableau sont bien sûr une simplification de la réalité et ne représentent que des tendances. Beaucoup de choses, si ce n'est presque tout, sont possibles avec différentes technologies - mais il faut se poser la question des exigences, des dépenses et des dépendances. On pourrait également ajouter un "oui, mais" ou un "non, mais" à de nombreuses données - le diable se cache, comme souvent, dans les détails. C'est précisément cet aspect qui explique pourquoi les exigences et les pour et les contre de l'une ou l'autre solution doivent être examinés avec autant de précision au début d'un projet.

Catégorie spéciale: applications décentralisées aka dApps

Les applications décentralisées, appelées dApps, constituent une sorte de catégorie spéciale. Elles fonctionnent avec un registre décentralisé, comme la blockchain. Cela signifie que les données, telles que les transactions d'un portefeuille de cryptomonnaies mobile, sont réparties dans un réseau d'ordinateurs. Ce réseau fait office de back-end et échappe au contrôle d'une seule autorité ou organisation.

Les dApps peuvent être développées pour répondre à différentes fins. Lorsqu'elles sont bien mises en œuvre, les dApps offrent des avantages tels qu'une plus grande protection des données et l'anonymat pour les utilisateurs finaux, l'absence de censure et un risque réduit de temps d'arrêt en raison du stockage décentralisé des données dans le backend. Cependant, des défis peuvent survenir, comme l'évolutivité ou la publication dans les magasins d'applications.

Les dApps peuvent être développées sous la forme de tous les types d'apps présentés, en tant que PWAs, apps natives ou avec un framework multi-plateforme comme Flutter. La principale différence réside dans l'architecture du backend: Blockchain au lieu d'une base de données centrale. Il convient de mentionner qu'il est bien entendu possible de créer une architecture back-end similaire (réseau peer-to-peer) sans utiliser la technologie blockchain. En ce qui concerne la conception et le développement du front-end, la principale différence entre une application "normale" et les dApps réside dans le fait que les utilisateur⸱e⸱s peuvent se connecter via leur identité Web3. C'est-à-dire qu'ils se connectent avec leurs données d'accès au portefeuille (clé publique et privée) au lieu d'utiliser un e-mail et un mot de passe. 

Deux études de cas de dApps que nous avons créées avec Flutter sont à lire ici: 

Ce type d'application est souvent discuté actuellement et de plus en plus d'entre elles sont développées pour différents cas d'utilisation. Seul l'avenir nous dira si elles peuvent vraiment être considérées comme la prochaine évolution des apps ou "apps 2.0". Nous avons écrit plus de détails sur les dApps dans le blogpost suivant sur Blocchain et applications décentralisées (dApps).

Conclusion sur le choix de la technologie d'application optimale

La comparaison des différentes technologies d'application montre que plusieurs facteurs déterminent quelle technologie est la plus appropriée dans un cas donné. Les projets devraient être abordés de manière aussi neutre que possible sur le plan technologique. Ce n'est que lorsque les objectifs commerciaux, les exigences fonctionnelles et non fonctionnelles, le contexte d'utilisation, le budget et de nombreuses autres questions ont été clarifiés qu'il est possible de prendre une décision fondée sur la technologie optimale.

En raison de l'évolution très rapide et dynamique du marché, ce tableau représente certes un instrument actuel pour le choix de la technologie pour les projets à venir, mais il faut toujours tenir compte des derniers développements du marché et des éventuels changements en termes de possibilités. 
La réponse à la question souvent posée "quelle technologie convient le mieux à mon projet?" est en conséquence la suivante: tout dépend des objectifs, des exigences détaillées et des conditions-cadres existantes.

Tu as une idée de projet et tu ne sais pas quelle technologie serait la plus appropriée? Nous contacter. Nous t'aiderons à trouver la technologie qui te permettra d'atteindre au mieux la solution souhaitée.

Nous venons de remarquer que vous surfez avec Internet Explorer. Malheureusement, notre site web n'est pas aussi agréable avec ce navigateur.

Vous voulez savoir pourquoi ?
Nous avons écrit à ce sujet.

Vers le blog

Vous avez besoin d'aide pour le passage à l'euro ?
Contactez-nous. Nous serons heureux de vous aider.

Contact

Installer un nouveau navigateur ?
Il y a un choix à faire.

Browser