{"id":409596,"date":"2023-11-27T16:24:26","date_gmt":"2023-11-27T15:24:26","guid":{"rendered":"https:\/\/blog.jetbrains.com\/?post_type=kotlin&#038;p=409596"},"modified":"2023-11-27T17:51:45","modified_gmt":"2023-11-27T16:51:45","slug":"kotlin-multiplatform-est-stable-et-pret-a-etre-utilise-en-production","status":"publish","type":"kotlin","link":"https:\/\/blog.jetbrains.com\/fr\/kotlin\/2023\/11\/kotlin-multiplatform-est-stable-et-pret-a-etre-utilise-en-production\/","title":{"rendered":"Kotlin Multiplatform est Stable et pr\u00eat \u00e0 \u00eatre utilis\u00e9 en Production"},"content":{"rendered":"<p><strong>La tr\u00e8s attendue version stable de Kotlin Multiplatform, la technologie open source cr\u00e9\u00e9e par JetBrains pour partager du code entre diff\u00e9rentes plateformes tout en conservant les avantages de la programmation native, est maintenant stable et 100% utilisable en production.<\/strong><\/p>\n<p><strong>Poursuivez votre lecture pour en apprendre plus sur l&#8217;\u00e9volution de Kotlin Multiplatform (KMP), sur la fa\u00e7on dont il peut simplifier et optimiser votre processus de d\u00e9veloppement, et sur les ressources de formation que nous mettons \u00e0 votre disposition pour vous permettre de tirer pleinement parti de cette technologie.<\/strong><\/p>\n<p align=\"center\"><a class=\"ek-link jb-download-button\" title=\"Commencer\" href=\"http:\/\/jetbrains.com\/help\/kotlin-multiplatform-dev\/get-started.html?utm_source=kotlinblog&amp;utm_medium=button&amp;utm_campaign=kmp-stable\" target=\"_blank\" rel=\"noopener\">Commencer<\/a><\/p>\n<h2 class=\"wp-block-heading\">Partagez du code <em>comme vous le souhaitez <\/em>et\u00a0en toute confiance<\/h2>\n<p>Con\u00e7u pour favoriser la flexibilit\u00e9 et l&#8217;adaptabilit\u00e9, Kotlin Multiplatform (KMP) gomme les fronti\u00e8res entre d\u00e9veloppement multiplateforme et d\u00e9veloppement natif en permettant aux d\u00e9veloppeurs de r\u00e9utiliser autant de code qu&#8217;ils le souhaitent, d&#8217;\u00e9crire du code natif si besoin et d&#8217;int\u00e9grer facilement du code Kotlin partag\u00e9 dans tout projet.<\/p>\n<p>Depuis la premi\u00e8re version de KMP, sa flexibilit\u00e9 a s\u00e9duit <a href=\"http:\/\/jetbrains.com\/help\/kotlin-multiplatform-dev\/case-studies.html\" target=\"_blank\" rel=\"noreferrer noopener\">de nombreuses entreprises reconnues<\/a>, telles que Netflix, Philips, McDonald\u2019s, 9GAG et Baidu. Le faible risque d&#8217;adoption de KMP et sa capacit\u00e9 d&#8217;int\u00e9gration progressive ont permis \u00e0 leurs \u00e9quipes de d\u00e9veloppement d&#8217;en faire rapidement un usage optimal. Certaines \u00e9quipes partagent des \u00e9l\u00e9ments essentiels de leur code Kotlin afin de renforcer la stabilit\u00e9 de leurs applications. D&#8217;autres, qui cherchent \u00e0 r\u00e9utiliser autant de code que possible sans que cela n&#8217;affecte la qualit\u00e9 des produits, partagent toute la logique de leurs applications entre plateformes mobiles, de bureau, web et TV, tout en conservant les interfaces utilisateur natives.<\/p>\n<p>KMP ayant \u00e9t\u00e9 largement utilis\u00e9 en production depuis la publication de sa version Alpha, JetBrains a mis \u00e0 profit les nombreux retours de ses utilisateurs pour am\u00e9liorer la technologie et offrir une meilleure exp\u00e9rience de d\u00e9veloppement multiplateforme dans la version stable, notamment en ce qui concerne les points suivants.<\/p>\n<p><strong>Garanties de compatibilit\u00e9 strictes<\/strong><\/p>\n<p>La technologie de Kotlin Multiplatform est constitu\u00e9e de nombreux \u00e9l\u00e9ments, parmi lesquels la prise en charge du compilateur, les fonctionnalit\u00e9s du langage, les API de biblioth\u00e8ques, les IDE et les outils de build. Tous ces \u00e9l\u00e9ments couvrent les sc\u00e9narios de partage de code les plus courants et sont stables dans Kotlin 1.9.20. Le terme \u00ab stable \u00bb signifie que nous allons faire \u00e9voluer ces \u00e9l\u00e9ments en suivant des <a href=\"https:\/\/kotlinlang.org\/docs\/components-stability.html\" target=\"_blank\" rel=\"noreferrer noopener\">r\u00e8gles de compatibilit\u00e9<\/a> strictes, afin que vous puissiez les utiliser en toute confiance pour votre code.<\/p>\n<p>Au-del\u00e0 de ces technologies essentielles, KMP comporte \u00e9galement des \u00e9l\u00e9ments plus avanc\u00e9s, sur lesquels nous continuons de travailler, comme les classes expect\/actual (\u00e0 ne pas confondre avec les <em>fonctions<\/em> expect\/actual, qui sont d\u00e9j\u00e0 totalement stables dans Kotlin 1.9.20).<br \/>Ces fonctionnalit\u00e9s sont explicitement marqu\u00e9es comme non stables et Kotlin vous en informera lorsque vous les utiliserez. Veillez \u00e0 tenir compte de ces avertissements concernant l&#8217;aspect exp\u00e9rimental des fonctionnalit\u00e9s et \u00e0 consulter la documentation avant de d\u00e9cider de les utiliser dans vos projets.<\/p>\n<p><strong>Am\u00e9lioration de l&#8217;exp\u00e9rience utilisateur pour la configuration de build<\/strong><\/p>\n<p>Afin de simplifier la configuration et la maintenance des projets, nous avons introduit un <a href=\"https:\/\/kotlinlang.org\/docs\/whatsnew1920.html#template-for-configuring-multiplatform-projects\" target=\"_blank\" rel=\"noreferrer noopener\">mod\u00e8le de hi\u00e9rarchie par d\u00e9faut<\/a>. Cette nouvelle fonctionnalit\u00e9 du plugin Kotlin Gradle configure automatiquement les ensembles de sources Kotlin pour les sc\u00e9narios courants et r\u00e9duit ainsi la quantit\u00e9 de code standard dans les scripts de build typiques.<\/p>\n<p>Dans sa version stable, KMP offre deux am\u00e9liorations pour vous aider \u00e0 diagnostiquer les d\u00e9fauts et erreurs de configuration de build :<\/p>\n<ul>\n<li>Une cinquantaine de diagnostics ont \u00e9t\u00e9 ajout\u00e9s au plugin Kotlin Gradle, ce qui facilite la d\u00e9tection des probl\u00e8mes de build et acc\u00e9l\u00e8re leur r\u00e9solution.<\/li>\n<li><a href=\"https:\/\/kotlinlang.org\/docs\/whatsnew1820.html#improved-output-for-gradle-errors-in-xcode\" target=\"_blank\" rel=\"noopener\" data-type=\"link\" data-id=\"https:\/\/kotlinlang.org\/docs\/whatsnew1820.html#improved-output-for-gradle-errors-in-xcode\">La sortie am\u00e9lior\u00e9e pour les erreurs Gradle dans Xcode<\/a> facilite la d\u00e9tection des probl\u00e8mes de build dans les parties natives de votre projet.<\/li>\n<\/ul>\n<p><strong>Am\u00e9liorations des performances<\/strong> <strong>de build et d&#8217;ex\u00e9cution<\/strong><\/p>\n<p>En plus d&#8217;autres am\u00e9liorations de la stabilit\u00e9 et de la robustesse de KMP, nous continuons de travailler \u00e0 l&#8217;am\u00e9lioration de ses performances \u00a0:<\/p>\n<ul>\n<li><a href=\"https:\/\/kotlinlang.org\/docs\/whatsnew1920.html#full-support-for-the-gradle-configuration-cache-in-kotlin-multiplatforml\" target=\"_blank\" rel=\"noreferrer noopener\">La prise en charge du cache de configuration de Gradle<\/a> acc\u00e9l\u00e8re le processus de build en r\u00e9utilisant les r\u00e9sultats de la phase de configuration pour les builds suivants.<\/li>\n<li>L&#8217;aper\u00e7u de l&#8217;<a href=\"https:\/\/kotlinlang.org\/docs\/whatsnew19.html#preview-of-custom-memory-allocator\" target=\"_blank\" rel=\"noreferrer noopener\">allocateur de m\u00e9moire personnalis\u00e9 dans Kotlin\/Native am\u00e9liore<\/a> les performances d&#8217;ex\u00e9cution du gestionnaire de m\u00e9moire Kotlin\/Native.<\/li>\n<li>La nouvelle <a href=\"https:\/\/kotlinlang.org\/docs\/whatsnew1920.html#incremental-compilation-of-klib-artifacts\" target=\"_blank\" rel=\"noreferrer noopener\">compilation incr\u00e9mentale des artefacts `klib`<\/a> exp\u00e9rimentale acc\u00e9l\u00e8re la compilation Kotlin\/Native.<\/li>\n<li>Le d\u00e9placement de la <a href=\"https:\/\/kotlinlang.org\/docs\/whatsnew1820.html#reimplementation-of-compiler-cache-management-in-the-compiler\" target=\"_blank\" rel=\"noreferrer noopener\">gestion du cache du compilateur Kotlin\/Native<\/a> du plugin Kotlin Gradle vers le compilateur apporte une plus grande flexibilit\u00e9 au niveau du temps de compilation et du cache du compilateur.<\/li>\n<\/ul>\n<p><strong>Gr\u00e2ce \u00e0 toutes ces avanc\u00e9es, Kotlin Multiplatform peut maintenant \u00eatre utilis\u00e9 en toute confiance pour partager du code en production sur les plateformes Android, iOS, de bureau (JVM), c\u00f4t\u00e9 serveur (JVM) et web, y compris dans les entreprises ayant des politiques strictes en ce qui concerne l&#8217;usage des technologies et outils de d\u00e9veloppement.<\/strong><\/p>\n<p align=\"center\"><a class=\"ek-link jb-download-button\" title=\"Commencer\" href=\"http:\/\/jetbrains.com\/help\/kotlin-multiplatform-dev\/get-started.html?utm_source=kotlinblog&amp;utm_medium=button&amp;utm_campaign=kmp-stable\" target=\"_blank\" rel=\"noopener\">Commencer<\/a><\/p>\n<h2 class=\"wp-block-heading\">B\u00e9n\u00e9ficiez de la puissance de l&#8217;\u00e9cosyst\u00e8me florissant de Kotlin Multiplatform<\/h2>\n<p>L&#8217;\u00e9volution de Kotlin Multiplatform ne se limite pas \u00e0 sa technologie, mais concerne aussi son \u00e9cosyst\u00e8me, dont la croissance est soutenue par des milliers de d\u00e9veloppeurs Kotlin partout dans le monde. Depuis la version B\u00eata, le nombre de biblioth\u00e8ques KMP s&#8217;est multipli\u00e9, offrant une grande vari\u00e9t\u00e9 d&#8217;outils pour la mise en r\u00e9seau, le stockage de donn\u00e9es, l&#8217;arithm\u00e9tique ou l&#8217;analyse, et favorisant un d\u00e9veloppement productif et fiable.<\/p>\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-401835\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2023\/11\/Libraries-2800x995.png\" alt=\"\" width=\"2800\" height=\"995\" \/><\/figure>\n<p><strong>L&#8217;\u00e9quipe Android de Google continue d&#8217;apporter une assistance aux utilisateurs de KMP<\/strong> en fournissant les versions <a href=\"https:\/\/developer.android.com\/kotlin\/multiplatform\" target=\"_blank\" rel=\"noreferrer noopener\">multiplateformes exp\u00e9rimentales des biblioth\u00e8ques Jetpack<\/a> et a d\u00e9j\u00e0 rendu les biblioth\u00e8ques Collections, DataStore, Annotations et Paging compatibles avec Kotlin Multiplatform.<\/p>\n<p>L&#8217;\u00e9cosyst\u00e8me KMP fournit \u00e9galement des outils pour l&#8217;exp\u00e9rience de d\u00e9veloppement iOS, avec notamment <a href=\"https:\/\/touchlab.co\/tryskie\" target=\"_blank\" rel=\"noreferrer noopener\">SKIE<\/a> de Touchlab. SKIE g\u00e9n\u00e8re du code Swift qui fournit une couche d&#8217;API compatible avec Swift, ce qui relie les types Kotlin importants et impl\u00e9mente une interop\u00e9rabilit\u00e9 des coroutines transparente.<\/p>\n<h2 class=\"wp-block-heading\">Encore plus de libert\u00e9 pour le partage de code avec Compose Multiplatform<\/h2>\n<p><a href=\"https:\/\/www.jetbrains.com\/lp\/compose-multiplatform?utm_source=kotlinblog&amp;utm_medium=button&amp;utm_campaign=kmp-stable\" target=\"_blank\" rel=\"noreferrer noopener\" data-type=\"link\" data-id=\"https:\/\/www.jetbrains.com\/lp\/compose-multiplatform?utm_source=kotlinblog&amp;utm_medium=button&amp;utm_campaign=kmp-stable\">Compose Multiplatform<\/a>, le framework d\u00e9claratif d&#8217;interfaces utilisateur multiplateforme moderne de JetBrains, est un \u00e9l\u00e9ment cl\u00e9 de l&#8217;\u00e9cosyst\u00e8me KMP. Avec Compose Multiplatform, vous disposez d&#8217;une flexibilit\u00e9 totale pour le partage de code. Vous pouvez aussi bien ne partager qu&#8217;une partie de la logique, toute la logique de l&#8217;application ou la logique et l&#8217;interface utilisateur \u00e0 la fois, en fonction des besoins de votre projet et de votre \u00e9quipe\u00a0:<\/p>\n<figure class=\"wp-block-image\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-401808\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2023\/11\/image.png\" alt=\"\" width=\"1600\" height=\"466\" \/><\/figure>\n<p>Compose Multiplatform pour les plateformes Android et de bureau (JVM) est d\u00e9j\u00e0 Stable, tandis que la prise en charge d&#8217;iOS est actuellement en phase Alpha et que celle de la plateforme web (Wasm) est Exp\u00e9rimentale.<\/p>\n<h2 class=\"wp-block-heading\">L&#8217;avenir de Kotlin Multiplatform<\/h2>\n<p>JetBrains poursuit l&#8217;am\u00e9lioration du d\u00e9veloppement multiplateforme avec Kotlin, avec pour objectif d&#8217;en faire la r\u00e9f\u00e9rence pour le partage de code entre plusieurs plateformes\u00a0:<\/p>\n<ul>\n<li>Les futures mises \u00e0 jour de la technologie de Kotlin Multiplatform am\u00e9lioreront l&#8217;exp\u00e9rience de d\u00e9veloppement iOS, avec notamment l&#8217;interop\u00e9rabilit\u00e9 directe entre Kotlin et Swift et la prise en charge de SwiftPM.<\/li>\n<li>La prochaine \u00e9tape importante dans l&#8217;\u00e9volution de Compose Multiplatform pour iOS est la prise en charge de la version B\u00eata en 2024.<\/li>\n<li>JetBrains continue de d\u00e9velopper activement Kotlin\/Wasm pour faciliter le d\u00e9veloppement web moderne avec KMP et la publication de la version Alpha de Compose Multiplatform pour le web (Wasm) est pr\u00e9vue pour l&#8217;ann\u00e9e prochaine.<\/li>\n<\/ul>\n<p>Et ce n&#8217;est pas tout. Nous partagerons d&#8217;autres bonnes nouvelles concernant l&#8217;\u00e9volution des outils Kotlin Multiplatform au cours des prochaines semaines\u00a0!<\/p>\n<h2 class=\"wp-block-heading\">Commencer \u00e0 utiliser Kotlin Multiplatform<\/h2>\n<p>Commencez votre parcours avec nos ressources \u00e9ducatives compl\u00e8tes et intuitives.<\/p>\n<p>Vous pouvez commencer par suivre une <strong>s\u00e9rie de webinaires sur Kotlin Multiplatform<\/strong>\u00a0qui sera anim\u00e9e par des experts de JetBrains\u00a0! Ils vous pr\u00e9senteront les fonctionnalit\u00e9s de Kotlin Multiplatform, vous expliqueront comment cr\u00e9er des applications KMP avec des interfaces utilisateur natives et partag\u00e9es, et vous donneront des conseils et astuces concernant le d\u00e9veloppement iOS\u00a0:<\/p>\n<p align=\"center\"><a class=\"ek-link jb-download-button\" title=\"S&#039;inscrire\" href=\"https:\/\/info.jetbrains.com\/kotlin-webinars-2023.html?utm_source=kotlinblog&amp;utm_medium=button&amp;utm_campaign=kmp-stable\" target=\"_blank\" rel=\"noopener\">Inscrivez-vous<\/a><\/p>\n<p>De plus, le nouveau <strong>portail de d\u00e9veloppement Kotlin Multiplatform<\/strong> inclut une documentation d\u00e9taill\u00e9e, des guides de prise en main, ainsi que des tutoriels couvrant toutes les \u00e9tapes de la cr\u00e9ation d&#8217;applications avec Kotlin Multiplatform et Compose Multiplatform\u00a0:<\/p>\n<p align=\"center\"><a class=\"ek-link jb-download-button\" title=\"Commencer\" href=\"http:\/\/jetbrains.com\/help\/kotlin-multiplatform-dev\/get-started.html?utm_source=kotlinblog&amp;utm_medium=button&amp;utm_campaign=kmp-stable\" target=\"_blank\" rel=\"noopener\">Commencer<\/a><\/p>\n\n\n<p><em>Auteur de l&#8217;article original en anglais<\/em> :<\/p>\n\n\n    <div class=\"about-author \">\n        <div class=\"about-author__box\">\n            <div class=\"row\">\n                <div class=\"about-author__box-img\">\n                    <img decoding=\"async\" src=\"https:\/\/secure.gravatar.com\/avatar\/?s=200&#038;r=g\" width=\"200\" height=\"200\" alt=\"\" loading=\"lazy\"  class=\"avatar avatar-200 wp-user-avatar wp-user-avatar-200 photo avatar-default\">\n                <\/div>\n                <div class=\"about-author__box-text\">\n                                                        <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n","protected":false},"author":813,"featured_media":409674,"comment_status":"closed","ping_status":"closed","template":"","categories":[956],"tags":[6706,6436,76],"cross-post-tag":[],"acf":[],"_links":{"self":[{"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/kotlin\/409596"}],"collection":[{"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/kotlin"}],"about":[{"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/types\/kotlin"}],"author":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/users\/813"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/comments?post=409596"}],"version-history":[{"count":10,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/kotlin\/409596\/revisions"}],"predecessor-version":[{"id":409733,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/kotlin\/409596\/revisions\/409733"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/media\/409674"}],"wp:attachment":[{"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/media?parent=409596"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/categories?post=409596"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/tags?post=409596"},{"taxonomy":"cross-post-tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/cross-post-tag?post=409596"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}