Niveau : Junior
1. Lors de la phase d’initialisation de votre application React Native, comment définissez-vous la structure de base du projet en respectant les principes de gestion de projet ?
- Réponse : On commence par définir l’objectif, le calendrier et les ressources (la triple contrainte). Techniquement, on modélise la solution sous forme d’algorithme avant de coder, en identifiant les entrées (données utilisateur) et les sorties (affichage écran).
- Modules concernés : [Conduite de projet] & [Bases de la programmation].
2. Comment optimiser l’affichage d’un logo de haute qualité dans une webapp mobile sans ralentir le chargement ?
- Réponse : Il faut privilégier le format SVG (vectoriel) car il est léger et ne perd pas de qualité à l’agrandissement. Pour les photos, on utilise le format JPG compressé ou WebP, en veillant à une résolution adaptée au web (72 dpi) pour éviter de surcharger la bande passante.
- Modules concernés : [Multimédia] & [Création de site web].
3. Dans React Native, si vous devez stocker une liste de tâches, pourquoi utiliser une « liste » (tableau) plutôt que des variables simples ?
- Réponse : Un tableau permet de stocker plusieurs valeurs sous un seul identificateur et de les manipuler facilement via des indices ou des boucles. C’est la base pour gérer des collections de données dynamiques dans une application.
- Modules concernés : [Bases de la programmation] & [Création de site web].
4. Votre application doit demander l’âge de l’utilisateur. Comment gérez-vous cette interaction proprement ?
- Réponse : On utilise une instruction d’entrée (comme un composant
TextInput). Puisque les entrées sont souvent récupérées sous forme de texte, il faut convertir la donnée en type « entier » pour effectuer des calculs ou des vérifications logiques. - Modules concernés : [Bases de la programmation] & [Création de site web].
5. Pourquoi est-il important d’utiliser l’indentation lors du développement de vos composants React ?
- Réponse : L’indentation est obligatoire dans certains langages (comme Python) pour le fonctionnement, mais en développement web/mobile, elle sert surtout à rendre le code lisible et structuré pour l’équipe. Un code bien indenté facilite la maintenance et la collaboration au sein du projet.
- Modules concernés : [Bases de la programmation] & [Création de site web].
6. Pour que votre application puisse communiquer avec un serveur distant, quels éléments réseau sont indispensables ?
- Réponse : L’appareil mobile doit avoir une adresse IP pour être identifié sur le réseau et utiliser le protocole DNS pour traduire l’URL de l’API en adresse IP compréhensible par la machine. La connexion se fait généralement via le protocole sécurisé HTTPS.
- Modules concernés : [Transmission et réseaux] & [Création de site web].
7. Si vous travaillez en équipe sur cette application, quel modèle de collaboration est le plus adapté ?
- Réponse : On utilise la philosophie Agile pour livrer régulièrement des versions fonctionnelles. Les outils collaboratifs (comme GitHub) permettent de partager le code, tandis que des services comme Google Drive ou OneDrive (Cloud) facilitent le partage des ressources graphiques.
- Modules concernés : [Conduite de projet] & [Transmission et réseaux].
Niveau : Medior
8. Comment structurer les données d’un utilisateur (nom, email, photo) dans votre application React Native en utilisant la POO ?
- Réponse : On crée une classe
Utilisateur(le modèle) avec des propriétés (nom, email) et un constructeur pour initialiser l’objet lors de la connexion. On peut ensuite créer plusieurs instances (objets) pour chaque utilisateur. - Modules concernés : [Programmation orientée objet] & [Bases de la programmation].
9. Votre application doit afficher des produits. Comment lier les données d’une base SQL à vos objets en code ?
- Réponse : On effectue une requête
SELECTsur la tableProduitsde la base de données. Chaque enregistrement (ligne) de la table est ensuite transformé en un objet dans l’application via une structure d’enregistrement ou un dictionnaire. - Modules concernés : [Gestion des bases de données] & [Bases de la programmation].
10. Comment garantissez-vous que le solde d’un compte dans une application bancaire mobile ne soit pas modifié n’importe comment ?
- Réponse : On utilise l’encapsulation en rendant la propriété
soldeprivée. On ne peut la modifier que via des méthodes spécifiques (ex:deposer(),retirer()) qui vérifient si l’opération est autorisée. - Modules concernés : [Programmation orientée objet] & [Bases de la programmation].
11. Lors du développement d’un formulaire d’inscription, quelle méthode d’envoi de données privilégier et pourquoi ?
- Réponse : Il faut utiliser la méthode POST. Contrairement à GET, les données ne sont pas visibles dans l’URL, ce qui est indispensable pour la sécurité des données personnelles. Côté réseau, cela transite par la couche Application du modèle OSI.
- Modules concernés : [Création de site web] & [Transmission et réseaux].
12. Comment gérer le flux de travail de votre équipe si vous développez de nouvelles fonctionnalités chaque semaine ?
- Réponse : On peut utiliser la méthode Scrum avec des Sprints de 2 semaines. Un tableau Kanban permet de visualiser les tâches (À faire, En cours, Terminé) et d’éviter les goulots d’étranglement grâce aux limites WIP.
- Modules concernés : [Conduite de projet] & [Transmission et réseaux (Cloud/Collaboratif)].
13. Si votre application mobile doit lire des vidéos tutoriels, comment s’assurer qu’elles soient lisibles par tous les utilisateurs ?
- Réponse : Il faut exporter les séquences au format MP4, qui offre le meilleur rapport qualité/poids et une grande compatibilité. On utilise une timeline pour agencer le son et l’image de manière synchronisée lors du montage.
- Modules concernés : [Multimédia] & [Création de site web].
14. Comment tester si votre application mobile arrive bien à joindre votre serveur de base de données ?
- Réponse : On utilise la commande ping pour vérifier la connectivité réseau entre le client et le serveur. Si le serveur répond, on vérifie ensuite que le port spécifique du SGBD (ex: 3306 pour MySQL) est ouvert dans le pare-feu.
- Modules concernés : [Transmission et réseaux] & [Gestion des bases de données].
Niveau : Senior
15. Comment concevoir un système de notifications push qui s’adapte à différents types d’utilisateurs (Étudiant, Professeur) ?
- Réponse : On utilise l’héritage : une classe de base
Utilisateurcontient les fonctions communes, et des classes dérivéesEtudiantetProfesseurajoutent des comportements spécifiques. En base de données, on utilise une clé étrangère pour lier chaque utilisateur à son rôle. - Modules concernés : [Programmation orientée objet] & [Gestion des bases de données].
16. Votre application mobile subit des lenteurs lors de la récupération de données complexes. Quelle stratégie SQL adopter ?
- Réponse : On utilise des jointures (
JOIN) pour récupérer les données de plusieurs tables en une seule requête plutôt que de multiplier les appels. On veille aussi à éviter les redondances lors de la modélisation pour garder des tables légères et cohérentes. - Modules concernés : [Gestion des bases de données] & [Création de site web (JS asynchrone)].
17. Comment sécuriser l’accès aux données sensibles de l’application contre les attaques externes ?
- Réponse : On met en place un chiffrement (cryptage) des données et on configure des règles de filtrage strictes sur le pare-feu. On peut également placer le serveur de base de données dans une zone réseau protégée, tandis que l’API est en DMZ.
- Modules concernés : [Transmission et réseaux] & [Gestion des bases de données].
18. Dans une démarche DevOps, comment automatiser la mise à jour de votre webapp React Native ?
- Réponse : On met en place un pipeline CI/CD : le code est fusionné fréquemment (Intégration Continue), testé automatiquement, puis déployé sur les serveurs. On peut utiliser la conteneurisation (Docker) pour s’assurer que l’application s’exécute de la même manière partout.
- Modules concernés : [Conduite de projet] & [Transmission et réseaux].
19. Comment gérer le décalage de planning (loi de Hofstadter) sur un projet React Native complexe ?
- Réponse : Le chef de projet doit identifier le chemin critique (CPM) : si une tâche sur ce chemin prend du retard, tout le projet est retardé. En cas de dérive, il peut utiliser la compression (ajouter des ressources) ou la marche rapide (paralléliser des tâches).
- Modules concernés : [Conduite de projet] & [Bases de la programmation (Logique)].
20. Votre application doit traiter des milliers de sons d’utilisateurs. Comment optimiser le stockage et la transmission ?
- Réponse : Il faut appliquer une compression avec perte (format MP3) et réduire le bitrate (ex: 128 kbps) pour alléger les fichiers sans trop dégrader la qualité. Côté réseau, l’utilisation d’un serveur de fichiers dédié ou d’un service Cloud permet de ne pas saturer le serveur d’application.
- Modules concernés : [Multimédia] & [Transmission et réseaux].

