KotlinConf 2026 à Munich - Compte rendu de la conférence

29. mai 2026 - de Dinah Bolli

La KotlinConf est la conférence annuelle officielle de JetBrains, l'entreprise à l'origine de Kotlin et (entre autres) de l'environnement de développement IntelliJ. Kotlin est un langage de programmation moderne largement utilisé pour le développement d'applications, notamment pour Android. La KotlinConf réunit chaque année la communauté Kotlin pour en savoir plus sur les dernières fonctionnalités, assister à des présentations passionnantes et, bien sûr, échanger avec d'autres développeurs. Quelle chance pour nous que la KotlinConf 2026 ait eu lieu à Munich !

En tant qu'équipe Android chez Apps with love, nous utilisons Kotlin au quotidien, tant pour le développement natif Android que pour le développement multiplateforme avec Kotlin Multiplatform (KMP). Ossi, Miggi et Dinah, se sont donc rendus à Munich avec beaucoup d'enthousiasme pour ces deux journées de conférence. Les principaux thèmes qui nous ont particulièrement intéressés : les nouveautés concernant KMP et Compose Multiplatform (CMP) et tout ce qui touche au langage de programmation Kotlin.

Le voyage

Mercredi soir, à 18 h 30, nous nous sommes retrouvées à la gare centrale de Berne, bagages, snacks et impatience au beau fixe. Nous sommes toutes secrètement fans de Kodee, la mascotte de Kotlin. C'est pourquoi, dès le départ, nous étions toutes d'accord : pour la KotlinConf 2026, notre mission était de revenir avec au moins trois peluches Kodee.

Avec environ 30 minutes de retard, nous sommes arrivés à Munich cinq heures plus tard, avons pris le métro en direction de Messestadt Ost et nous sommes enregistrés vers 00 h 30 à l'hôtel situé juste à côté du parc des expositions de Munich.

Après une nuit un peu courte, nous nous sommes mis en route vers le parc des expositions le lendemain matin vers huit heures. Le parc des expositions de Munich est un lieu idéal pour accueillir une conférence : le site est si vaste que les quelque 2 200 participants ont pu s’y répartir facilement et, à l’extérieur des salles de conférence, il faisait beau – nous avons ainsi tout de même pu profiter un peu du soleil tant attendu.

Comme nous étions arrivés assez tôt, nous avons commencé par le plus important : les goodies ! 😉 Après l'enregistrement, on nous a directement dirigés vers le stand de goodies et, ô surprise : nous avons chacun reçu un t-shirt (pas unisexe, youpi !) et une mini peluche Kodee ! On ne s'attendait pas à accomplir notre mission aussi vite. À côté du stand de goodies se trouvait le stand de merchandising. Un mini Kodee par personne, ce n'est pas suffisant : il nous fallait un grand Kodee pour le bureau. Vu, acheté, et contents.

Produits dérivés Mini-Kodee en peluche
Michel, Matthias et Dinah à la conférence

Nous avons ensuite fait le tour des autres stands, où nous avons pris des croissants, des sandwichs et un café, et où nous avons trouvé des pins JetBrains. Peu après, c'était déjà l'heure du discours d'ouverture, pour lequel nous avons réussi à décrocher des places au premier rang. Tu nous vois ?

Conférence de Kotlink : le public est assis
Dinah, Matthias et Michel dans le public

La présentation était riche en résumés et en statistiques sur l’évolution de Kotlin, en informations sur les partenariats et les produits JetBrains, ainsi qu’un bref aperçu de KMP et CMP. Par exemple, JetBrains publie désormais également un ADE dédié, c'est-à-dire un environnement de développement agentique similaire à Cursor ou Google Antigravity : JetBrains Air. Pour en savoir plus sur le discours d'ouverture, rendez-vous sur le blog de JetBrains.

Conférences

La KotlinConf proposait un programme bien rempli : 100 intervenant·e·s et 108 sessions réparties en plusieurs volets parallèles consacrés au KMP/CMP, à l'intégration de l'IA avec Kotlin, au développement côté serveur et à l'évolution du langage Kotlin. Comme toujours, nous avons surtout assisté aux conférences qui nous intéressaient le plus.

Conférence préférée d'Ossi : Le Seigneur des fonctions de collection - La Communauté Kotlin

par Ben Kadel

