{"id":412860,"date":"2023-12-04T09:35:39","date_gmt":"2023-12-04T08:35:39","guid":{"rendered":"https:\/\/blog.jetbrains.com\/?post_type=kotlin&#038;p=412860"},"modified":"2023-12-04T09:35:43","modified_gmt":"2023-12-04T08:35:43","slug":"kotlin-multiplatform-development-roadmap-2024","status":"publish","type":"kotlin","link":"https:\/\/blog.jetbrains.com\/cs\/kotlin\/2023\/12\/kotlin-multiplatform-development-roadmap-2024\/","title":{"rendered":"Kotlin Multiplatform Development Roadmap 2024"},"content":{"rendered":"<p>Ned\u00e1vno z\u00edskal<a href=\"https:\/\/blog.jetbrains.com\/kotlin\/2023\/11\/kotlin-multiplatform-stable\/\" target=\"_blank\" rel=\"noreferrer noopener\">\u00a0Kotlin Multiplatform svou stabiln\u00ed verzi<\/a>, tak\u017ee ho nyn\u00ed mohou v\u00fdvojov\u00e9 t\u00fdmy po cel\u00e9m sv\u011bt\u011b bez probl\u00e9m\u016f a s jistotou nasadit na produkci. Pro KMP a jeho ekosyst\u00e9m je to ale cel\u00e9 teprve za\u010d\u00e1tek. Spole\u010dnost JetBrains chce toti\u017e v roce 2024 p\u0159in\u00e9st \u0159adu dal\u0161\u00edch vylep\u0161en\u00ed z\u00e1kladn\u00ed technologie Kotlin Multiplatform, Compose Multiplatform, n\u00e1stroj\u016f KMP a knihoven KMP, aby v\u00fdvoj nap\u0159\u00ed\u010d platformami byl co nejlep\u0161\u00ed. P\u0159e\u010dt\u011bte si, co pl\u00e1nujeme a jak\u00e9 jsou na\u0161e priority v t\u011bchto oblastech.<\/p>\n<h2 class=\"wp-block-heading\">Compose Multiplatform<\/h2>\n<p>Sna\u017e\u00edme se, aby <a href=\"https:\/\/www.jetbrains.com\/lp\/compose-multiplatform\/\" target=\"_blank\" rel=\"noreferrer noopener\">Compose Multiplatform<\/a> byl frameworkem, kter\u00fd umo\u017en\u00ed vytv\u00e1\u0159et kr\u00e1sn\u00e9 a v\u00fdkonn\u00e9 aplikace, kter\u00e9 na v\u0161ech podporovan\u00fdch platform\u00e1ch vypadaj\u00ed stejn\u011b. Te\u010f se zam\u011b\u0159ujeme hlavn\u011b na to, abychom <strong>Compose pro iOS dostali do beta verze<\/strong>, ale rozpracovan\u00e9 m\u00e1me i dal\u0161\u00ed v\u011bci. V pl\u00e1nu m\u00e1me tohle:<\/p>\n<ul>\n<li>Zajistit multiplatformnost v\u0161ech z\u00e1kladn\u00edch API a komponent Jetpack Compose.<\/li>\n<li>Zlep\u0161it renderovac\u00ed v\u00fdkon v iOS.<\/li>\n<li>Zajistit, aby se posouv\u00e1n\u00ed a \u00fapravy textu v aplikac\u00edch Compose pro iOS chovaly stejn\u011b jako v nativn\u00edch aplikac\u00edch iOS.<\/li>\n<li>Implementovat spole\u010dn\u00e9 rozhran\u00ed API pro sd\u00edlen\u00ed v\u0161ech typ\u016f zdroj\u016f.<\/li>\n<li>Integrovat API pro p\u0159\u00edstupnost v iOS a na desktopech.<\/li>\n<li>Poskytnout \u0159e\u0161en\u00ed pro multiplatformn\u00ed navigaci.<\/li>\n<\/ul>\n<p>Mnoh\u00e1 z v\u00fd\u0161e uveden\u00fdch vylep\u0161en\u00ed se t\u00fdkaj\u00ed i aplikace Compose for Desktop. A nadto pracujeme na zlep\u0161en\u00ed stability a k v\u00fdvoji p\u0159istupujeme na z\u00e1klad\u011b zp\u011btn\u00e9 vazby od t\u011bch, kte\u0159\u00ed ji pou\u017e\u00edvaj\u00ed v produk\u010dn\u00edm prost\u0159ed\u00ed.<\/p>\n<p>Budeme pokra\u010dovat i ve zkoum\u00e1n\u00ed mo\u017enost\u00ed s Compose for Web, konkr\u00e9tn\u011b s Wasmem. Na\u0161\u00edm nejbli\u017e\u0161\u00edm c\u00edlem je pov\u00fd\u0161en\u00ed na alfa verzi, co\u017e zahrnuje:<\/p>\n<ul>\n<li>Mo\u017enost p\u0159en\u00e9st st\u00e1vaj\u00edc\u00ed aplikace a znovu pou\u017e\u00edt ve\u0161ker\u00fd spole\u010dn\u00fd k\u00f3d.<\/li>\n<li>Podporu r\u016fzn\u00fdch velikost\u00ed, orientac\u00ed a hustot obrazovek.<\/li>\n<li>Podporu vstupu z my\u0161i, dotykov\u00e9 obrazovky, fyzick\u00e9 kl\u00e1vesnice nebo kl\u00e1vesnice na obrazovce.<\/li>\n<li>Zlep\u0161en\u00ed v\u00fdkonu a bin\u00e1rn\u00ed velikosti.<\/li>\n<\/ul>\n<h2 class=\"wp-block-heading\">Sada n\u00e1stroj\u016f<\/h2>\n<p>Jsme odhodl\u00e1ni poskytovat pro Kotlin Multiplatform skv\u011bl\u00e9 prost\u0159ed\u00ed IDE. To si \u017e\u00e1d\u00e1 nejen investice do j\u00e1dra platformy a nap\u0159\u00edklad migraci pluginu Kotlin IDE na frontend kompil\u00e1toru K2, ale sou\u010dasn\u011b i poskytnut\u00ed jedin\u00e9ho n\u00e1stroje (<a href=\"https:\/\/www.jetbrains.com\/fleet\/\" target=\"_blank\" rel=\"noreferrer noopener\">Fleet<\/a>) pro multiplatformn\u00ed v\u00fdvoj v Kotlinu, \u010d\u00edm\u017e se eliminuje nutnost neust\u00e1l\u00e9ho p\u0159ep\u00edn\u00e1n\u00ed mezi r\u016fzn\u00fdmi IDE.<\/p>\n<p>Va\u0161i zp\u011btnou vazbu ohledn\u011b <a href=\"https:\/\/www.jetbrains.com\/help\/kotlin-multiplatform-dev\/fleet.html\" target=\"_blank\" rel=\"noreferrer noopener\">pou\u017e\u00edv\u00e1n\u00ed Fleetu pro v\u00fdvoj v Kotlin Multiplatform<\/a> pl\u00e1nujeme rychle iterovat, abychom v\u00e1m p\u0159inesli v\u0161echno pot\u0159ebn\u00e9 pro skv\u011bl\u00fd v\u00fdvoj. Mimo jin\u00e9 se chyst\u00e1me pracovat v n\u00e1sleduj\u00edc\u00edch oblastech:<\/p>\n<ul>\n<li>Vylep\u0161en\u00ed podpory pro Compose Multiplatform, v\u010detn\u011b \u017eiv\u00e9ho n\u00e1hledu b\u011b\u017en\u00e9ho k\u00f3du a vizu\u00e1ln\u00edch ladic\u00edch n\u00e1stroj\u016f.<\/li>\n<li>Snaz\u0161\u00ed konfigurace projektu v IDE.<\/li>\n<li>Jednotn\u00e9 a vylep\u0161en\u00e9 lad\u011bn\u00ed v\u0161ech \u010d\u00e1st\u00ed multiplatformn\u00edho projektu.<\/li>\n<\/ul>\n<h2 class=\"wp-block-heading\">Multiplatform core<\/h2>\n<p>Jedn\u00edm z obl\u00edben\u00fdch sc\u00e9n\u00e1\u0159\u016f v Kotlin Multiplatform je sd\u00edlen\u00ed k\u00f3du s c\u00edlem pou\u017eit\u00ed na iOS. Chceme se zam\u011b\u0159it na zku\u0161enosti v\u00fdvoj\u00e1\u0159\u016f iOS, kte\u0159\u00ed ve sv\u00fdch k\u00f3dech pracuj\u00ed s frameworky Kotlin Multiplatform.<\/p>\n<p>Hlavn\u00ed iniciativou v t\u00e9to oblasti je <strong>p\u0159\u00edm\u00fd export Kotlinu do Swiftu<\/strong>. Ten mo\u017en\u00ed \u0161ir\u0161\u00ed podporu jazyka Swift a p\u0159irozen\u011bj\u0161\u00ed export rozhran\u00ed API. Krom\u011b toho vytv\u00e1\u0159\u00edme n\u00e1stroje speci\u00e1ln\u011b pro autory knihoven Kotlin. Tyto n\u00e1stroje jsou navr\u017eeny tak, aby zlep\u0161ily kompatibilitu a u\u017eivatelskou p\u0159\u00edv\u011btivost rozhran\u00ed API jazyka Kotlin p\u0159i exportu do jazyka Swift. Velkou pozornost v\u011bnujeme tak\u00e9 tvorb\u011b n\u00e1stroj\u016f. IDE a buildovac\u00ed syst\u00e9my jsou z\u00e1sadn\u00ed sou\u010d\u00e1st\u00ed v\u00fdvoj\u00e1\u0159sk\u00e9ho prost\u0159ed\u00ed a na\u0161\u00edm c\u00edlem je zajistit hladkou integraci s exportem do Swiftu.<\/p>\n<p>Mezi na\u0161e dal\u0161\u00ed iniciativy pat\u0159\u00ed zrychlen\u00ed kompilace Kotlin\/Native, vylep\u0161en\u00ed integrace CocoaPods a zaveden\u00ed podpory pro export frameworku pomoc\u00ed SwiftPM.<\/p>\n<p>D\u00e1le pl\u00e1nujeme pokra\u010dovat ve zkoum\u00e1n\u00ed zp\u016fsob\u016f, jak zlep\u0161it nastaven\u00ed buildov\u00e1n\u00ed aplikac\u00ed Kotlin Multiplatform. S verz\u00ed Kotlin 1.9.20 jsme vydali <a href=\"https:\/\/kotlinlang.org\/docs\/whatsnew1920.html#kotlin-multiplatform\" target=\"_blank\" rel=\"noopener\">obrovsk\u00e1 vylep\u0161en\u00ed<\/a> v Gradle Multiplatform DSL, kter\u00e1 usnad\u0148uj\u00ed \u010dten\u00ed a z\u00e1pis. V postupn\u00e9m vylep\u0161ov\u00e1n\u00ed budeme pokra\u010dovat i nad\u00e1le. Krom\u011b toho experimentujeme s <a href=\"https:\/\/blog.jetbrains.com\/blog\/2023\/11\/09\/amper-improving-the-build-tooling-user-experience\/\" target=\"_blank\" rel=\"noreferrer noopener\">Amperem<\/a>, nov\u00fdm n\u00e1strojem pro konfiguraci projektu zam\u011b\u0159en\u00fdm na pou\u017eitelnost, zapracov\u00e1n\u00ed a podporu IDE.<\/p>\n<h2 class=\"wp-block-heading\">Ekosyst\u00e9m knihoven<\/h2>\n<p>Vzhledem k tomu, \u017ee ekosyst\u00e9m Kotlin Multiplatform rychle roste, st\u00e1v\u00e1 se zp\u011btn\u00e1 kompatibilita knihoven kl\u00ed\u010dovou. K jej\u00edmu zaji\u0161t\u011bn\u00ed mus\u00ed t\u00fdm JetBrains a tv\u016frci knihoven spolupracovat. A tohle je n\u00e1\u0161 pl\u00e1n:<\/p>\n<ul>\n<li>Vylep\u0161it form\u00e1t klib, aby tv\u016frci knihoven mohli vyu\u017e\u00edt sv\u00e9 znalosti o vytv\u00e1\u0159en\u00ed knihoven JVM.<\/li>\n<li>Implementovat v knihovn\u00e1ch jazyka Kotlin Multiplatform stejn\u00e9 chov\u00e1n\u00ed p\u0159i vkl\u00e1d\u00e1n\u00ed k\u00f3du jako u knihoven JVM.<\/li>\n<li>Poskytnout n\u00e1stroj, kter\u00fd zajist\u00ed, \u017ee se ve\u0159ejn\u00e9 API multiplatformn\u00ed knihovny nezm\u011bnilo nekompatibiln\u00edm zp\u016fsobem.<\/li>\n<\/ul>\n<p>Tak\u00e9 zlep\u0161\u00edme proces publikov\u00e1n\u00ed knihoven KMP. Konkr\u00e9tn\u011b pl\u00e1nujeme n\u00e1sleduj\u00edc\u00ed:<\/p>\n<ul>\n<li>Umo\u017enit vytv\u00e1\u0159et a publikovat knihovny KMP bez po\u010d\u00edta\u010de Mac.<\/li>\n<li>Poskytovat \u0161ablony a rozs\u00e1hl\u00e9 pokyny pro vytv\u00e1\u0159en\u00ed a publikov\u00e1n\u00ed knihovny KMP.<\/li>\n<\/ul>\n<p>P\u0159esto\u017ee je Kotlin Multiplatform nyn\u00ed stabiln\u00ed, pl\u00e1nujeme v\u00fdznamn\u00e9 aktualizace. Ka\u017edop\u00e1dn\u011b bu\u010fte bez obav: Knihovny vytvo\u0159en\u00e9 v sou\u010dasn\u00e9m form\u00e1tu budou st\u00e1le fungovat i s nov\u011bj\u0161\u00edmi verzemi jazyka Kotlin.<\/p>\n<h2 class=\"wp-block-heading\">Zjistit v\u00edce<\/h2>\n<ul>\n<li><a href=\"https:\/\/blog.jetbrains.com\/kotlin\/2023\/11\/kotlin-multiplatform-stable\/\" target=\"_blank\" rel=\"noreferrer noopener\">Kotlin Multiplatform m\u00e1 stabiln\u00ed verzi a m\u016f\u017ee se nasadit do produkce<\/a><\/li>\n<li><a href=\"https:\/\/blog.jetbrains.com\/kotlin\/2023\/11\/compose-multiplatform-1-5-10-release\/\" target=\"_blank\" rel=\"noreferrer noopener\">Compose Multiplatform 1.5.10 \u2013 ide\u00e1ln\u00ed \u010das s n\u00edm za\u010d\u00edt<\/a><\/li>\n<li><a href=\"https:\/\/blog.jetbrains.com\/blog\/2023\/11\/09\/amper-improving-the-build-tooling-user-experience\/\" target=\"_blank\" rel=\"noreferrer noopener\">Amper \u2013\u2060 zlep\u0161uje Build Tooling User Experience<\/a><\/li>\n<li><a href=\"https:\/\/blog.jetbrains.com\/kotlin\/2023\/11\/kotlin-multiplatform-tooling-in-fleet\/\" target=\"_blank\" rel=\"noreferrer noopener\">P\u0159iv\u00edtejte Fleet s podporou pro Kotlin Multiplatform<\/a><\/li>\n<li><a href=\"https:\/\/kotlinlang.org\/docs\/roadmap.html#roadmap-details\" target=\"_blank\" rel=\"noopener\">Kotlin roadmap<\/a><\/li>\n<\/ul>\n","protected":false},"author":1229,"featured_media":412862,"comment_status":"closed","ping_status":"closed","template":"","categories":[956],"tags":[],"cross-post-tag":[],"acf":[],"_links":{"self":[{"href":"https:\/\/blog.jetbrains.com\/cs\/wp-json\/wp\/v2\/kotlin\/412860"}],"collection":[{"href":"https:\/\/blog.jetbrains.com\/cs\/wp-json\/wp\/v2\/kotlin"}],"about":[{"href":"https:\/\/blog.jetbrains.com\/cs\/wp-json\/wp\/v2\/types\/kotlin"}],"author":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/cs\/wp-json\/wp\/v2\/users\/1229"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/cs\/wp-json\/wp\/v2\/comments?post=412860"}],"version-history":[{"count":4,"href":"https:\/\/blog.jetbrains.com\/cs\/wp-json\/wp\/v2\/kotlin\/412860\/revisions"}],"predecessor-version":[{"id":412886,"href":"https:\/\/blog.jetbrains.com\/cs\/wp-json\/wp\/v2\/kotlin\/412860\/revisions\/412886"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/cs\/wp-json\/wp\/v2\/media\/412862"}],"wp:attachment":[{"href":"https:\/\/blog.jetbrains.com\/cs\/wp-json\/wp\/v2\/media?parent=412860"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/cs\/wp-json\/wp\/v2\/categories?post=412860"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/cs\/wp-json\/wp\/v2\/tags?post=412860"},{"taxonomy":"cross-post-tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/cs\/wp-json\/wp\/v2\/cross-post-tag?post=412860"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}