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 !