Comme chacun sait, la dernière session de la première journée de la conférence est toujours la plus difficile. Les têtes fumaient à force de toutes ces informations, les jambes étaient lourdes et la fatigue se faisait clairement sentir chez nous tous dans la salle. Mais comme nous connaissions déjà Ben Kadel depuis la DroidCon il y a deux ans, nous savions que cela allait être bien. Nos attentes étaient élevées – et elles ont été largement dépassées !

Au début, Ben se tenait sur scène, tout à fait normalement et sans déguisement. Il a lancé une vidéo d'introduction parfaitement mise en scène, qui annonçait cette histoire épique, puis a disparu discrètement dans les coulisses. À la fin de la vidéo, lorsque les lumières se sont rallumées dans la salle, la révélation géniale a eu lieu : Ben est remonté sur scène entièrement déguisé en Gandalf ! 🧙‍♂️

Ben dans le rôle de Gandalf sur scène
Ben, déguisé en Gandalf, fait une présentation

Toute la présentation était conçue comme un voyage à travers la Terre du Milieu, fortement inspiré du Seigneur des Anneaux. La mission : Frodon doit emporter l'Anneau unique jusqu'au Mordor afin de le détruire dans la Montagne du Destin. La touche de génie dans tout ça ? L'Anneau était la fonction .forEach – et l'objectif était de la bannir définitivement de notre code Kotlin.

Le fond du problème est rapidement apparu : .forEach est bien trop souvent utilisé à tort et à travers comme une solution miracle, alors que Kotlin nous offre une vaste palette de fonctions de collection bien plus spécifiques et élégantes. Au cours du voyage de Frodon, ces « compagnons » ont été présentés petit à petit afin de sauver le code des ténèbres.

