Schools16 semaines25 h par semaine

Développeur mobile iOS

Quatre mois, huit sprints et un mentor senior pour concevoir, tester et publier sur l'App Store une application iPhone soignée et utilisable hors connexion, dans la stack de votre choix, sur des projets issus des missions Formuloo.

À la fin du parcours, vous saurez

  • Écrire une logique métier claire et testée dans le langage de la stack choisie
  • Construire des interfaces déclaratives conformes aux conventions d'iOS
  • Organiser la navigation et des formulaires confortables sur iPhone
  • Consommer des API REST en gérant erreurs, réseau instable et authentification
  • Rendre une application utilisable hors connexion grâce à la persistance locale
  • Tester, déboguer et profiler une application iOS
  • Distribuer une application via TestFlight et préparer sa soumission à l'App Store

Le métier

Le développeur mobile iOS conçoit les applications utilisées sur iPhone et iPad. Il construit des écrans fluides qui respectent les conventions d'Apple, organise la navigation, échange avec des API, conserve les données sur l'appareil et mène l'application jusqu'à la validation de l'App Store, puis la fait évoluer version après version. Chez les clients de Formuloo, ces applications servent au tourisme, à la santé, au commerce ou à la relation client, en Europe comme en Afrique.

Comment se déroule le parcours

Le parcours dure seize semaines, découpées en huit sprints de deux semaines. Vous travaillez dans la stack choisie lors de l'entretien de positionnement : Swift avec SwiftUI, React Native avec Expo, ou Flutter. Les projets sont conçus pour être réalisables dans chacune d'elles.

Du sprint 1 au sprint 7, vous développez « Sentiers », l'application d'un office de tourisme qui recense les itinéraires de randonnée de son territoire. Elle s'enrichit à chaque sprint : modèle de données, écrans, navigation et formulaires, appels réseau, fonctionnement hors ligne, tests, puis publication sur TestFlight. Le sprint 8 vous place sur une application réelle issue d'une mission Formuloo.

L'accompagnement

Un mentor senior, développeur iOS en activité, suit au plus dix apprenants. Il vous retrouve chaque semaine, relit votre code et vous aide à franchir les obstacles propres à l'écosystème Apple, de la gestion de la mémoire aux certificats de signature. Chaque sprint se termine par une soutenance avec démonstration. Un projet non validé se reprend avant d'avancer.

Les cours libres recommandés posent les bases ; leur couche renforcée, réservée aux apprenants Schools, apporte des exercices corrigés, des cas réels anonymisés et des variantes propres à votre stack.

À la sortie

La soutenance finale, devant un jury, porte sur l'application livrée et sur votre portfolio de huit projets. Sa réussite donne la certification Formuloo, vérifiable par QR code, et ouvre l'accès à Formuloo Labs et au bassin Talents.

Prérequis

Avoir suivi le parcours découverte iOS ou disposer d'un niveau équivalent en programmation. Un Mac est indispensable pour la stack Swift et pour publier sur l'App Store, quelle que soit la stack.

Technologies au choix :Swift / SwiftUIReact Native (Expo)Flutter

Les huit sprints

Deux semaines par sprint. Chaque sprint se conclut par un projet déposé puis soutenu devant votre mentor ; le suivant s'ouvre quand il est validé.

1Fondamentaux du langage (Swift ou Dart)Le modèle de données de Sentiers2 semaines

Maîtriser le langage de la stack choisie : types, optionnels ou valeurs nulles, structures et classes, protocoles ou interfaces, collections, gestion des erreurs, et savoir écrire une logique métier testée sans interface.

L'office de tourisme d'une vallée des Alpes publie ses itinéraires de randonnée dans un fichier tableur que personne ne lit sur le terrain. Il veut une application iPhone, qui sera votre fil rouge jusqu'au sprint 7. Vous commencez par le cœur de l'application, sans aucun écran : itinéraires, étapes, points d'intérêt, niveau de difficulté, saisons d'ouverture. À partir d'un fichier de traces fourni, votre code calcule la distance, le dénivelé positif et une durée estimée selon le profil du marcheur, puis filtre les itinéraires selon plusieurs critères. Les données incomplètes ou incohérentes du fichier doivent être signalées sans faire planter le programme. Vous accompagnez ce module de tests unitaires. Le mentor regardera la clarté de vos types, votre traitement des valeurs absentes et la lisibilité de vos fonctions.

À livrer
  • Module métier versionné qui charge, calcule et filtre les itinéraires
  • Tests unitaires couvrant les calculs et les données incohérentes
  • Note décrivant le modèle de données et les règles de calcul
Compétences évaluées
Utiliser le langage de la stack choisieGérer les optionnels et les erreursModéliser un domaine avec des typesÉcrire des tests unitaires
2Interface déclarative avec SwiftUI ou équivalentLes écrans de Sentiers2 semaines

