đȘȘ 2.1 Typologie des applications mobiles
Module 335 â RĂ©aliser une application pour mobile
đŻ Objectif dâapprentissage
Ă la fin de ce chapitre, vous serez capables de :
- Comprendre pourquoi il existe plusieurs types dâapplications mobiles
- Distinguer les approches natives, web, hybrides et cross-plateformes
- Identifier les forces, limites et contextes dâusage de chacune
- Expliquer comment le choix dâune technologie influence la performance, la maintenance et le coĂ»t
âčïž Les 4 grands types dâapplications (rĂ©fĂ©rentiel module)
Selon le rĂ©fĂ©rentiel du module, on distingue 4 grands types dâapplications :
- Natives â dĂ©veloppĂ©es spĂ©cifiquement pour Android ou iOS
- Web â accessibles via un navigateur, sans installation
- Hybrides â applications web encapsulĂ©es dans un conteneur natif (WebView)
- Cross-plateformes â un seul code source compilĂ© pour plusieurs systĂšmes (Flutter, React Native, âŠ)
đ Hybride vs Cross-plateforme : vision moderne
-
Les approches hybrides ont servi de transition historique vers les solutions cross-plateformes modernes
-
Aujourdâhui, des frameworks comme Ionic utilisent :
- une base web (hĂ©ritĂ©e de lâhybride)
- combinée à des capacités natives via Capacitor
đ On parle dĂ©sormais plus volontiers de âcross-plateforme Ă base webâ que dâhybride classique.
đ€ 2.1.1 Pourquoi plusieurs types dâapplications ?
Lâunivers mobile repose sur plusieurs plateformes :
- iOS, Android
- et, plus globalement, le Web mobile
Chaque environnement a :
- ses outils
- ses langages
- ses rÚgles de sécurité
- ses méthodes de publication
2.1.1 La question centrale
Les entreprises et développeurs se demandent :
Comment atteindre tous les utilisateurs sans exploser les coûts, les efforts et les délais ?
DâoĂč la recherche dâun Ă©quilibre entre :
- Performance
- Coût
- Accessibilité / portée
2.1.1 Les grandes approches techniques
Pour répondre à ces enjeux, plusieurs approches sont apparues :
-
Natif
â performance maximale, intĂ©gration profonde au systĂšme -
Web
â compatibilitĂ© universelle, mises Ă jour instantanĂ©es -
Hybride
â application web encapsulĂ©e dans un conteneur natif -
Cross-plateforme
â un seul code compilĂ© pour plusieurs OS (Flutter, React Native, âŠ)
đĄ Il nâexiste pas de âmeilleureâ approche universelle :
le bon choix dépend du contexte du projet, du budget et du public cible.
đ± 2.1.2 Les applications natives â DĂ©finition
Les applications natives sont dĂ©veloppĂ©es spĂ©cifiquement pour un systĂšme dâexploitation :
- Pour Android :
- Langages : Java, Kotlin
- IDE : Android Studio
- Pour iOS :
- Langages : Swift, Objective-C
- IDE : Xcode
Elles sont compilées pour chaque OS et publiées sur :
- Google Play Store
- Apple App Store
2.1.2 Intégration et capacités des apps natives
Les apps natives :
- Interagissent directement avec les API du systĂšme
- Exploitent pleinement les capacités matérielles :
- appareil photo
- GPS
- Bluetooth
- gyroscope
- notifications
- biométrie (Face ID, Touch ID)
- Offrent :
- performance maximale
- fluidité
- cohérence visuelle avec le systÚme
2.1.2 Exemples dâapplications natives
Exemples typiques :
- TikTok
Points communs :
- usage intensif de la caméra et du micro
- animations et transitions complexes
- besoin dâune rĂ©activitĂ© trĂšs Ă©levĂ©e
2.1.2 Limites du natif
Inconvénients principaux :
- Deux bases de code si on vise Android + iOS
- Nécessite souvent deux équipes (ou au moins deux compétences)
- Tests séparés, pipeline de build plus complexe
- Coûts de développement et de maintenance plus élevés
â Choix privilĂ©giĂ© quand la performance, la stabilitĂ© et lâintĂ©gration systĂšme sont prioritaires.
đ 2.1.3 Les applications web mobiles â DĂ©finition
Les applications web mobiles :
- Ne sâinstallent pas depuis un store
- SâexĂ©cutent dans un navigateur (Chrome, Safari, Firefox, EdgeâŠ)
- Sont développées en :
- HTML
- CSS
- JavaScript
En pratique, ce sont des sites web optimisĂ©s pour lâaffichage mobile.
2.1.3 Forces des applications web
Principaux avantages :
- Universalité : un seul site pour tous les appareils
- Développement rapide et coûts réduits
- Mises à jour instantanées (pas de store, pas de téléchargement)
- Multi-appareils : ordinateur, tablette, smartphone
2.1.3 Limites des applications web
Limitations :
- DĂ©pendent dâune connexion Internet stable
-
AccĂšs aux capteurs limitĂ©, mĂȘme si :
- Web Bluetooth
- WebUSB
- WebRTC
- Geolocation API
élargissent progressivement les possibilités
-
Performance généralement inférieure au natif, surtout pour :
- animations complexes
- jeux
- traitements lourds
2.1.3 Exemples dâapplications web
Quelques exemples :
- Twitter Web
- Wikipedia Mobile
- Certains portails bancaires consultables uniquement depuis un navigateur
Adaptés pour :
- la consultation dâinformations
- de la saisie simple
- des scénarios peu intensifs en ressources
đ Focus : les Progressive Web Apps (PWA) â Concept
Les Progressive Web Apps (PWA) cherchent à dépasser les limites du web classique.
Caractéristiques :
- Utilisent HTML / CSS / JS
- Ajoutent :
- Service Workers (cache, offline)
- Manifest (icĂŽne, nom, Ă©cran dâaccueil)
- Combinent les avantages du web et du mobile
PWA â CapacitĂ©s
Une PWA peut :
- Ătre ajoutĂ©e Ă lâĂ©cran dâaccueil
- Fonctionner hors-ligne (grĂące au cache local)
- Envoyer des notifications push (dans certains contextes)
- SâexĂ©cuter en plein Ă©cran, sans barre dâadresse
đŻ Objectif : offrir une expĂ©rience proche dâune app,
tout en restant plus simple et moins coûteuse à développer.
PWA â Exemple Starbucks
Exemple concret :
-
Starbucks propose une PWA permettant de :
- consulter le menu
- passer commande
- gérer la fidélité
- fonctionner en connexion intermittente
Fait intéressant :
- La PWA pĂšse ~99 % de moins que lâapp native
- LâexpĂ©rience reste trĂšs proche de lâapp installĂ©e
PWA â Ă tester en classe
đ§Ș Mini-expĂ©rience (si le service est disponible) :
- Ouvrez le navigateur de votre smartphone
- Allez sur un site proposant une PWA
- Utilisez la fonction :
âPartagerâ â âAjouter Ă lâĂ©cran dâaccueilâ - Lancez lâicĂŽne depuis lâĂ©cran dâaccueil
Vous venez de âinstallerâ une PWA đ
đ» 2.1.4 Les applications hybrides â Concept
Les applications hybrides :
- Mélangent technologies web et enveloppe native
- Reposent sur :
- une base HTML / CSS / JS
- encapsulée dans un conteneur natif
Elles peuvent ĂȘtre installĂ©es :
- depuis les stores (Play Store, App Store)
- comme des apps classiques
2.1.4 WebView et ponts natifs
Fonctionnement :
- Le cĆur de lâapp tourne dans une WebView
â un navigateur intĂ©grĂ© Ă lâapp - Des ponts natifs (plugins) permettent :
- dâaccĂ©der Ă la camĂ©ra
- au GPS
- aux notifications
- au stockage local
- Sans écrire (ou presque) de code natif cÎté développeur web
2.1.4 Exemple : Ionic + Capacitor
Ionic illustre trĂšs bien le modĂšle hybride moderne :
- Interface en technos web (HTML, CSS, JS/TS)
- Utilisation de Capacitor pour :
- empaqueter lâapp pour Android / iOS
- accéder aux capteurs et fonctionnalités natives
- Déploiement possible :
- Android
- iOS
- Web
đ Avec Ionic + Capacitor, on parle souvent dâapproche âcross-plateforme Ă base webâ.
2.1.4 Avantages des apps hybrides
- Un seul code pour plusieurs plateformes
- Réutilisation des compétences web
- Publication simplifiée sur les stores
- Idéales pour :
- prototypes
- apps internes
- outils éducatifs
2.1.4 Limites des apps hybrides
-
Performance parfois inférieure, en particulier :
- animations complexes
- rendus 3D
- Expérience utilisateur parfois moins homogÚne
-
Dépendance aux plugins pour accéder aux fonctionnalités natives :
- qualité variable
- maintenance Ă suivre
đŹ Bon compromis pour des projets Ă budget limitĂ© ou des apps mĂ©tiers.
2.1.4 Exemples dâusage hybride
Historiquement, plusieurs grandes apps ont commencé en hybride :
- Instagram (premiĂšres versions)
- Uber
Elles ont ensuite migré :
- vers le natif pour gagner en performance
- avec lâaugmentation du nombre dâutilisateurs et des exigences UX
Aujourdâhui, beaucoup dâapplications mĂ©tiers restent hybrides :
- coût maßtrisé
- mise en production rapide
2.1.4 Architecture hybride â SchĂ©ma
SchĂ©ma simplifiĂ© dâune architecture hybride :
Code web â rendu dans une WebView â communique avec les APIs natives via des plugins.
âïž 2.1.5 Les applications cross-plateformes â Concept
Les applications cross-plateformes (multiplateformes) :
- reprĂ©sentent aujourdâhui lâune des approches les plus rĂ©pandues
- cherchent Ă combiner :
- la performance du natif
- la productivitĂ© dâun code unique
Principe :
- une seule base de code
- compilée pour produire de vraies apps Android et iOS
- sans passer par une simple WebView
2.1.5 Cross-plateforme vs hybride
Contrairement Ă lâhybride classique :
-
les frameworks cross-plateformes modernes :
- nâutilisent pas (ou plus vraiment) une WebView centrale
- affichent des composants natifs ou quasi-natifs
- gĂšrent eux-mĂȘmes le rendu (ex. Flutter + moteur Skia)
Résultat :
une expérience fluide, souvent trÚs proche du natif pur.
2.1.5 Principaux frameworks cross-plateformes
| Framework | Langage principal | Moteur / Principe |
|---|---|---|
| Flutter | Dart | Moteur graphique Skia, rend lui-mĂȘme lâUI |
| React Native | JavaScript / TypeScript | Utilise les composants natifs via un pont |
| .NET MAUI | C# / XAML | Compilation native via lâĂ©cosystĂšme .NET |
| Kotlin Multiplatform | Kotlin | Partage la logique, UI propre Ă chaque plateforme |
2.1.5 Points forts des frameworks cross-plateformes
- Un seul code source pour plusieurs OS
- Performance proche du natif
- UX fluide et cohérente
- Maintenance simplifiée (une base de code)
- Grandes communautĂ©s (Flutter, React Native, âŠ)
- Bon choix pour :
- startups
- produits à forte évolution
- projets multisystĂšmes
2.1.5 Limites du cross-plateforme
-
Dépendance au framework :
- nécessité de suivre les évolutions
- Taille de lâapp parfois plus importante quâen natif pur
- Certaines APIs récentes accessibles plus tardivement
- Besoin parfois de code natif complémentaire
- Courbe dâapprentissage propre Ă chaque framework
đŹ Globalement, câest un excellent compromis entre performance, rapiditĂ© et coĂ»t.
2.1.5 Hybrid / Cross â Illustration
Schéma comparant les approches Hybrides et Natives
đ§ź 2.1.6 Comparatif global â Vue dâensemble
Type              Langages           Performance      AccÚs matériel    Publication
| Native | Kotlin / Swift | đ„ Excellente | â Complet | Stores officiels |
| Web | HTML / CSS / JS | â ïž Moyenne | â LimitĂ©e | Navigateur |
| Hybride | HTML / JS + plugins | âïž Bonne | â ïž Partielle (plugins) | Stores possibles |
| Cross-plateforme | Dart / JS / C# / Kotlin | đȘ TrĂšs bonne | â Large | Stores possibles |
2.1.6 Comparatif global â CoĂ»t & maintenance
| Type dâapplication | Maintenance | CoĂ»t estimĂ© | Cas dâusage idĂ©al |
|---|---|---|---|
| Native | Difficile (2 bases de code) | đ°đ°đ° | Apps critiques, banque, rĂ©seaux sociaux, gros volume dâutilisateurs |
| Web | TrĂšs facile (1 code) | đ° | Sites vitrines, services sans installation |
| Hybride | Moyenne | đ°đ° | Apps mĂ©tiers, outils Ă©ducatifs, prototypes |
| Cross-plateforme | PlutĂŽt facile (1 code) | đ°đ° | Startups, projets multisystĂšmes performants |
2.1.6 Lecture du tableau
-
Native
â prioritĂ© Ă la performance et Ă la qualitĂ© dâintĂ©gration -
Web
â prioritĂ© Ă la portĂ©e et Ă la vitesse de dĂ©veloppement -
Hybride
â bon compromis pour des projets internes ou Ă budget limitĂ© -
Cross-plateforme
â excellent ratio performance / coĂ»t / maintenance pour la plupart des projets modernes
2.1.6 Comparatif â SchĂ©ma visuel
Illustration des compromis entre coût, performance et portée selon les approches.
đ€ 2.1.7 Comment choisir la bonne approche ? (1/2)
CritĂšres principaux :
-
Public cible
- Utilisateurs uniquement sur un OS (ex. iOS en entreprise) â natif possible
- Public mixte Android + iOS â cross-plateforme souvent plus rentable
-
Objectifs du projet
- PrioritĂ© performance / UX â Natif
- PrioritĂ© rapiditĂ© de dĂ©ploiement â Web ou Hybride
- PrioritĂ© multi-OS â Cross-plateforme
2.1.7 Comment choisir la bonne approche ? (2/2)
-
Budget et délais
- Natif = plus cher, plus long (2 codes)
- Cross / Hybride = mutualisation des coûts
-
Compétences disponibles
- Ăquipe Ă dominante web â Hybride ou PWA
- Ăquipe logicielle / mobile â Natif ou Cross-plateforme
-
Maintenance Ă long terme
- Une seule base de code â mises Ă jour plus simples
- Moins de risques dâincohĂ©rences entre plateformes
2.1.7 Exemple de choix â Cas concret
đĄ Cas : une application de covoiturage locale Ă budget limitĂ©
- Besoin :
- multi-plateforme
- bonne performance
- UX moderne
Choix typique :
â Framework cross-plateforme (par ex. Flutter) :
- un seul code source
- rendu fluide
- maintenance simplifiée
đ§© 2.1.8 ActivitĂ©s pĂ©dagogiques â Exercice 1
đ§ Exercice 1 â Identifier les types dâapplications
Choisissez 3 applications connues
(ex : Duolingo, YouTube, Instagram).
Pour chacune :
- Déterminez le type : native, web, hybride ou cross-plateforme
- Justifiez votre choix en observant :
- mode dâinstallation
- fluidité
- fonctionnement hors-ligne
- compatibilité multi-appareils
2.1.8 ActivitĂ©s â Exercice 2
âïž Exercice 2 â Comparatif de solutions
Contexte : application pour un festival de musique :
- agenda
- billetterie
- carte interactive
TĂąches :
- Comparez Native, Web, et Cross-plateforme
- Recommandez une approche en fonction :
- des objectifs
- du budget
- du public cible
2.1.8 ActivitĂ©s â Exercice 3
đĄ Exercice 3 â Ătude de cas client
Vous ĂȘtes en charge d'Ă©tudier l'un de ces trois cas clients. Pour chacun, dĂ©terminez la meilleure approche technique (native, web, hybride, cross-plateforme) en justifiant votre choix. RĂ©pondez aussi aux questions Ă la fin du cas.
-
HelvBank Mobile
-
AgendaCulturel
-
TechServ Mobile
Lâexercice sera discutĂ© en petits groupes, puis prĂ©sentĂ© Ă lâoral.
đ 2.1.9 RĂ©fĂ©rences et ressources
-
Google Developers â Android Studio
https://developer.android.com/studio -
Apple Developer â Xcode & Swift
https://developer.apple.com/xcode/ -
Ionic Framework (v8)
https://ionicframework.com/docs -
Capacitor (v7)
https://capacitorjs.com/docs -
Flutter (Google)
https://flutter.dev -
React Native (Meta)
https://reactnative.dev -
.NET MAUI (Microsoft)
https://learn.microsoft.com/en-us/dotnet/maui/ -
Mozilla MDN â Progressive Web Apps
https://developer.mozilla.org/docs/Web/Progressive_web_apps
đȘȘ 2.1 Typologie des applications mobiles
By tirtho
đȘȘ 2.1 Typologie des applications mobiles
- 104