EXAMEN NORMAL — IGL241 : TERMINAUX MOBILES & DÉVELOPPEMENT MOBILE
Session 1
Module : IGL241 — Programmation pour Terminaux Mobiles
Niveau : Licence en Informatique
Durée : 3 heures | Note totale : 20 points
Année académique : 2025–2026
Consignes générales : Les quatre (4) parties sont indépendantes. Toutes les questions sont obligatoires. Justifiez vos réponses. La partie IV est une épreuve pratique sur machine.
PARTIE I — Écosystème Mobile & Systèmes d’Exploitation
Barème : 5 points | Durée conseillée : 40 min
Contexte professionnel
Vous êtes consultant(e) en stratégie digitale pour l’agence Pixel Africa Consulting à Douala. Un client, patron d’une PME de distribution, vous sollicite : il veut lancer une application mobile pour sa boutique en ligne et vous pose des questions sur le marché mobile avant de décider de sa stratégie de développement.
Question 1 — Marché et Systèmes d’Exploitation (2 points)
-
(0,5 pt) Définissez ce qu’est un Système d’Exploitation (OS) mobile et expliquez son rôle fondamental de pont entre le matériel et les applications.
-
(0,5 pt) Citez les cinq (5) systèmes d’exploitation mobiles qui se disputaient le marché au début de l’ère smartphone (2007-2008). Lesquels ont totalement disparu depuis ?
-
(0,5 pt) En 2026, quel troisième acteur majeur a émergé en Chine, développé par Huawei ? Quelle est sa particularité technique par rapport à l’Android Open Source Project (AOSP) ?
-
(0,5 pt) L’OS mobile gère le NPU pour des tâches spécifiques en 2026. Développez le sigle NPU et expliquez son rôle croissant dans les smartphones modernes.
Question 2 — Terminaux Mobiles et OEMs (3 points)
-
(0,5 pt) Expliquez ce qu’est la « Screen Continuity » (Continuité de l’interface) et pourquoi elle représente un défi majeur pour les développeurs ciblant les smartphones pliables en 2026.
-
(0,5 pt) Le groupe BBK Electronics (Oppo, Vivo, OnePlus) est réputé pour une gestion très agressive des processus en arrière-plan. Quel impact concret cela a-t-il sur une application pour développeurs ciblant ces appareils ?
-
(1,0 pt) Transsion Holdings (Tecno, Infinix, Itel) domine le marché africain. Citez et expliquez trois (3) contraintes techniques qu’un développeur doit privilégier pour qu’une application soit performante sur ce parc mobile.
-
(1,0 pt) Comparez en un tableau synthétique les quatre OEMs chinois vus en cours (BBK/Oppo, Xiaomi, Huawei/Honor, Transsion) sur les critères suivants : marché cible principal, surcouche Android utilisée, particularité majeure pour le développeur.
PARTIE II — Types d’Applications, Programmation Embarquée & JavaScript
Barème : 5 points | Durée conseillée : 45 min
Contexte professionnel
Vous êtes architecte logiciel senior à TechCam Solutions, une startup de Yaoundé spécialisée dans la transformation digitale des entreprises camerounaises. Votre équipe doit choisir la bonne technologie pour plusieurs projets simultanés ayant des contraintes très différentes.
Question 3 — Types d’Applications Mobiles (2 points)
-
(0,5 pt) Définissez une application native et donnez pour chaque grande plateforme (Android, iOS) le langage de programmation principal utilisé en 2026.
-
(0,5 pt) Quelle est la différence fondamentale entre une PWA (Progressive Web App) et un site web mobile classique ? Citez deux fonctionnalités que les Service Workers permettent d’activer dans une PWA.
-
(1,0 pt) Complétez le tableau comparatif suivant :
Critère Application Native Application Web Application Hybride Performances ? ? ? Accès au hardware ? ? ? Coût de développement ? ? ? Publication sur Store ? ? ?
Question 4 — Programmation Embarquée (1,5 point)
-
(0,5 pt) Donnez trois exemples concrets de domaines d’application des systèmes embarqués vus en cours (exemples issus des secteurs automobile, médical, IoT…).
-
(0,5 pt) Pourquoi le langage C reste-t-il le « roi incontesté » de la programmation embarquée ? Vers quel nouveau langage l’industrie pivote-t-elle en 2026 pour garantir une sécurité mémoire absolue — et pour quelle raison précise ?
-
(0,5 pt) Expliquez pourquoi une fuite mémoire (Memory Leak) est beaucoup plus critique dans un système embarqué (type terminal IoT sous-marin) que dans une application de bureau ordinaire.
Question 5 — Écosystème JavaScript (1,5 point)
-
(0,5 pt) JavaScript a dépassé le simple navigateur web. Citez deux environnements qui permettent à JS de s’exécuter côté serveur (back-end).
-
(0,5 pt) Associez chaque framework à sa description :
Framework Description React A. Créé par Google, impose TypeScript obligatoirement, idéal pour les grandes applications bancaires Vue.js B. Bibliothèque Facebook, inventeur du DOM Virtuel Angular C. Framework progressif à courbe d’apprentissage idéale, au cœur de nombreux projets Laravel via InertiaJS -
(0,5 pt) Pourquoi ne développe-t-on presque plus en JavaScript « pur » pour les grands projets en 2026 ? Quel apport majeur TypeScript apporte-t-il au développeur avant même l’exécution (Runtime) ?
PARTIE III — Frameworks Cross-Platform, Flutter & Dart
Barème : 5 points | Durée conseillée : 45 min
Contexte professionnel
Vous intégrez l’équipe R&D de MobileCMR, une entreprise de développement mobile basée à Bafoussam. Le directeur technique vous demande de rédiger un rapport technique comparatif sur les frameworks modernes afin de choisir la technologie pour votre prochain grand projet.
Question 6 — Frameworks Historiques et Cross-Platform (2 points)
-
(0,5 pt) Expliquez le principe fondamental de Cordova : comment permet-il à du code HTML/CSS/JavaScript d’être distribué comme une application mobile sur les stores ?
-
(0,5 pt) Pourquoi l’approche WebView de Cordova a-t-elle finalement été jugée décevante en termes de performances ? Mentionnez les FPS et l’expérience utilisateur.
-
(0,5 pt) Comment fonctionne le Bridge (pont) dans React Native pour transformer du code JavaScript en interface visuelle native sur un iPhone ?
-
(0,5 pt) Qu’est-ce qui différencie Ionic (avec Capacitor) de React Native en termes de rendu graphique ? Quel outil moderne remplace désormais Cordova au sein de l’écosystème Ionic ?
Question 7 — Flutter et le Langage Dart (3 points)
-
(0,5 pt) Dart propose une double compilation. Expliquez la différence entre le mode JIT (Just-In-Time) utilisé en développement et le mode AOT (Ahead-Of-Time) utilisé pour la production. Quel est l’intérêt du Hot Reload ?
-
(0,5 pt) Contrairement à React Native, comment Flutter affiche-t-il ses composants à l’écran ? Nommez le moteur graphique actuel (2025-2026) qui a remplacé Skia, et expliquez pourquoi cela garantit une interface identique sur tous les modèles de smartphones.
-
(0,5 pt) Expliquez la différence fondamentale entre un StatelessWidget et un StatefulWidget en Flutter. Donnez un exemple concret d’usage de chacun (ex: un texte statique vs un bouton « J’aime » avec compteur).
-
(0,5 pt) En Flutter, « Everything is a Widget ». Décrivez l’arborescence Widget (Widget Tree) en expliquant comment s’assemblent les widgets
Center,Column,TextetElevatedButtonpour former une interface. -
(1,0 pt) Concernant la gestion d’état (State Management) en Flutter :
- Qu’est-ce que le « Prop Drilling » et pourquoi est-il problématique dans une grande application ?
- Citez trois (3) solutions de State Management vues en cours et donnez une caractéristique distinctive de chacune.
PARTIE IV — Travaux Pratiques : Réalisation d’une Interface de Connexion
Barème : 5 points | Épreuve sur machine
Contexte professionnel
Vous êtes développeur(se) mobile junior recruté(e) par EduMobile Cameroun, une startup EdTech. Votre première mission est de créer le prototype fonctionnel de l’écran de connexion de leur application mobile, de générer le fichier APK de distribution et de le tester sur un émulateur Android Studio.
Exercice 1 — Création du projet et de la page de connexion Ionic (2,5 points)
Travail demandé :
-
(0,5 pt) Donnez la commande npm permettant d’installer la CLI Ionic globalement sur votre machine. Ensuite, donnez la commande pour vérifier la version installée.
-
(1,0 pt) Créez un nouveau projet Ionic nommé
edu-mobileavec le templateblank. Donnez la commande exacte utilisée, puis générez une page nomméeconnexion(donnez également la commande utilisée). -
(1,0 pt) Dans la page
connexion, réalisez l’interface HTML Ionic suivante :- Un
<ion-header>avec une<ion-toolbar>de couleur sombre contenant le titre centré « Connexion ». - Un
<ion-content>avec un formulaire comprenant :- Un champ de type
textavec le placeholder « Adresse e-mail » et une icônemail-outline(ion-icon) à droite. - Un champ de type
passwordavec le placeholder « Mot de passe » et une icônelock-closed-outlineà droite. - Un bouton
expand="block"de couleur primaire avec le texte « Se connecter ». - Un lien texte centré en dessous : « Mot de passe oublié ? ».
- Un champ de type
- Un
Exercice 2 — Génération de l’APK et test sur émulateur (2,5 points)
Travail demandé :
-
(0,5 pt) Donnez la commande Ionic/Capacitor permettant d’ajouter la plateforme Android au projet
edu-mobile. Quel dossier est créé à la racine du projet après cette étape ? -
(0,5 pt) Donnez la commande permettant de compiler l’application et d’ouvrir le projet Android directement dans Android Studio (commande tout-en-un).
-
(0,5 pt) Dans Android Studio, décrivez les étapes (3 à 4 étapes) nécessaires pour lancer un émulateur Android (AVD — Android Virtual Device) et y déployer votre application.
-
(1,0 pt) Pour générer un fichier APK de debug distribuable, donnez :
- La commande
ionicoucapacitorpermettant de construire les assets web before l’export natif. - Le chemin (relatif à la racine du projet) où le fichier APK sera généré dans Android Studio après un build de type debug.
- Capture écran obligatoire : faites une capture de l’émulateur affichant votre écran de connexion et joignez-la à votre copie (ou décrivez précisément l’apparence si hors machine).
- La commande
— Fin de l’examen Session 1 — Bon courage à toutes et à tous —
Barème récapitulatif :
Partie Thème Questions Total I Écosystème Mobile & OS Q1 (2 pts) + Q2 (3 pts) 5 pts II Types d’Apps, Embarqué & JavaScript Q3 (2 pts) + Q4 (1,5 pt) + Q5 (1,5 pt) 5 pts III Frameworks Cross-Platform & Flutter Q6 (2 pts) + Q7 (3 pts) 5 pts IV TP : Interface Connexion + APK Ex1 (2,5 pts) + Ex2 (2,5 pts) 5 pts Total 20 pts
Prêt à passer à la suite ?
Vous avez terminé cette leçon sur EXAMEN NORMAL — IGL241 : TERMINAUX MOBILES & DÉVELOPPEMENT MOBILE. Continuez votre apprentissage avec la prochaine leçon ou explorez d'autres formations.