Exercices de Révision : IGL241 - Terminaux Mobiles (Édition 2026)
Ce document contient 3 exercices par chapitre pour vous aider à réviser les concepts clés du cours.
Chapitre 1 : L’Écosystème Mobile en 2026
Exercice 1.1 : Le Rôle du Système d’Exploitation
En 2026, quel composant matériel spécifique est de plus en plus sollicité par l’OS pour les tâches d’Intelligence Artificielle embarquée, et quel est le rôle fondamental de l’OS par rapport au “Sandboxing” ?
Exercice 1.2 : Évolution du Marché
Citez les cinq systèmes d’exploitation mobiles qui se disputaient le marché au début de l’ère du smartphone (2007-2008). Lesquels ont totalement disparu aujourd’hui ?
Exercice 1.3 : L’Alternative HarmonyOS
Pourquoi l’écosystème HarmonyOS est-il devenu un acteur majeur en Chine, et quelle est sa particularité technique par rapport à Android Open Source Project (AOSP) dans ses versions récentes ?
Chapitre 2 : Les Terminaux Mobiles et l’Hégémonie des OEMs Chinois
Exercice 2.1 : Défis des Écrans Pliables
Expliquez le concept de “Screen Continuity” (Continuité de l’interface) et pourquoi il représente un défi majeur pour les développeurs d’applications sur mobiles pliables.
Exercice 2.2 : Gestion de l’Énergie par les OEMs
Pourquoi un développeur doit-il être particulièrement vigilant sur la gestion des processus en arrière-plan (background) lorsqu’il cible des appareils des groupes comme BBK Electronics (Oppo, Vivo) ?
Exercice 2.3 : Optimisation pour le Marché Africain
Le constructeur Transsion Holdings domine le marché africain. Quelles sont les trois contraintes techniques qu’un développeur doit privilégier pour que son application soit un succès sur ce parc mobile spécifique ?
Chapitre 3 : Architectures Android, iOS et Processus de Publication
Exercice 3.1 : Android Runtime (ART)
Quelle est la différence fondamentale entre l’ancienne machine virtuelle Dalvik et l’Android Runtime (ART) actuel concernant la compilation du code ? Quel est l’avantage pour l’utilisateur final ?
Exercice 3.2 : Développement iOS
Quelles sont les deux conditions obligatoires (matériel et logiciel) pour pouvoir développer et compiler une application native iOS ? Quel langage est aujourd’hui privilégié par rapport à Objective-C ?
Exercice 3.3 : Android App Bundle (AAB)
Expliquez pourquoi le format .aab a remplacé le format .apk sur le Google Play Store. Quel est le bénéfice pour le poids du téléchargement ?
Chapitre 4 : Applications Natives, Web, PWA et Hybrides
Exercice 4.1 : Comparaison Native vs Web
Comparez les applications natives et les applications web mobiles sur deux critères : l’accès au matériel (hardware) et le coût de développement initial.
Exercice 4.2 : Progressive Web Apps (PWA)
En quoi consiste le rôle des “Service Workers” dans une PWA ? Citez deux fonctionnalités “magiques” qu’ils permettent d’activer.
Exercice 4.3 : Le Modèle Hybride
Définissez ce qu’est une “chimère” hybride dans le contexte du développement mobile. Quel composant applicatif natif est utilisé pour afficher l’interface ?
Chapitre 5 : Programmation Embarquée
Exercice 5.1 : Temps Réel et Fiabilité
Qu’est-ce qu’un RTOS (Real-Time Operating System) et pourquoi est-il indispensable dans des domaines comme l’aéronautique ou l’automobile par rapport à un OS généraliste ?
Exercice 5.2 : Langages de l’Embarqué
Pourquoi le langage C reste-t-il le “roi incontesté” de l’embarqué ? Vers quel nouveau langage l’industrie pivote-t-elle en 2026 pour garantir une sécurité mémoire absolue ?
Exercice 5.3 : Le Défi des “Memory Leaks”
Pourquoi une fuite mémoire (Memory Leak) est-elle beaucoup plus critique dans un système embarqué (type terminal IoT) que dans une application de bureau classique ?
Chapitre 6 : L’Ecosystème JavaScript moderne
Exercice 6.1 : JavaScript au-delà du navigateur
Citez deux environnements (ou successeurs) qui permettent à JavaScript de s’exécuter côté serveur (Back-end) pour communiquer avec des bases de données.
Exercice 6.2 : Frameworks Front-end
Associez chaque framework à son créateur ou sa particularité :
- React
- Vue.js
- Angular
A. Créé par Google, utilise TypeScript obligatoirement.
B. Bibliothèque de Facebook ayant inventé le DOM Virtuel.
C. Framework progressif prisé pour sa courbe d’apprentissage idéale.
Exercice 6.3 : L’Apport de TypeScript
Pourquoi ne développe-t-on presque plus en JavaScript “pur” en 2026 pour les grands projets mobiles ? Quel est l’avantage principal du typage statique strict ?
Chapitre 7 : Frameworks historiques et fondations du “hybride”
Exercice 7.1 : Le fonctionnement de Cordova
Comment Apache Cordova permet-il à une application web d’accéder à l’appareil photo du téléphone ? Expliquez le concept de “pont d’API”.
Exercice 7.2 : Limites du WebView
Pourquoi les performances de Cordova ont-elles fini par être jugées décevantes par rapport aux solutions natives ? (Mentionnez les FPS et l’expérience utilisateur).
Exercice 7.3 : AngularJS et le Data Binding
Expliquez le concept de “Two-Way Data Binding” introduit par AngularJS. Comment cela a-t-il changé la réactivité des interfaces mobiles à l’époque ?
Chapitre 8 : Solutions Multiplateformes contemporaines (Cross-Platform)
Exercice 8.1 : React Native et le Bridge
Comment fonctionne le “Bridge” (pont) dans React Native pour transformer du code JavaScript en interface visuelle sur iPhone ?
Exercice 8.2 : Ionic et Capacitor
Qu’est-ce qui différencie l’approche d’Ionic de celle de React Native en termes de rendu graphique ? Quel outil moderne remplace désormais Cordova au sein d’Ionic ?
Exercice 8.3 : .NET MAUI
À quel environnement écosystème d’entreprise le framework .NET MAUI (successeur de Xamarin) est-il particulièrement adapté ? Quel langage de programmation utilise-t-il ?
Chapitre 9 : L’Avènement de Flutter et du Langage Dart
Exercice 9.1 : La compilation de Dart
Dart propose une “double compilation”. Expliquez la différence entre le JIT (Just-In-Time) utilisé en développement et l’AOT (Ahead-of-Time) utilisé en production. Quel est l’intérêt du Hot Reload ?
Exercice 9.2 : Moteur de rendu Impeller
Contrairement à React Native, comment Flutter affiche-t-il ses composants sur l’écran ? Pourquoi cela garantit-il une interface identique sur tous les modèles de smartphones ?
Exercice 9.3 : Stateless vs Stateful Widgets
Quelle est la différence fondamentale entre un StatelessWidget et un StatefulWidget concernant la mise à jour dynamique de l’affichage ?
Chapitre 10 : Conception Backend API avec Laravel (Spécificité Mobile)
Exercice 10.1 : Architecture RESTful
Quels sont les 4 verbes HTTP utilisés pour les opérations CRUD dans une API Laravel ? Quel format de donnée est utilisé pour échanger avec l’application Flutter ?
Exercice 10.2 : Sécurité et API Resources
Pourquoi est-il dangereux d’envoyer un modèle Eloquent “brut” vers l’application mobile ? Quel outil Laravel doit-on utiliser pour transformer et filtrer les données envoyées ?
Exercice 10.3 : Authentification avec Sanctum
Une application mobile n’utilisant pas de cookies, comment Laravel Sanctum gère-t-il l’authentification persistante après le premier login ? Expliquez le rôle du “Bearer Token”.
Chapitre 11 : Consommation de l’API Laravel via Flutter
Exercice 11.1 : Asynchronisme et Future
Pourquoi les requêtes réseau vers l’API Laravel doivent-elles impérativement être asynchrones (Future / async / await) en Dart ? Quel serait l’impact sur l’interface utilisateur si elles étaient synchrones ?
Exercice 11.2 : Le concept de PODO
Que signifie l’acronyme PODO (Plain Old Dart Objects) et pourquoi est-il indispensable de “mapper” le JSON reçu du backend vers des classes Dart typées ?
Exercice 11.3 : FutureBuilder
Expliquez le rôle du Widget FutureBuilder dans Flutter. Comment gère-t-il visuellement les trois états possibles d’une requête (Attente, Erreur, Données reçues) ?
Chapitre 12 : Gestionnaires d’État et Déploiement Final
Exercice 12.1 : State Management
Qu’est-ce que le “Prop Drilling” et pourquoi l’utilisation d’un gestionnaire d’état comme Provider ou Riverpod permet-elle de l’éviter dans un grand arbre de widgets ?
Exercice 12.2 : Déploiement Android
Dans quel but utilise-t-on l’option --release lors d’un flutter build appbundle ? Citez l’une des techniques d’optimisation effectuées par Flutter lors de cette étape (ex: minification).
Exercice 12.3 : Publication iOS
Pourquoi le déploiement sur iOS nécessite-t-il obligatoirement de passer par l’outil Xcode et quels sont les deux environnements de destination possibles pour les tests et la production (ex: TestFlight) ?
Prêt à passer à la suite ?
Vous avez terminé cette leçon sur Exercices de Révision : IGL241 - Terminaux Mobiles (Édition 2026). Continuez votre apprentissage avec la prochaine leçon ou explorez d'autres formations.