Formation Kotlin Multiplatform (KMP)

Maîtrisez Kotlin Multiplatform de bout en bout et construisez une app multiplateforme performante, de la JVM aux binaires iOS.

Formation Kotlin Multiplatform (KMP)

Description

Cette formation Kotlin Multiplatform vous permettra de maîtriser le développement d’applications multiplateformes modernes, performantes et industrialisables, de la JVM aux binaires iOS et au web.

Pendant 3 jours, vous apprendrez à :

  • Comprendre le fonctionnement interne de Kotlin (bytecode JVM, compilateur K2, Kotlin/Native)
  • Concevoir une architecture Kotlin Multiplatform propre et maintenable
  • Utiliser efficacement coroutines, Flow et StateFlow en contexte multiplateforme
  • Partager la logique métier, le réseau et l’UI avec Ktor et Compose Multiplatform
  • Gérer l’état applicatif avec une architecture MVI commune
  • Intégrer des APIs natives et préparer une application KMP au passage à l’échelle
  • Mettre en place une chaîne CI/CD multiplateforme prête pour la production

Public

Cette formation s’adresse aux développeur·euse·s mobile ou fullstack souhaitant concevoir des applications multiplateformes modernes (Android, iOS, desktop, web) avec un socle de code partagé.

Formation IA-friendly

Cette formation étant IA friendly, certaines sessions sont adaptées aux développeur·se·s qui souhaitent utiliser de l'IA pour coder. Les exercices sont conçus pour tirer parti des IDEs agentiques. Le·a formateur·rice vous accompagnera sur les bonnes pratiques du développement assisté par IA.

Campus Atlas

Cette formation est éligible au dispositif Campus Atlas. Il permet aux entreprises relevant de l'OPCO Atlas de suivre des formations sélectionnées à tarifs négociés, avec une prise en charge pouvant aller jusqu'à 100% selon votre branche et votre situation. Ce dispositif s'adresse aux entreprises cotisantes/adhérentes à Atlas et à leurs salarié·e·s.
Voir la page Campus Atlas de la formation

Les objectifs

  • Comprendre le fonctionnement interne du compilateur Kotlin (JVM, Native, K2)
  • Concevoir une architecture Kotlin Multiplatform robuste et scalable
  • Partager efficacement logique métier, réseau et UI entre plateformes
  • Optimiser les performances et la taille des binaires, notamment sur iOS
  • Mettre en œuvre une chaîne CI/CD multiplateforme prête pour la production

Pré-requis

  • Bonne maîtrise de Kotlin et de la programmation orientée objet
  • Expérience en développement Android ou JVM recommandée
  • Connaissances de base en asynchronisme (threads, callbacks ou coroutines)
  • Ordinateur portable à apporter

Le programme de la formation Kotlin Multiplatform (KMP)

Jour 1 : Comprendre Kotlin sous le capot et poser les fondations KMP

  • Du code élégant au bytecode JVM
    • Comprendre comment Kotlin est compilé pour la JVM
    • Exploration du bytecode généré
    • Optimisations du compilateur
    • Inline functions et leur impact sur les performances
    • Utilisation des outils d'inspection du bytecode
  • Le compilateur K2
    • Présentation de la nouvelle architecture du compilateur K2
    • Gains de performance en compilation
    • Nouvelles fonctionnalités
    • Stratégie de migration depuis le compilateur legacy
  • Les coroutines
    • Programmation asynchrone avec Kotlin
    • Suspend functions, Dispatchers, structured concurrency
    • Introduction aux Flow et StateFlow pour la gestion de flux de données réactifs
    • Patterns de gestion d'erreurs
  • Kotlin Multiplatform
    • Architecture fondamentale de KMP
    • Comprendre les targets, les source sets (commonMain, androidMain, iosMain) et la configuration Gradle
    • Structure d'un projet multiplateforme et gestion des dépendances
  • Expect/Actual
    • Le mécanisme des contrats et de l’implémentation de la plateforme
    • Quand utiliser expect/actual, et quand préférer les alternatives (interfaces + injection de dépendances)
    • Bonnes pratiques et pièges à éviter

