• Programmer en Kotlin et comprendre toutes les fonctionnalités du langage.
  • Comprendre et utiliser les interactions entre les codes Java et Kotlin.
  • Intégrer Kotlin dans un projet existant, et le migrer progressivement.
  • Compiler, tester et déployer avec Gradle. 
  • Comprendre et utiliser les fonctionnalités avancés du langage Kotlin.
  • Savoir optimiser son code.
  • Proposer une API Kotlin efficiente et complète.
  • Utiliser les outils de build et de déploiement efficacement.
  • Comprendre le fonctionnement interne des coroutines.
  • Pouvoir utiliser les coroutines dans des scénarios de concurrence structurée.
  • Savoir adapter des APIs à callback en coroutines.
  • Savoir communiquer avec des flows et des channels.
  • Maîtriser les principes fondamentaux de la conception objet.
  • Appliquer les règles fondamentales de découpage d’une application en package.
  • Appliquer les principes de construction des classes d’une application.
  • Apprendre à mettre en œuvre les principaux Design Patterns.
  • Maîtriser les principes fondamentaux de la conception objet.
  • Maîtriser et savoir mettre en œuvre les principaux design patterns de conception et d’architecture.
  • Savoir organiser ses packages, Savoir refactoriser son code avec les designs patterns.
  • Savoir utiliser les designs patterns en TDD, Savoir développer en mode itératif.
  • Maîtriser l’approche BDD et la syntaxe Gherkin.
  • Avoir une bonne compréhension de l’outil Cucumber.
  • Écrire et implémenter des tests d’acceptance.
  • Intégrer les tests d’acceptances dans un pipeline de CI/CD.
  • Comprendre les principes d’une démarche itérative incrémentale.
  • Formuler des spécifications et comprendre les notions d’histoires-utilisateurs.
  • Mettre en œuvre le Test Driven Requirement avec un outil. Adopter une démarche pilotée par les tests.
  • Valider les spécifications par les tests.
  • Comprendre la philosophie et les règles d’ingénierie logicielle en agile.
  • Mettre en œuvre des tests unitaires avec un framework de test.
  • Implémenter une solution en Test Driven Development.
  • Appliquer des techniques pour refactorer un code à risque.
  • Utiliser des doubles de tests pour simuler un comportement.
  • Automatiser un scénario de tests fonctionnels.