Construire des écrans avec le modèle déclaratif de la stack : composition de vues, gestion de l'état, listes performantes, prise en charge de la taille de texte dynamique, du mode sombre et de VoiceOver.

L'office de tourisme a fait dessiner les principaux écrans : liste des itinéraires avec filtres, fiche détaillée avec profil de dénivelé, carte des points d'intérêt et écran des favoris. Vous construisez ces écrans avec l'interface déclarative de votre stack, en les reliant au module du sprint 1. Vous créez des composants réutilisables (carte d'itinéraire, pastille de difficulté, profil de dénivelé simplifié) et vous gérez l'état d'affichage proprement. L'application doit respecter les conventions d'iOS, rester lisible avec une grande taille de texte, s'adapter au mode sombre et être utilisable avec VoiceOver, car l'office reçoit de nombreux visiteurs âgés. En soutenance, vous faites la démonstration avec VoiceOver activé et une taille de texte maximale.

À livrer
  • Application affichant les quatre écrans, reliés au module métier
  • Composants réutilisables avec leurs aperçus
  • Démonstration avec VoiceOver, mode sombre et texte agrandi
Compétences évaluées
Construire une interface déclarativeGérer l'état des vuesRespecter les conventions d'iOSRendre une application accessible
3Navigation et formulairesSignaler un problème sur un sentier2 semaines

Structurer une application à plusieurs écrans : piles de navigation, onglets, feuilles modales, liens profonds, et formulaires validés qui tirent parti des claviers, des sélecteurs et des permissions d'iOS.

Les agents de l'office passent beaucoup de temps à vérifier l'état des chemins. L'office veut que les randonneurs puissent signaler eux-mêmes un arbre tombé, un balisage effacé ou une passerelle fragile. Vous organisez la navigation de l'application : onglets, passage de la liste à la fiche puis à une étape, feuille modale pour les filtres, ouverture directe d'une fiche par un lien partagé. Vous développez ensuite le formulaire de signalement : type de problème, description, photo prise avec l'appareil, position actuelle avec demande d'autorisation expliquée, coordonnées facultatives. Le formulaire est validé au fil de la saisie et reste utilisable d'une main. Le mentor vérifiera le comportement de l'application quand l'utilisateur refuse l'accès à l'appareil photo ou à la position.

À livrer
  • Navigation complète avec onglets, piles, modales et liens profonds
  • Formulaire de signalement avec photo, position et validation
  • Démonstration des refus d'autorisation et des messages associés
Compétences évaluées
Concevoir la navigation d'une application iOSConstruire des formulaires mobilesDemander des autorisations au bon momentGérer les liens profonds
4Réseau et APISentiers connectée2 semaines

Connecter l'application à des services distants : appels REST asynchrones, décodage JSON, authentification, envoi de fichiers, gestion des erreurs et des réseaux instables, organisation du code en couches testables.

Les itinéraires changent selon les saisons et les signalements doivent parvenir à l'office. Deux API vous sont fournies : celle de l'office (itinéraires, signalements, compte du randonneur) et un service de prévisions météo par position. Vous remplacez le fichier local par l'API de l'office et vous ajoutez la météo des trois prochains jours sur chaque fiche. Les signalements sont envoyés au serveur avec leur photo compressée. Vous organisez le code en couches (client réseau, dépôts, modèles de vue) et vous gérez l'authentification du randonneur, les délais d'attente, les erreurs du serveur et les états de chargement visibles. Une alerte s'affiche si la météo annonce un orage sur l'itinéraire choisi. En soutenance, le mentor dégradera la connexion pour vérifier que l'application reste claire et ne perd aucun signalement.

À livrer
  • Application connectée aux deux API fournies, avec envoi de signalements
  • Architecture réseau en couches documentée par un schéma
  • Démonstration sur connexion dégradée sans perte de données
Compétences évaluées
Appeler une API de façon asynchroneDécoder des données JSONEnvoyer des fichiers vers un serveurGérer les erreurs réseau
5PersistanceSentiers hors ligne2 semaines

Rendre l'application fiable en montagne : stockage local structuré, téléchargement d'itinéraires pour un usage hors ligne, file d'envoi différé, préférences utilisateur et stockage sécurisé dans le trousseau.

Sur la plupart des sentiers de la vallée, il n'y a aucun réseau. Un randonneur doit pouvoir préparer sa sortie chez lui, puis tout consulter sur place. Vous ajoutez un stockage local structuré qui conserve les itinéraires consultés et les favoris. Un bouton permet de télécharger un itinéraire complet (fiche, étapes, photos, fond de carte simplifié) avec un indicateur de l'espace occupé et la possibilité de le supprimer. Les signalements créés hors ligne sont mis en attente et envoyés automatiquement au retour du réseau. Les préférences (profil de marche, unités) sont conservées, et le jeton de session est rangé dans le trousseau. Vous documentez la stratégie de mise à jour des données téléchargées : quand l'application les rafraîchit et comment elle signale un itinéraire modifié depuis le téléchargement.