Au lieu, par exemple, de remplir manuellement une carte à l'aide d'une boucle forEach (ce qui, dans le code, semble souvent aussi pénible qu'une marche à travers les Marais des Morts), la solution est venue avec .associateBy() :

Exemple de code Kotlin

Ou encore, lorsqu'il s'agissait d'agréger des valeurs, on utilisait des fonctions telles que .sum() ou .sumOf { ... }, plutôt que de compter péniblement une variable modifiable en dehors d'une boucle.

Grâce à cette narration, la conférence était si drôle, imagée et créative que la fatigue s'est envolée en un clin d'œil. Malgré cette longue journée, il était très facile de suivre l'intrigue, et on était vraiment captivés de voir le code s'épurer ligne après ligne et .forEach courir à sa perte.

Ma conclusion : une fin absolument géniale pour cette première journée ! Lors des prochaines revues de code, je vais vraiment garder l'œil ouvert pour voir si un « Anneau du Pouvoir » secret ne s'est pas glissé quelque part, qu'il vaudrait mieux remplacer par une fonction de collection plus appropriée.

La rubrique préférée de Miggi : créer des expériences inoubliables

par Ian Leshan

Avant la conférence, j'étais un peu sceptique : j'avais trop souvent été déçu par les conférences UI Talks par le passé. Heureusement, j'ai finalement décidé d'écouter et de regarder cette conférence ! Et là, dès que j'ai vu la première diapositive, j'ai su que ça ne pouvait être que génial. Voyez par vous-mêmes :

À noter : toutes les animations ont été réalisées dans Compose Multiplatform. Même les diapositives ont été créées dans Compose Multiplatform 🤯

L'objectif est rapidement apparu. Une utilisation ingénieuse des animations et du retour haptique pour rendre l'expérience aussi intuitive que possible pour les utilisateurs et les utilisatrices. 


Pour y parvenir, nous avons tout d'abord fait le point sur les outils dont nous disposons déjà dans Compose :

Exemple de code Miggi

Nous pouvons ensuite attribuer ces valeurs à n'importe quel élément sous la forme des modificateurs .clickable et .hoverable, et les utiliser pour modifier l'interface utilisateur en fonction de ces deux états. 


Et pour utiliser des gestes de balayage personnalisés :

Exemple de code Miggi 2

Cela nous permet de créer nos propres composants « swipe-to-dismiss ». Voici un exemple (les animations de secousse sont censées représenter un retour haptique, car celles-ci ne peuvent pas être montrées en vidéo) avec le retour haptique et l'intensification de la couleur de la bordure. Cela indique à l'utilisateur : si tu relâches ici, l'action correspondante sera exécutée. Si tu relâches avant, le composant revient à son état d'origine.

Pour éviter les écrans d'intégration ou d'explication superflus, on peut recourir à des animations afin d'indiquer aux utilisateurs ce qu'ils peuvent faire. Dans l'exemple suivant, vous voyez comment on montre aux utilisateurs qu'une action de balayage se cache derrière le composant et comment on peut leur indiquer qu'une action n'a pas fonctionné :

Nous proposons ainsi une offre complète et très pratique qui guide les utilisateurs et les utilisatrices à travers les fonctionnalités de l'application selon le principe de « l'apprentissage par la pratique ».

Cela permet d'éviter des processus d'intégration inutilement longs et d'offrir un retour haptique et visuel pertinent, accompagné d'animations et de designs sympas.


On verra bien, je ferai peut-être ma prochaine présentation avec Compose Multiplatform. En tout cas, ça me donne envie d'explorer davantage toutes ces possibilités.

Conférence préférée de Dinah : Nouveautés de Compose Multiplatform : une interface utilisateur mieux harmonisée pour iOS et au-delà

par Sebastian Aigner & Márton Braun, JetBrains

Avec Compose Multiplatform (CMP), les développeurs peuvent créer des interfaces utilisateur pour Android, iOS, les ordinateurs de bureau et le Web, et ce à partir d'un seul et même code, car le framework se charge de l’adapter à chaque plateforme. Le tout fonctionne via Kotlin Multiplatform (KMP), qui permet de programmer la logique métier pour chaque plateforme.
CMP peut désormais être utilisé en production sur les appareils mobiles (Android et iOS) et sur les ordinateurs de bureau. CMP pour le Web est actuellement en version bêta.

Lors de cette conférence, les dernières fonctionnalités de CMP ont été présentées. En effet, les nouveautés et les API issues de Jetpack Compose (le framework d'interface utilisateur Android) sont désormais intégrées à CMP au bout de trois à cinq semaines environ. Et ce, pour les quatre plateformes. Ce rythme est impressionnant et profite aux développeurs comme nous, qui souhaitons maintenir leurs projets constamment à jour.

Les deux intervenants ont tout d'abord évoqué Navigation 3 . Nous avions déjà utilisé avec succès la nouvelle bibliothèque de navigation de Google pour Jetpack Compose dans un projet KMP ; le contenu n’était donc pas une nouveauté pour nous. Mais c'est formidable que cette bibliothèque soit désormais pleinement utilisable sur toutes les plateformes.

Dans les projets KMP, il existe une nouvelle structure de projet a été introduite, visant avant tout à attribuer à chaque module une responsabilité clairement définie et un objectif unique. La structure doit être aussi cohérente que possible et permettre aux développeurs de mieux modulariser leurs projets. De plus, Compose Hot Reload est désormais directement intégré au plugin Gradle et les développeurs n'ont plus besoin de l'installer séparément. Youpi !

D'une manière générale, on constate que KMP et CMP sont clairement au cœur de la stratégie de JetBrains. Les outils et les API sont constamment améliorés, et de nouvelles fonctionnalités qui nous sont vraiment utiles en tant que développeurs voient le jour : on nous écoute. La stratégie semble porter ses fruits : il existe désormais plus de 3 500 bibliothèques Kotlin !

Mais la partie de la présentation qui m'a le plus captivé concernait iOS (je sais, c'est surprenant !). Le nouveau système de design visuel d'Apple à partir d'iOS 26, Liquid Glass, se distingue nettement d'Android Material 3 Expressive, le système de design d'Android (pour en savoir plus sur Liquid Glass, voir aussi notre blog). Même si, en tant qu’utilisatrice d’Android, je suis une grande fan de Material 3 Expressive, lorsqu’un utilisateur iOS utilise une application CMP basée exclusivement sur Compose, celle-ci lui semble visuellement assez étrange, car l’aspect verre habituel fait défaut. Son fonctionnement diffère également de celui des applications iOS natives, car certaines interactions ne fonctionnent pas comme d’habitude.
JetBrains a désormais remédié à cela : les principaux composants natifs iOS (barre d’onglets, barre de navigation et barres d’outils) peuvent désormais s’afficher avec l’aspect Liquid Glass.
Grâce à une nouvelle propriété, les composants UIKit natifs intégrés peuvent également être rendus par-dessus la couche d'interface utilisateur Compose, prenant ainsi en charge les arrière-plans transparents ainsi que les effets de shader natifs. Ainsi, même les composants natifs intégrés s'intègrent parfaitement à l'interface utilisateur Liquid Glass.
Le résultat : une application CMP qui semble familière aux utilisateurs d'iOS. Liquid Glass, ou iOS 26, a été publié par Apple à la mi-septembre 2025. J'ai été impressionné par la rapidité avec laquelle JetBrains a mis en place la prise en charge de Liquid Glass.

Ils nous ont également présenté des nouveautés concernant la saisie de texte sur iOS. Celle-ci utilise désormais des composants natifs d’iOS, ce qui signifie que les mouvements du curseur sont désormais visibles avec précision lors de la saisie de texte (par exemple dans un champ de texte ou un champ de recherche) et que les gestes, les fonctions de sélection et les menus contextuels du système (« Remplissage automatique », « Traduire » et « Partager », etc.) peuvent être utilisés de manière native. De plus, il est désormais possible de définir sa propre vue de saisie, qui remplace le clavier standard – de manière générale, les applications iOS fonctionnent désormais de manière plus fluide. Il s’agit donc d’implémentations qui améliorent considérablement l’expérience utilisateur d’une application CMP pour les utilisateurs d’iOS.

Cette conférence a vraiment été un moment fort pour moi. Le fait que JetBrains (en collaboration avec Google) investisse autant dans l'expérience utilisateur des applications iOS montre que KMP et CMP ne sont plus de simples terrains d'expérimentation, mais constituent désormais la voie stratégique permettant aux développeurs Android de créer aujourd'hui des applications pour toutes les plateformes. Avec une base de code unique et commune, et pratiquement aucun compromis sur l'expérience native. J'adore !

Notre conclusion

La KotlinConf 2026 nous a vraiment enchantés. L'organisation était très professionnelle, la restauration provenait de la région et les repas étaient excellents. Le parc des expositions de Munich était accueillant et nous avons particulièrement apprécié le fait que l'hôtel ne se trouvait qu'à quatre minutes à pied du parc des expositions – nous en tiendrons compte pour les prochaines conférences.

La KotlinConf ne se concentre pas uniquement sur le développement Android – il y a déjà la DroidCon pour cela –, mais plutôt sur Kotlin et l'écosystème JetBrains dans son ensemble : Android, backend, KMP, bureau, IoT et bien plus encore. Nous avons d'autant plus été agréablement surpris de constater combien de présentations portaient sur le mobile et Android. Comme il n'était pas possible d'assister à toutes les présentations lors de la conférence, JetBrains mettra bientôt en ligne toutes les conférences, afin que vous puissiez les revoir tranquillement ou rattraper ce que vous avez manqué.

En tant qu'agence, nous continuons pour l'instant à miser sur le développement natif et développons en partie une logique multiplateforme avec KMP. Mais l'approche CMP est très intéressante. À l'issue de cette conférence, une chose est claire : il y a beaucoup de choses à tester et à discuter entre les équipes.

Nous en sommes convaincus : KMP et CMP ne sont pas des frameworks destinés à finir dans un cimetière d'applications d'ici quelques années, mais bien des technologies qui font l'objet d'un développement et d'améliorations constants. Avec les améliorations constantes apportées au langage Kotlin et aux outils de l’écosystème JetBrains, nous avons hâte de découvrir tout ce que JetBrains nous réserve encore. Mais surtout, nous sommes ravis de nos peluches Kodee, qui nous servent désormais de canards en caoutchouc – ou qui trônent simplement sur nos bureaux pour la décoration.

Pour finir, quelques mentions honorables :

La contribution « We were meant to be » de Lena Reinhard a mis en lumière les promesses et la vision de l’industrie technologique autour de l’IA, et a décrit la pression que de nombreux développeurs et développeuses subissent actuellement en raison de l’IA et des bouleversements qu’elle entraîne dans le secteur. Elle a partagé des anecdotes de sa vie personnelle et nous a donné quatre stratégies pour nous aider, en tant que développeurs, à faire face aux événements actuels dans le monde. Un message impressionnant, drôle, inspirant et surtout encourageant, et mon moment « Let’s go, girl ! » absolu à la KotlinConf 2026.

Pour finir : le prix de la plus belle présentation est décerné à Hammad Akram, ingénieur en chef chez H&M, pour sa présentation « Tiny Models, Big Impact : On-Device AI for Real Apps ».

Diapositive de présentation avec des images
Ben dans le rôle de Gandalf sur scène
Diapositive de présentation à la Kotlinkonf avec la citation suivante : « La meilleure fonctionnalité d'IA est celle que les utilisateurs ne remarquent pas, mais qui leur manquerait si elle venait à disparaître. »
Dinah, Michel et Ossi dehors par beau temps
Impressions de la keynote