đ§Ș 3.6 Simulation, tests et exĂ©cution de l'application mobile
Jusqu'ici, vous avez principalement exécuté votre application Ionic dans un navigateur web. C'est rapide et confortable, mais ce n'est pas suffisant pour une vraie application mobile.
Une application mobile doit ĂȘtre testĂ©e :
- dans différents environnements,
- avec de vraies contraintes matérielles,
- avec de vraies API natives.
Ce chapitre vous apprend oĂč, comment, et quand exĂ©cuter votre application Ionic pour garantir un comportement fiable sur mobile.
đŻ Objectifs d'apprentissage
Ă la fin de ce chapitre, vous serez capables de :
- distinguer les différents modes d'exécution dans une application Ionic ;
- exécuter une application sur un navigateur, émulateur et appareil réel ;
- comprendre les différences de comportement entre ces environnements ;
- utiliser les outils de debug mobile ;
- tester correctement les APIs natives Capacitor ;
- identifier et corriger les erreurs mobiles les plus courantes.
âïž 3.6.1 Modes d'exĂ©cution
Une application Ionic peut ĂȘtre exĂ©cutĂ©e de plusieurs maniĂšres :
- Dans le navigateur (mode web)
- Dans un émulateur (mobile simulé)
- Sur un appareil réel (smartphone)
Note : il existe beaucoup de plateformes d'émulation (Android, iOS, différents modÚles de téléphones). Cependant, pour des raisons de coût et de complexité, nous nous concentrerons ici sur les méthodes d'émulation "natives" aux plateformes Android et iOS.
Chaque mode a un rÎle précis dans le cycle de développement et de test.
â ïž Attention : Web â Mobile
Une erreur fréquente :
Croire qu'une app qui fonctionne dans le navigateur fonctionnera forcément sur mobile.
Ce n'est pas le cas :
- APIs natives manquantes ou simulées
- différences de performance
- différences de comportements UI / UX
đ 3.6.2 ExĂ©cuter l'application dans le navigateur
Commande principale :
ionic serve
Elle permet de lancer l'application dans le navigateur avec :
- rechargement automatique (hot reload) Ă chaque modification ;
- accĂšs direct aux DevTools du navigateur ;
- cycle de développement trÚs rapide.
â Avantages du mode navigateur
- idĂ©al pour travailler lâinterface utilisateur ;
- parfait pour tester la navigation et la logique métier ;
- trĂšs rapide Ă relancer ;
- aucun besoin dâĂ©mulateur ou de tĂ©lĂ©phone.
đ Ă utiliser principalement pour : UI, navigation, logique applicative.
â ïž Limites du mode navigateur
-
les APIs natives (caméra, fichiers, haptics...) ne sont pas réelles :
- simulées
- ou indisponibles
-
le comportement peut diffĂ©rer fortement dâun vrai tĂ©lĂ©phone ;
-
certaines fonctionnalités Capacitor sont simulées ou absentes.
Conclusion :
Le navigateur est un outil de développement, pas un environnement de test final.
đ ïž DevTools : fonctionnalitĂ©s avancĂ©es
Les DevTools du navigateur permettent de simuler un environnement mobile :
-
Mode appareil : taille dâĂ©cran + comportement tactile ;
-
Simulation de la géolocalisation ;
-
Simulation du réseau :
- 4G, 3G, offlineâŠ
-
Console JavaScript :
- logs, erreurs, warnings ;
-
Simulation de capteurs (accéléromÚtre, gyroscope) via outils/extensions.
Pour y accéder :
-
Ouvrir les DevTools (F12 ou clic droit â Inspecter)
-
Menu â More tools â Sensors :
- géolocalisation, réseau, orientation, etc.
đ€ 3.6.3 Ămulation Android
Un émulateur est un téléphone virtuel exécuté sur votre ordinateur.
Pré-requis
- Android Studio installé
- Android SDK configuré
- CrĂ©ation dâun AVD (Android Virtual Device)
- Package Android installé dans Capacitor :
npm install @capacitor/android
npx cap add android
Lien Ionic â Android (Capacitor)
Avant de lancer lâapp sur Android :
ionic build
ionic cap sync android
ionic cap open android
-
ionic build: génÚre la version web danswww/ -
ionic cap sync android: copie le build dans le projet Android -
ionic cap open android: ouvre Android Studio
Ensuite, dans Android Studio :
- choisir un émulateur ;
- lancer lâapplication.
Pourquoi utiliser un émulateur ?
-
tester différents modÚles de téléphones sans les posséder ;
-
simuler :
- conditions réseau
- localisation
- rotation, capteursâŠ
-
déboguer avec les outils Android Studio (Logcat, Profiler, etc.).
Câest une Ă©tape intermĂ©diaire utile entre :
- le navigateur
- et les appareils réels.
đ 3.6.4 Ămulation iOS
đĄ LâĂ©mulation iOS nĂ©cessite un Mac avec Xcode installĂ©.
Pré-requis
- Mac + Xcode installé
- Package iOS dans Capacitor :
npm install @capacitor/ios
npx cap add ios
Lien Ionic â iOS (Capacitor)
Avant de lancer lâapp sur iOS :
ionic build
ionic cap sync ios
ionic cap open ios
-
ionic build: génÚre la version web danswww/ -
ionic cap sync ios: copie le build dans le projet iOS -
ionic cap open ios: ouvre Xcode
Ensuite, dans Xcode :
- choisir un simulateur iPhone ;
- lancer lâapplication.
đ± 3.6.5 ExĂ©cution sur un appareil rĂ©el
Tester sur un vrai smartphone est indispensable avant la publication.
Permet de vérifier :
-
les performances réelles
-
les vrais capteurs :
- caméra
- vibrations
- GPS
-
le comportement réseau :
- 4G
- Wi-Fi
- coupures
Pré-requis Android (appareil réel)
- activer les options développeur sur le téléphone ;
- activer le débogage USB ;
- connecter le tĂ©lĂ©phone en USB Ă lâordinateur ;
- lancer depuis Android Studio ou via CLI (selon config).
Android Studio dĂ©tecte lâappareil et permet de :
- installer lâapp ;
- la lancer ;
- lire les logs en temps réel (Logcat).
Pré-requis iOS (appareil réel)
- Mac avec Xcode ;
- compte développeur Apple (gratuit ou payant selon besoins) ;
- activer les options dĂ©veloppeur sur lâiPhone ;
- connecter lâiPhone en USB ;
- ouvrir le projet dans Xcode ;
- sĂ©lectionner lâiPhone comme cible.
Puis :
- lancer lâapplication ;
- inspecter les logs depuis Xcode.
Pourquoi câest crucial ?
Certaines erreurs nâapparaissent que :
- sur un vrai appareil ;
- avec de vraies contraintes matérielles ;
Par exemple :
- performances lentes ;
- comportements UI différents ;
- accÚs caméra / fichiers / haptics ;
- bugs réseau liés à la 4G / Wi-Fi.
Tester uniquement sur navigateur ou Ă©mulateur nâest jamais suffisant.
đ 3.6.6 Debug et inspection
Chaque environnement a ses outils de debug.
Navigateur (Chrome, Edge, Firefox)
-
DevTools :
- console
- réseau
- stockage
- performance
- vue mobile
Idéal pour :
- erreurs JavaScript ;
- problĂšmes dâUI ;
- requĂȘtes API (HTTP).
Debug Android
Utiliser Android Studio pour :
- logs via Logcat ;
- inspecteur de layout (UI) ;
- profiler (CPU, mémoire, réseau) ;
- gestion des crashs.
Chrome Remote Debugging (Android)
- Ouvrir Chrome sur le PC :
chrome://inspect/#devices - Lancer lâapp sur Ă©mulateur ou appareil Android
- Chrome affiche lâapp : cliquer sur Inspect
Vous obtenez :
- console
- réseau
- sources
- performance
⊠comme si câĂ©tait un onglet du navigateur.
đ 3.6.7 Tester les APIs natives
Toutes les APIs natives ne se testent pas de la mĂȘme façon.
đž CamĂ©ra
- navigateur : simulation ou indisponible ;
- émulateur : caméra virtuelle ;
- appareil réel : caméra physique.
đ RĂ©seau
- tester le mode offline / online ;
- observer la gestion des erreurs réseau ;
- vérifier le comportement de la synchro (Supabase / API).
Autres APIs natives
đ Filesystem
- navigateur : stockage limité / sandbox différent ;
- mobile : vrai systĂšme de fichiers sandboxĂ© par lâOS.
đł Haptics (vibrations)
- navigateur : aucun effet ;
- émulateur : souvent absent ;
- appareil réel : feedback haptique réel.
đ Conclusion : Les APIs natives doivent toujours ĂȘtre validĂ©es sur un vrai appareil.
â ïž 3.6.8 Erreurs courantes
Erreurs fréquentes :
- oublier
ionic cap syncaprĂšs modification (plugins, configâŠ) ; - tester une API native uniquement dans le navigateur ;
- oublier de déclarer une permission Android ou clé iOS ;
- app OK en web, mais qui plante en mobile ;
- confondre problĂšme Ionic et problĂšme Capacitor.
En cas de douteâŠ
Tester sur appareil réel dÚs que possible.
- Reproduire lâerreur sur mobile ;
- vérifier les logs (Logcat, Xcode) ;
- comparer le comportement avec le navigateur.
đ 3.6.9 Bonnes pratiques de test mobile
-
tester sur mobile le plus tĂŽt possible ;
-
ne pas attendre la fin du projet ;
-
valider réguliÚrement les fonctionnalités critiques :
- auth
- synchro
- caméra
- stockage
-
considérer le navigateur comme un outil de dev, pas comme validation finale ;
-
varier les environnements :
- navigateur
- émulateur
- 1â2 appareils rĂ©els si possible.
đ§Ș 3.6.10 ActivitĂ© pratique
Comparer les environnements
đŻ Objectif : observer les diffĂ©rences concrĂštes.
à réaliser :
-
Lancer lâapplication dans le navigateur
-
Lancer la mĂȘme application dans un Ă©mulateur Android
-
Si possible : la lancer sur un appareil réel
-
Tester dans chaque environnement :
- navigation
- performances perçues
- APIs natives (au moins Network / Preferences, voire Camera)
Notez :
- les comportements différents ;
- les erreurs spécifiques ;
- les limitations de chaque environnement.