À livrer
  • Application utilisable en mode avion avec itinéraires téléchargés
  • File d'envoi différé des signalements démontrée
  • Note sur la stratégie de stockage et de mise à jour des données
Compétences évaluées
Utiliser un stockage local structuréConcevoir un mode hors ligneSynchroniser des envois différésProtéger des données dans le trousseau
6Tests et débogageFiabiliser Sentiers avant l'été2 semaines

Garantir la qualité de l'application : tests unitaires des couches métier et données, tests d'interface des parcours clés, débogage avec les outils de la stack, profilage de la mémoire, de l'énergie et du temps de démarrage.

Une version de test a été confiée à vingt guides de montagne. Leurs retours sont précis : la batterie se vide vite pendant une sortie, l'application met plusieurs secondes à démarrer et un plantage survient parfois en ouvrant une fiche téléchargée. Vous reproduisez ces trois problèmes, vous en trouvez la cause avec les outils de débogage et de profilage de votre stack, puis vous les corrigez. Pour chacun, vous écrivez un test qui empêche sa réapparition. Vous complétez ensuite la stratégie de tests : tests unitaires des calculs et des dépôts de données, tests d'interface des parcours principaux (recherche, téléchargement, signalement hors ligne). Votre rapport présente pour chaque problème les mesures avant et après correction.

À livrer
  • Trois anomalies corrigées, chacune protégée par un test
  • Suite de tests unitaires et d'interface exécutable en une commande
  • Rapport de profilage avec mesures avant et après correction
Compétences évaluées
Déboguer une application iOSProfiler mémoire, énergie et démarrageÉcrire des tests d'interfaceAnalyser un rapport de plantage
7TestFlight, App Store et CIPublier Sentiers2 semaines

Industrialiser la livraison : identifiants et profils de signature, configurations par environnement, pipeline d'intégration continue, distribution TestFlight, fiche App Store et respect des règles de confidentialité d'Apple.

L'office veut présenter l'application lors de l'ouverture de la saison, et chaque correction doit pouvoir être livrée aux guides sans manipulation manuelle. Vous configurez les environnements de l'application (développement, recette, production) avec leurs adresses d'API, puis la signature, en gardant certificats et clés hors du dépôt. Vous mettez en place un pipeline qui lance les tests et construit l'application à chaque pull request, et qui envoie une version sur TestFlight à chaque fusion. Vous préparez la fiche de l'App Store : textes, captures aux bonnes dimensions, étiquette de confidentialité qui décrit honnêtement les données collectées, justification des autorisations demandées. En soutenance, vous livrez une modification en direct et le mentor l'installe depuis TestFlight.

À livrer
  • Pipeline d'intégration continue qui teste, construit et envoie sur TestFlight
  • Version disponible pour des testeurs via TestFlight
  • Fiche App Store et étiquette de confidentialité prêtes à la soumission
Compétences évaluées
Gérer la signature d'une application iOSAutomatiser une livraison mobileDistribuer une version via TestFlightRespecter les règles de l'App Store
8Application réelle, puis soutenance finaleMission client Formuloo2 semaines

Réaliser une application iOS à partir d'un besoin client réel issu d'une mission Formuloo, la livrer jusqu'à TestFlight et la défendre devant un jury avec l'ensemble de son portfolio.

Ce dernier sprint vous confie un besoin client réel issu d'une mission Formuloo : une application iPhone à créer ou une application existante à faire évoluer, par exemple pour une enseigne de commerce, une association ou un service de santé. Vous recevez au début du sprint les maquettes, l'API ou sa documentation et les contraintes du client, anonymisées si nécessaire. Vous menez le projet comme en entreprise : reformulation du besoin, découpage en tickets, développement dans la stack choisie, accessibilité, tests et distribution par TestFlight. Le mentor tient le rôle de référent technique et un membre de l'équipe Formuloo celui du client, avec un point d'étape à mi-sprint. La soutenance finale se déroule devant un jury : démonstration sur un appareil réel, présentation du portfolio des huit sprints et questions sur vos choix, vos compromis et ce que vous amélioreriez ensuite.

À livrer
  • Dépôt Git de l'application livrée, avec tests, pipeline et documentation
  • Version distribuée via TestFlight et démonstration au client
  • Support de soutenance finale présentant le projet et le portfolio des huit sprints
Compétences évaluées
Mener un projet mobile de bout en boutCommuniquer avec un clientArbitrer entre délai, qualité et périmètreDéfendre ses choix devant un jury