Développement Mobile & Flutter (IGL241)
Thème :
Junior
1 vues ·16/19 leçons

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é :

  1. React
  2. Vue.js
  3. 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.