Description formation Kotlin
Kotlin est un langage de programmation moderne, concis et pragmatique, qui permet de partager du
code au travers de différentes plateformes (ex: mobile, web, desktop). Développé par JetBrains, ce
langage multiplateforme à typage statique garantit la sécurité du code grâce à son système de types.
Conçu pour améliorer la productivité des développeurs, Kotlin offre une excellente interopérabilité
avec Java et d'autres langages, tout en proposant de nombreuses fonctionnalités avancées comme
les coroutines pour la programmation asynchrone.
Cette formation Kotlin a pour objectif de transmettre les connaissances fondamentales du langage
pour permettre aux développeurs de maîtriser ses spécificités techniques et fonctionnelles, allant de
la syntaxe concise aux fonctionnalités modernes, afin de produire des applications robustes,
expressives et maintenables qui exploitent pleinement les capacités de Kotlin tout en améliorant
significativement la productivité des développeurs et la qualité de leur code.
La formation alterne entre présentations théoriques et exercices pratiques pour assimiler les
concepts fondamentaux de Kotlin. Des cas concrets issus de projets réels permettront d'illustrer les
bonnes pratiques et de comprendre comment tirer profit des fonctionnalités innovantes du langage.
Les participants seront amenés à réaliser différents projets pour mettre en application leurs
connaissances nouvellement acquises. Cette formation est focalisée sur l’utilisation de Kotlin pour la
JVM.
Objectifs pédagogiques
- Comprendre et appliquer les principes de la programmation orientée objet en Kotlin
- Exploiter les avantages du système de types et du smart cast
- Manipuler efficacement les collections et les séquences de données
- Tirer parti des data classes et des principes d'immutabilité
- Implémenter et utiliser les fonctions de haut niveau et les types fonctions
- Comprendre et appliquer la surcharge d'opérateurs
- Maîtriser les mécanismes d'encapsulation et de visibilité
- Utiliser les énumérations, hiérarchies de classes et objets pour des hiérarchies de types robustes
- Comprendre et appliquer la généricité avec Kotlin
- Concevoir des DSLs grâce aux fonctions infix et inline
- Comprendre le fonctionnement de la VM et la compilation du code Kotlin
- Gérer efficacement les exceptions et les ressources
- Concevoir et exécuter des tests unitaires en Kotlin
Programme formation Kotlin
Jour 1 - Matin
Module 1 : Les bases du langage
- Syntaxe fondamentale
- Variables et types
- Fonctions et expressions
- Conditions et boucles
Module 2 : Classes et fonctions
- Déclaration et utilisation des classes
- Constructeurs primaires et secondaires
- Extension functions et properties
- Fonctions de niveau supérieur
Module 3 : Le système de types et le smart cast
- Nullabilité et sécurité contre les NullPointerException
- Smart cast et vérification de type
- Types génériques
- Type inference
Jour 1 - Après-midi
Module 4 : Les data classes et l'immutabilité
- Concept et avantages des data classes
- Immutabilité et ses bénéfices
- Méthodes générées automatiquement
- Copy et destructuring declarations
Module 5 : Les collections et les séquences
- Collections immutables vs mutableCollections
- Opérations sur les collections
- Séquences et évaluation paresseuse
- Performances et optimisation
Module 6 : Fonctions et programmation fonctionnelle
- Lambda expressions
- Higher-order functions
- Types fonctions
- Références de fonction
Jour 2 - Matin
Module 7 : Les propriétés et leurs accesseurs
- Getters et setters personnalisés
- Propriétés calculées
- Délégués de propriété
- Lazy initialization
Module 8 : Les enums, sealed classes & objets
- Enums avancés
- Sealed classes pour représenter des hiérarchies finies
- Object declarations et companion objects
- Pattern matching avec when
Module 9 : Gestion des ressources et des
exceptions
- Try-catch expressions
- Gérer et produire des exceptions
- Utilisation de use pour les ressources
- Éviter les fuites de ressources
Module 10 : Fonctionnalités avancées
- Modificateurs lateinit et const
- Alias de type
- Fonctions inlines et non-local returns
- Création de DSLs avec infix, operator et inline
Jour 2 - Après-midi
Module 11 : Généricité et JVM
- L'effacement de type et ses implications
- Généricité co-variante et contra-variante
- Réification des types génériques
- Value classes et optimisation
Module 12 : Qualité de code
- Encapsulation dans un projet multi-module
- Utilisation des Opt-ins pour une encapsulation fine
- Bonnes pratiques de développement en Kotlin
- Utilisation efficace d'IntelliJ IDEA>
Module 13 : Tests en Kotlin
- Écrire des tests en Kotlin
- Frameworks de test (JUnit, Kotest, etc.)
- Mocks et tests de propriétés
- Tests concis et expressifs
Modalités d'accueil
Maîtrisez l’asynchronicité en Kotlin grâce aux coroutines.
Maîtrisez les fondamentaux de Kotlin Multiplatform (KMP).