Mises en pratiques :

  • Mise en place du projet KMP avec les targets Android, iOS et Wasm
  • Configuration des source sets et première implémentation de expect/actual pour la gestion des permissions de caméra et de microphone

Jour 2 : Construire une application multiplateforme complète

  • Ktor
    • Client HTTP multiplateforme avec Ktor
    • Configuration pour chaque target
    • Appels REST et WebSockets pour la communication en temps réel
    • Sérialisation JSON avec kotlinx.serialization
    • Gestion des erreurs réseau et stratégies de retry
  • Kotlin/Native : du code au binaire ARM
    • Comprendre le pipeline de compilation de Kotlin/Native via LLVM
    • Fonctionnement du garbage collector
    • Structure d'un framework iOS
    • Différences entre frameworks statiques et dynamiques
    • Analyse et optimisation de la taille des binaires iOS
  • Le compilateur Compose
    • De Jetpack Compose à Compose Multiplatform
    • Fonctionnement du compilateur Compose
    • Annotation @Composable
    • Mécanisme de recomposition
    • Rendu avec Skia sur iOS et desktop
    • Limitations actuelles et contournements
  • Le state management multiplateforme
    • Patterns de gestion d'état partagé entre plateformes
    • StateFlow comme source de vérité
    • Architecture MVI
    • ViewModel KMP avec AndroidX Lifecycle
    • Consommation côté iOS avec SKIE pour convertir les Flow en AsyncSequence Swift

Mises en pratiques :

  • Implémentation de la couche réseau partagée pour le signaling WebRTC
  • Client WebSocket avec Ktor, messages de signaling (offer, answer, ice-candidate), sérialisation et gestion de la reconnexion
  • Création de l'interface utilisateur partagée pour l'écran d'appel
  • Implémentation du CallViewModel avec les états (Idle, Calling, Ringing, Connected, Ended), UI Compose avec un preview vidéo, des boutons de contrôle et un timer d'appel

Jour 3 : Passer en production et scaler une application KMP

  • Intégration plateforme avancée
    • Accès aux API natives depuis le code partagé
    • Gestion des permissions (caméra, microphone, notifications)
    • Interopérabilité avec Swift et Kotlin
    • Utilisation de SKIE pour améliorer l'expérience développeur iOS
    • Patterns d'intégration de vues natives dans Compose (AndroidView, UIKitView)
  • Scaler une application KMP
    • Architecture modulaire pour les projets KMP à grande échelle
    • Pattern umbrella framework pour iOS
    • Gestion des dépendances transitives
    • Éviter la duplication de code
    • Optimisations de build et de taille binaire
  • CI/CD multiplateforme
    • Mise en place de pipelines d'intégration et déploiement continus
    • Tests unitaires multiplateformes et intégration dans la CI
    • GitHub Actions avec runners Linux et macOS
    • Fastlane pour Android et iOS
    • Gestion des certificats avec Match
    • Signing et déploiement sur les stores

Mises en pratiques :

  • Implémentation de l'accès à la caméra et au microphone sur chaque plateforme
  • CameraX sur Android, AVCaptureSession sur iOS, MediaDevices API sur Wasm
  • Affichage du preview vidéo dans l'interface Compose
  • Finalisation de l'application fil rouge
  • Configuration des builds release
  • Optimisation de la taille binaire iOS
  • Mise en place d'un workflow GitHub Actions pour les tests et builds automatisés

Télécharger le programme

Formateurs

Renaud MATHIEU

Avec plus de 10 ans d’expérience, Renaud Mathieu excelle dans la conception, le développement et la livraison d’applications mobiles de haute qualité pour des grandes marques internationales ainsi que des startups dynamiques.

Expert en mobile : Android, iOS, Kotlin Multiplatform

