Plan du cours
Introduction
Semaine 1 : Avancé Swift, Kotlin, et Java Concepts de script
- Swift (iOS)
- Fonctions avancées : Fermetures, capture de valeurs, fonctions d'ordre supérieur
- Programmation orientée protocole et génériques
- Gestion de la mémoire avec ARC (Automatic Reference Counting)
- Kotlin (Android)
- Fonctions d'extension et Kotlin bibliothèque standard
- Coroutines pour la programmation asynchrone
- Classes scellées, enums et gestion avancée des erreurs
- JavaScript (React Native)
- Fonctionnalités ES6+ avancées : Destructuration, async/await, promesses
- Concepts de programmation fonctionnelle dans JavaScript
- Travailler avec des bibliothèques tierces dans React Native
Semaine 2 : Architecture des applications mobiles et Design Patterns
- MVVM (Modèle-Vue-VueModèle) pour iOS et Android
- Comprendre l'architecture MVVM pour iOS (Swift) et Android (Kotlin)
- Implémentation des ViewModels et observation des données avec LiveData (Android) et Combine (iOS)
- Programmation React avec RxSwift et RxKotlin
- Architecture basée sur les composants dans React Native
- Comprendre les cycles de vie des composants et les crochets
- Meilleures pratiques pour gérer l'état et les accessoires à l'échelle
- Utiliser l'API React Context pour la gestion globale de l'état
Semaine 3 : Concepts avancés Networking
- Networking dans iOS (Swift)
- Travailler avec URLSession pour des requêtes réseau personnalisées
- Appels REST API avancés et gestion des erreurs
- Travailler avec Codable et l'analyse JSON
- Meilleures pratiques pour une communication API sécurisée (épinglage SSL, OAuth)
- Networking dans Android (Kotlin)
- Rétrofit pour effectuer des appels API et gérer les réponses
- Gestion avancée des erreurs de l'API et mécanismes de réessai
- Utilisation de Gson ou Moshi pour l'analyse JSON
- Communication sécurisée en utilisant HTTPS et l'authentification OAuth
Semaine 4 : Networking en React Native
- Intégration d'API avec Axios et Fetch
- Intégration API avancée avec Axios et Fetch
- Stratégies de gestion des erreurs et tentatives dans les requêtes réseau
- Travailler avec l'authentification (JWT, OAuth)
- WebSockets et temps réel Communication
- Introduction aux WebSockets dans React Native
- Construire des fonctionnalités de chat ou de notification en temps réel avec des connexions WebSocket
- Gérer les connexions persistantes et les mises à jour de données
Semaine 5 : Techniques avancées de persistance des données
- Core Data et SQLite (iOS)
- Relations avancées avec Core Data, récupération et requêtes
- Utilisation directe de SQLite pour les applications iOS et gestion des connexions aux bases de données
- Manipulation efficace des données et optimisation
- Persistance de la salle et SQLite (Android)
- Relations et requêtes avancées avec la base de données Room
- Gestion de grands ensembles de données et optimisation des performances de la base de données
- Utilisation de ProGuard pour sécuriser les structures de base de données
- Utilisation de Firebase pour le stockage dans le nuage (iOS et Android)
- Intégration avec Firebase pour la gestion des bases de données en temps réel
- Meilleures pratiques pour synchroniser les données locales et dans le nuage
Semaine 6 : État avancé Management dans React Natif
- Redux pour l'état Management
- Concepts avancés Redux : Middlewares, Thunks et Sagas
- Optimiser Redux pour la performance et l'extensibilité
- Recoil pour l'État Management
- Introduction à Recoil : Une alternative plus flexible à Redux
- Gestion de l'état à grande échelle à travers les composants
- Mises à jour d'état efficaces et gestion d'état atomique
Semaine 7 : Animation avancés dans iOS et Android
- iOS (Swift)
- Core Animation : Animer les vues, les couches et les transitions
- UIKit Dynamics : Création d'animations basées sur la physique
- Transitions et animations personnalisées entre les contrôleurs de vue
- Android (Kotlin)
- MotionLayout pour créer des animations complexes
- TransitionManager et transitions d'éléments partagés
- Animations de propriété pour la mise à l'échelle de la vue, la rotation et les changements d'alpha
Semaine 8 : Animations et UI/UX dans React Native
- React Native Animations
- Utiliser l'API Animated et Reanimated pour des animations complexes
- Implémentation de gestes et d'interactions avec React Native Gesture Handler
- Meilleures pratiques pour des animations performantes en React Native
- Création de composants d'interface utilisateur personnalisés
- Construire des composants réutilisables et personnalisables dans React Native
- Implémenter des designs réactifs avec media queries et flexbox
Semaine 9 : Intégrer les modules natifs et les fonctionnalités des appareils
- [Intégrer les fonctionnalités des appareils natifs
- Utilisation avancée de l'appareil photo, de la géolocalisation, du Bluetooth et des capteurs
- Création de modules natifs dans Swift et Kotlin pour l'intégration React Native
- Intégration d'ARKit pour la réalité augmentée dans iOS
- Intégration de CameraX et ARCore pour la réalité augmentée dans Android
- React Pont natif et modules natifs
- Construire des modules natifs personnalisés pour intégrer des fonctionnalités spécifiques à une plateforme.
- Création de ponts Java et Swift pour les applications React natives
- Meilleures pratiques pour gérer le code natif dans un environnement multiplateforme
Semaine 10 : Test et débogage des applications avancées
- Tester en iOS (Swift)
- Écrire des tests unitaires avec XCTest et des tests d'interface utilisateur pour iOS
- Utiliser Xcode Instruments pour le profilage des performances et les fuites de mémoire
- Intégration continue et flux de tests avec Jenkins et CircleCI
- Tester dans Android (Kotlin)
- Tests avancés de JUnit et Espresso pour les applications Android
- Profiler les performances et identifier les goulots d'étranglement avec Android Profiler
- Utilisation de Firebase Test Lab pour des tests automatisés sur plusieurs appareils
- Tests natifs React
- Tests unitaires avec Jest et tests de composants avec Enzyme
- Tests de bout en bout à l'aide de Detox et de configurations de test automatisées
- Profilage des performances à l'aide de React Native Debugger et Flipper
Semaine 11 : Déploiement d'applications et intégration continue
- Déploiement dans l'App Store (iOS)
- Préparer votre application pour la soumission : Certificats App Store, profils de provisionnement et test bêta TestFlight
- Utiliser Fastlane pour automatiser le déploiement d'applications iOS.
- Gérer App Store Connect et mettre en place des processus d'évaluation des applications
- Déploiement de Google Play (Android)
- Préparer l'APK et le signer pour le soumettre à Google Play
- Automatiser le déploiement de l'application Android avec Fastlane et Gradle.
- Utilisation de la console Google Play pour l'examen des applications et les tests bêta
- Mise en place de pipelines CI/CD
- Configurer Jenkins, GitHub Actions ou CircleCI pour des pipelines de construction et de déploiement automatisés
- Utiliser Fastlane pour les flux de travail CI/CD iOS et Android
- Meilleures pratiques pour gérer les versions, les numéros de build et les canaux de diffusion
Semaine 12 : Projet de fin d'études
- Développement du projet final
- Concevoir et développer une application entièrement fonctionnelle qui intègre les fonctionnalités avancées apprises tout au long du cours.
- Implémenter une interface utilisateur/UX personnalisée, des animations avancées, la gestion des états, l'intégration de modules natifs et la communication API en temps réel.
- Optimiser les performances de l'application et la déployer sur l'App Store et Google Play.
Résumé et prochaines étapes
Pré requis
- Une solide compréhension des concepts de programmation, en particulier en Swift, Kotlin, et JavaScript
- Expérience préalable dans la création d'applications natives de base iOS, Android ou React
- Connaissance des modèles de conception tels que MVC ou MVVM et expérience de la gestion d'état de base
Audience
- Développeurs mobiles
- Programmeurs
Nos clients témoignent (5)
Edward est un facilitateur hors pair
Zibusiso Ncube - Agricatural Research Council
Formation - Ionic 4 and Angular for Developers
Traduction automatique
Mon moment préféré est la séance de questions-réponses avec Sir. Jose. Il est très compétent et connaît la réponse à nos questions.
John Henry - Toyota Motor Philippines
Formation - .NET MAUI (Intermediate)
Traduction automatique
Peut-être que plus d'exercices seraient mieux pour l'apprentissage, mais le temps était trop court.
Gianpiero Arico' - Urmet Spa
Formation - Embedded Linux Systems Architecture
Traduction automatique
Miguel's knowledge of the subject was extensive. He made the training easy to understand and the flow was balanced; adding on to each section with new features as needed. He covered everything that was asked and answered each and every question thoroughly. It was a very pleasant experience.
Paul Coaton - SEMPCheck Services
Formation - Flutter Development Bootcamp with Dart
The trainer was enthusiastic, kind, and loved the topic