Alliant une approche pragmatique et orientée produit, Renaud développe son expertise en Kotlin Multiplatform depuis 2022 pour proposer des applications premium et accessibles à un maximum de personnes.

Conférences

En tant que conférencier apprécié, Renaud a animé de nombreuses présentations récentes :

Jouons de la musique avec Compose Multiplatform

droidcon Berlin (4 sept. 2025) & DevLille (12 juin 2025)

Les pièges courants dans les équipes techniques et comment les éviter

Android Makers by droidcon (10 avril 2025)

WebRTC en temps réel sur mobile

devfest Toulouse (7 nov. 2024),
droidcon London (1 nov. 2024),
droidcon Lisbon (5 sept. 2024),
droidcon SF (7 juin 2024)

Creating a joystick in Jetpack Compose using Gesture API

Android Makers by droidcon (26 avril 2024),
devfest Ireland (2 déc. 2023)

I have a date

devfest Toulouse (16 nov. 2023),
droidcon London (26 oct. 2023),
droidcon Berlin (5 juil. 2023),
Android Makers (27 avril 2023)

Live-coding with Ktor”

MiXiT (24 mai 2022),
Android Makers by droidcon (28 avril 2022),
Fosdem (5 févr. 2022)

FAQ

Nos formations sont éligibles à plusieurs dispositifs de financement, selon votre situation. Human Coders est certifié Qualiopi, ce qui permet la prise en charge par des organismes comme Pôle emploi, votre OPCO ou encore le CPF (Compte Personnel de Formation) pour certaines formations.

Pour en savoir plus, veuillez consulter notre page : Comment financer votre formation ?

Oui, la formation peut être proposée en présentiel ou en distanciel. Pour les inter-entreprises, les modalités (présentiel ou à distance) sont fonction de la session.

Nous pouvons organiser des sessions à d'autres dates ou dans d'autres villes (Bordeaux, Lille, Lyon, Marseille, Montpellier, Nantes, Nice, Paris, Strasbourg, Toulouse...)

Les formations se déroulent toujours en petit groupe de 3 à 6 stagiaires. Nous souhaitons que les formateurs et formatrices puissent passer un maximum de temps avec chacun·e.

Voici une journée type :

  • 9h : vous êtes accueillis par votre formateur·rice autour d'un petit déjeuner (croissants, pains au chocolat, jus de fruit, thé ou café...)
  • 9h30 : la formation commence
  • 12h30 : pause de midi. Le·a formateur·rice mangera avec vous. C'est l'occasion d'avoir des discussions plus informelles.
  • 14h : reprise de la formation
  • 18h : fin de la journée

8 raisons de participer à une formation Human Coders

  • Satisfaction client élevée : Un taux de statisfaction de 4,6/5 depuis 2012 (sur 1802 sessions réalisées). 99% des participants se disent satisfaits de nos formations
  • Approche pédagogique unique : Des formations en petit groupe, des formateurs passionnés et expérimentés, de véritables workshops... (Plus d'infos sur notre manifeste)
  • Catalogue de formations complet : 214 formations au catalogue, de quoi vous accompagner sur tout vos projets
  • Écosystème dynamique : Nous accompagnons les dev depuis 14 ans avec des initiatives comme Human Coders News, les Human Talks, le podcast ou encore notre serveur Discord
  • Financement facilité : Organisme certifié Qualiopi, indispensable pour que vous puissiez obtenir des aides au financement via votre OPCO
  • Références clients prestigieuses : De nombreux clients qui nous font confiance depuis des années
  • Accompagnement sur mesure : Nous vous proposons un accompagnement personnalisé par nos consultants pour vous aider dans vos projets au-delà de la formation
  • Valorisation professionnelle : Remise d'un diplôme, d'une attestation et d'une certification, suivant les formations effectuées, que vous pourrez afficher sur vos CV et réseaux sociaux

* Nombre de personnes ayant répondu au questionnaire de satisfaction sur cette formation depuis 2012