{"id":10050,"date":"2021-11-16T14:35:22","date_gmt":"2021-11-16T13:35:22","guid":{"rendered":"https:\/\/vived.io\/jvm-tuesday-vol-64-kotlin-kotlin-i-jeszcze-raz-gradle-%f0%9f%a5%ab\/"},"modified":"2022-09-19T13:10:45","modified_gmt":"2022-09-19T11:10:45","slug":"jvm-tuesday-vol-64-kotlin-kotlin-i-jeszcze-raz-gradle-%f0%9f%a5%ab","status":"publish","type":"post","link":"https:\/\/vived.io\/pl\/jvm-tuesday-vol-64-kotlin-kotlin-i-jeszcze-raz-gradle-%f0%9f%a5%ab\/","title":{"rendered":"JVM Tuesday vol. 64 &#8211; Kotlin, Kotlin i jeszcze raz Gradle \ud83e\udd6b"},"content":{"rendered":"\n<h2 id=\"1-co-pokazano-na-kotlin-premiere-2021\" data-num=1>1. Co pokazano na Kotlin Premiere 2021 \ud83c\udf9e<\/h2>\n\n\n\n<p>Prze\u0142om pa\u017adziernika i listopada dla spo\u0142eczno\u015bci kotlinowej przyni\u00f3s\u0142 bardzo ciekawe wydarzenie. Jetbrains przygotowa\u0142 bowiem Kotlin Premier Event &#8211; \u201crozproszony\u201d event online, kt\u00f3ry zaprezentowa\u0142 najwa\u017cniejsze zmiany w kotlinowym ekosystemie. Dlatego teraz zrobimy sobie ma\u0142y przegl\u0105d tego, co zosta\u0142o pokazane (a przynajmniej temu co przyku\u0142o moje oczy).&nbsp;<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"400\" height=\"327\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/11\/giphy.gif\" alt=\"\" class=\"wp-image-3177\"\/><figcaption>Wyci\u0105gajcie popcorn, troch\u0119 tego by\u0142o<\/figcaption><\/figure><\/div>\n\n\n<p>Du\u017co miejsca po\u015bwi\u0119cono serwerowej stronie Kotlina &#8211; da si\u0119 zauwa\u017cy\u0107, \u017ce dla JetBrains jest to coraz istotniejszy kawa\u0142ek tortu. Mieli\u015bmy min. <a href=\"https:\/\/www.youtube.com\/watch?v=mye9NjvxVSU\">prezentacje Ktora 2.0<\/a> (natywnie kotlinowego frameworku webowego), kt\u00f3ry mimo, \u017ce ci\u0105gle pozostaje w Becie, to mo\u017cna si\u0119 nim ju\u017c powoli bawi\u0107. Opr\u00f3cz uproszczonego API, nowa edycja wprowadza mo\u017cliwo\u015b\u0107 \u201cretry\u2019\u00f3w\u201d, zaskakuj\u0105cego braku poprzednika. Ktor 2.0 to te\u017c wi\u0119ksza modularno\u015b\u0107 i zwi\u0119kszenie mo\u017cliwo\u015bci, jakie maj\u0105 tw\u00f3rcy zewn\u0119trznych plugin\u00f3w.. Du\u017cy nacisk po\u0142o\u017cono r\u00f3wnie\u017c na wsparcie Kotlina Multiplatform &#8211; Ktor dost\u0119pny jest teraz r\u00f3wnie\u017c dla Kotlina Native. A jak ju\u017c jeste\u015bmy przy Kotlin Native, na Kotlin Premiere Event nie zabrak\u0142o te\u017c <a href=\"https:\/\/youtube.com\/watch?v=aKQHayns4U0\">Spring Native<\/a> &#8211; najnowszego cz\u0142onka springowej rodziny. Z prezentacji mo\u017cemy dowiedzie\u0107 si\u0119 nie tylko o tym, jak dobrze Kotlin spina si\u0119 z natywn\u0105 wersj\u0105 frameworku Pivotala, ale te\u017c, \u017ce sam Spring Native to tylko etap przej\u015bciowy. Spring Boot 3.0 ma bowiem posiada\u0107 wsparcie dla GraalVM Out-of-the-Box.&nbsp;<\/p>\n\n\n\n<p>Oczywi\u015bcie, poza stron\u0105 serwerow\u0105 nie zabrak\u0142o r\u00f3wnie\u017c informacji na temat wszystkiego, co dzieje si\u0119 w Kotlinie naoko\u0142o. Zaprezentowano min. jak dzia\u0142a nowy, zunifikowany <a href=\"https:\/\/www.youtube.com\/watch?v=db19VFLZqJM\">kompilator K2<\/a>. Mogli\u015bmy si\u0119 dowiedzie\u0107, jak du\u017cego wzrostu wydajno\u015bci ca\u0142o\u015bci mo\u017cemy si\u0119 spodziewa\u0107 i w jaki spos\u00f3b ca\u0142a inicjatywa pomo\u017ce pchn\u0105\u0107 projekt Kotlin Multiplatform do przodu. Multiplatform mocno si\u0119 zreszt\u0105 rozrasta &#8211; po raz pierwszy <a href=\"https:\/\/www.youtube.com\/watch?v=-pqz9sKXatw\">pokazano jego wersj\u0119 dla WebAssembly<\/a>.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/11\/image.jpeg\" alt=\"\" class=\"wp-image-3169\" width=\"750\" height=\"500\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/11\/image.jpeg 750w, https:\/\/vived.io\/wp-content\/uploads\/2021\/11\/image-300x200.jpeg 300w\" sizes=\"auto, (max-width: 750px) 100vw, 750px\" \/><figcaption>Poczt\u00f3wka z przysz\u0142o\u015bci &#8211; 2022<\/figcaption><\/figure><\/div>\n\n\n<p>Ostatni\u0105 du\u017c\u0105 zapowiedzi\u0105 by\u0142y trzy projekty zwi\u0105zane z Kotlinowym toolingiem. Pierwszy z nich to Kover &#8211; nowe narz\u0119dzie do liczenia pokrycia kodu. Opr\u00f3cz niego pokazano te\u017c Qodane, b\u0119d\u0105cego rozwi\u0105zaniem do analizy statycznej. Moj\u0105 najwi\u0119ksz\u0105 uwag\u0119 przyku\u0142 jednak <a href=\"https:\/\/www.youtube.com\/watch?v=bv-VyGM3HCY\">Kotlin Symbol Processing<\/a>, kt\u00f3rego celem jest zast\u0105pienie anotacji jako g\u0142\u00f3wnego sposobu na metaprogramming w Kotlinie. Narz\u0119dzie ma by\u0107 szybsze od klasycznych procesor\u00f3w anotacji, dawa\u0107 wi\u0119cej mo\u017cliwo\u015bci i jeszcze bardziej elastycznie spina\u0107 si\u0119 z build toolami.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u0179r\u00f3d\u0142a<\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/www.youtube.com\/watch?v=db19VFLZqJM\">K2 Compiler: a Top-Down View<\/a><\/li><li><a href=\"https:\/\/www.youtube.com\/watch?v=bv-VyGM3HCY\">Kotlin Symbol Processing (KSP)<\/a><\/li><li><a href=\"https:\/\/www.youtube.com\/watch?v=-pqz9sKXatw\">Kotlin &amp; WebAssembly: A First Look<\/a><\/li><li><a href=\"https:\/\/www.youtube.com\/watch?v=mye9NjvxVSU\">What&#8217;s New in Ktor 2.0<\/a><\/li><li><a href=\"https:\/\/www.youtube.com\/watch?v=aKQHayns4U0\">Spring Native with Kotlin<\/a><\/li><li><a href=\"https:\/\/blog.jetbrains.com\/kotlin\/2021\/11\/k2-compiler-kotlin-wasm-and-tooling-announcements-at-the-2021-kotlin-event\/\">K2 Compiler, Kotlin\/Wasm, and Tooling Announcements at the 2021 Kotlin Event&nbsp;<\/a><\/li><li><a href=\"https:\/\/blog.jetbrains.com\/kotlin\/2021\/11\/kotlin-for-server-side-frameworks-news\/\">Kotlin for Server-Side Frameworks News: Kotlin Premier Event Presentation Highlights<\/a><\/li><\/ul>\n\n\n\n<h2 id=\"2-wydano-gradle-7-3-a-kotlin-wreszcie-konsumuje-dodatki-z-poprzednich-wersji\" data-num=2>2. Wydano Gradle 7.3, a Kotlin wreszcie konsumuje dodatki z poprzednich wersji \ud83d\udc18<\/h2>\n\n\n\n<p>A jak ju\u017c jeste\u015bmy przy build toolach jeste\u015bmy\u2026 druga pozycja dzisiejszego przegl\u0105du to Gradle 7.3, kt\u00f3ry przynosi sporo interesuj\u0105cych nowo\u015bci.<\/p>\n\n\n\n<p>Z pewno\u015bci\u0105 rzecz\u0105, kt\u00f3ra przykuwa najwi\u0119ksz\u0105 uwag\u0119 jest wsparcie dla Javy 17. Tempo rozwoju JDKa z jednej strony pewnie tw\u00f3rc\u00f3w narz\u0119dzi cieszy (bo a\u017c przyjemnie patrze\u0107 jak to wszystko idzie do przodu), z drugiej za\u015b wymaga ci\u0105g\u0142ego maintanance. Opr\u00f3cz Javy, wsparcie dosta\u0142a r\u00f3wnie\u017c Scala 3.&nbsp;<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"472\" height=\"364\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/11\/image.png\" alt=\"\" class=\"wp-image-3171\" srcset=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/11\/image.png 472w, https:\/\/vived.io\/wp-content\/uploads\/2021\/11\/image-300x231.png 300w\" sizes=\"auto, (max-width: 472px) 100vw, 472px\" \/><figcaption>Mia\u0142em tutaj zrobi\u0107 dowcip o pustym pokoju u\u017cytkownik\u00f3w Gradle w Scali, ale <a href=\"https:\/\/www.jetbrains.com\/lp\/devecosystem-2021\/scala\/\">liczby pokazuj\u0105 nieco inn\u0105 rzeczywisto\u015b\u0107<\/a>.<\/figcaption><\/figure><\/div>\n\n\n<p>Pozosta\u0142y zmian jest naprawd\u0119 du\u017co &#8211; jak to zwykle bywa w przypadku Gradle. Wiele z nich to kosmetyka (je\u017celi jeste\u015bcie ciekawi wszystkich detali,&nbsp; zapraszamy do przegl\u0105dni\u0119cia oryginalnego posta), ale moj\u0105 uwag\u0119 przyci\u0105gn\u0105\u0142 szczeg\u00f3lnie nowy spos\u00f3b definiowania suit test\u00f3w. Od tej pory b\u0119dzie mo\u017cna to robi\u0107 o wiele bardziej deklaratywnie, przy pomocy eleganckiego DSLa.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>testing {\n    suites {\n        \/\/ Add a new test suite\n        integrationTest(JvmTestSuite) {\n            \/\/ Use JUnit Jupiter as a testing framework\n            useJUnitJupiter(&#039;5.7.1&#039;)\/\/ depend on the production code for tests\n        dependencies {\n            implementation project\n        }\n    }\n}\n}\n\ntasks.named(&#039;check&#039;) {\n    dependsOn(testing.suites.integrationTest)\n}<\/code><\/pre>\n\n\n\n<p>Oczywi\u015bcie, \u017ceby tematowi naszej edycji sta\u0142a si\u0119 zado\u015b\u0107, warto wspomnie\u0107 te\u017c, jakie nowe mo\u017cliwo\u015bci Gradle daje programistom Kotlina. Tutaj b\u0119dzie lekki \u201ctwist\u201d, poniewa\u017c w tym wypadku do Kotlin nadgoni\u0142, i wreszcie \u201cskonsumowa\u0142 warto\u015b\u0107\u201d jak\u0105 da\u0142y mu wcze\u015bniejsze wersje Gradle. Od Kotlina 1.5.30 mo\u017cliwe jest bowiem du\u017co wygodniejsze definiowanie, z jakim JDK chcemy odpali\u0107 nasz build.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>tasks.register(&quot;testsOnLatestJDK&quot;) {\n      val javaToolchains = project.extensions.getByType()\n      javaLauncher.set(javaToolchains.launcherFor {\n          \/\/ 17 is latest at the current moment\n          languageVersion.set(JavaLanguageVersion.of(17))\n     })\n}<\/code><\/pre>\n\n\n\n<p>Co szczeg\u00f3lnie wygodne w tym rozwi\u0105zaniu to fakt, \u017ce je\u017celi nie uda si\u0119 zlokalizowa\u0107 danej wersji JDK lokalnie, Gradle automatycznie pobierze odpowiedni\u0105 edycj\u0119 i wszystko skonfiguruje. Tak zwany JVM Toolchain posiada sporo wi\u0119cej mo\u017cliwo\u015bci, wi\u0119c wszystkich zainteresowanych zapraszam <a href=\"https:\/\/blog.jetbrains.com\/kotlin\/2021\/11\/gradle-jvm-toolchain-support-in-the-kotlin-plugin\/\">do oryginalnego posta<\/a> prezentuj\u0105cego funkcjonalno\u015b\u0107 kt\u00f3ry ukaza\u0142 si\u0119 pocz\u0105tkiem listopad.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u0179r\u00f3d\u0142a<\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/docs.gradle.org\/7.3\/release-notes.html\">Gradle 7.3 Release Notes<\/a><\/li><li><a href=\"https:\/\/blog.jetbrains.com\/kotlin\/2021\/11\/gradle-jvm-toolchain-support-in-the-kotlin-plugin\/\">Gradle JVM Toolchain Support in the Kotlin Plugin | The Kotlin Blog<\/a><\/li><\/ul>\n\n\n\n<h2 id=\"3-nowa-edycja-kotlinowej-roadmapy\" data-num=3>3.&nbsp; Nowa edycja Kotlinowej Roadmapy \ud83d\uddfa<\/h2>\n\n\n\n<p>A na ko\u0144cu, \u017ceby ca\u0142o\u015b\u0107 sobie podsumowa\u0107 &#8211; spojrzymy w przysz\u0142o\u015b\u0107. Zesp\u00f3\u0142 Kotlina opublikowa\u0142 bowiem kolejn\u0105 iteracj\u0119 swojej roadmapy, kt\u00f3ra to pozwala nam spojrze\u0107 w to jak b\u0119dzie si\u0119 prezentowa\u0142a przysz\u0142o\u015b\u0107 j\u0119zyka.<\/p>\n\n\n\n<p>Du\u017cy nacisk jest k\u0142adziony na kompilator K2, ten sam o kt\u00f3rym wspomnieli\u015bmy ju\u017c w pierwszej sekcji. Wida\u0107 wyra\u017anie, \u017ce dla zespo\u0142u kotlinowego stanowi on bardzo istotny aspekt przysz\u0142o\u015bci j\u0119zyka. Wi\u0105\u017ce si\u0119 to zreszt\u0105 z coraz wi\u0119kszym naciskiem na Kotlin Multiplatform, kt\u00f3ry r\u00f3wnie\u017c przebija si\u0119 wielokrotnie przez Roadmap\u0119. Dzi\u0119k K2 zespo\u0142owi o wiele \u0142atwiej b\u0119dzie si\u0119 po prostu wyci\u0105ga\u0142o cz\u0119\u015bci \u201cwsp\u00f3lne\u201d.<\/p>\n\n\n\n<p>Ponownie nawi\u0105zuj\u0105c do Kotlin Premiere, w roadmapie znale\u017a\u0107 mo\u017cna dalsz\u0105 ch\u0119\u0107 rozwoju narz\u0119dzi kotlinowych. Kover (narz\u0119dzie do obliczania pokrycia testami) oraz Dokka (tool do dokumentacji) ma doczeka\u0107 si\u0119 w najbli\u017cszym kwartale pierwszych publicznych wyda\u0144, a Dokka swojej stabilnej wersji. Polerka czeka te\u017c <a href=\"https:\/\/github.com\/Kotlin\/kotlinx.atomicfu\">atomicfu<\/a> (s\u0142u\u017c\u0105ce do operacji atomowych) jak i <a href=\"https:\/\/github.com\/Kotlin\/kotlinx-datetime\">kotlinx-datetime<\/a>. JetBrains powoli przygotowuj\u0105 si\u0119 te\u017c powoli do nowego wydania Korutyn.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/06\/5ud559.jpg\" alt=\"\"\/><figcaption>Robi si\u0119 ju\u017c tego troch\u0119<\/figcaption><\/figure><\/div>\n\n\n<p>Ostatnim ciekawym z mojej perspektywy elementem s\u0105 dalsze prace nad interoperacyjno\u015bci\u0105 z Jav\u0105. Tym razem wzi\u0119to na warsztat metody statyczne. Pierwsze jask\u00f3\u0142ki tematu mo\u017cna by\u0142o znale\u017a\u0107 ju\u017c przy okazji ankiety z pytaniami <a href=\"https:\/\/blog.jetbrains.com\/kotlin\/2021\/06\/kotlin-features-survey-edition-2\/#companion-objects\">spo\u0142eczno\u015bci o przysz\u0142o\u015b\u0107 j\u0119zyka<\/a>, gdzie podniesiono problem, \u017ce tworzenie odpowiednik\u00f3w znanych z Javy static&nbsp; wymaga ka\u017cdorazowego tworzenia \u201cobiektu towarzysz\u0105cego\u201d, co w niekt\u00f3rych przypadkach brzegowych by\u0142o trudne, albo wr\u0119cz niemo\u017cliwe. Problem ten maj\u0105 rozwi\u0105za\u0107 <em>namespace<\/em> \u2013 nowy rodzaj bez instancjowego obiektu, kt\u00f3ry jest przypisany do ka\u017cdej z klas. Na razie nie mamy jeszcze przyk\u0142adu w kodzie, ale bardzo czekam aby m\u00f3c si\u0119 tym pobawi\u0107.<\/p>\n\n\n\n<p>Ca\u0142o\u015b\u0107 Roadmapy znajdziecie jak zwykle <a href=\"https:\/\/kotlinlang.org\/docs\/roadmap.html\">pod tym samym linkiem<\/a> \ud83d\ude09&nbsp;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u0179r\u00f3d\u0142a<\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/kotlinlang.org\/docs\/roadmap.html\">Kotlin roadmap<\/a><\/li><li><a href=\"https:\/\/blog.jetbrains.com\/kotlin\/2021\/11\/kotlin-roadmap-autumn-2021\/\">Seven Highlights from the Kotlin Roadmap Autumn 2021 | The Kotlin Blog<\/a><\/li><\/ul>\n\n\n\n<hr class=\"wp-block-separator has-css-opacity\"\/>\n\n\n\n<p>PS1: Po\u015bmiali\u015bmy si\u0119 w zesz\u0142ym tygodniu z TestContainers Cloud, a teraz zapraszam wszystkich do bardzo interesuj\u0105cego podcastu <a href=\"https:\/\/pca.st\/podcast\/b2266400-94c3-0135-9d24-5bb073f92b78\">z jednym z tw\u00f3rc\u00f3w projektu<\/a>. Mo\u017cna si\u0119 sporo dowiedzie\u0107 o za\u0142o\u017ceniach, kt\u00f3re za nim stoj\u0105 \u201cod kuchni\u201d.<\/p>\n\n\n\n<p>PS2: Tak, wiem \u017ce dzi\u015b w nocy ukaza\u0142 si\u0119 nowy Kotlin 1.6 &#8211; ale na razie tylko w <a href=\"https:\/\/search.maven.org\/artifact\/org.jetbrains.kotlin\/kotlin-bom\/1.6.0\/pom\">Maven Repository<\/a>. Tak\u017ce za\u0142apie si\u0119 ju\u017c na nast\u0119pny wtorek \ud83d\udd25. A szkoda, bo by tematycznie pasowa\u0142 bardzo do edycji \ud83d\ude1c<\/p>\n\n\n\n<p>PS3: Tak, wiem \u017ce dzi\u015b w nocy pokaza\u0142y si\u0119 pierwsze drafty z Projektem Loom. Chc\u0119 si\u0119 jednak ca\u0142o\u015bci\u0105 troch\u0119 pobawi\u0107, \u017ceby dorzuci\u0107 co\u015b od siebie, a nie tylko przekleja\u0107 JEP \ud83d\ude09&nbsp;<\/p>\n\n\n\n<p>Oj, spodziewajcie si\u0119 sporo mi\u0119ska za tydzie\u0144 \ud83c\udf56<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Dzisiaj monotematycznie, ale zesp\u00f3\u0142 Kotlina pokaza\u0142 nam tak\u0105 ilo\u015b\u0107 rzeczy, \u017ce nie mog\u0142em nie po\u015bwi\u0119ci\u0107 temu j\u0119zykowi calutkiej edycji. PS: na ko\u0144cu jest jednak par\u0119 bonus\u00f3w \ud83d\ude09<\/p>\n","protected":false},"author":10,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[259],"tags":[],"class_list":["post-10050","post","type-post","status-publish","format-standard","hentry","category-jvm-pl"],"acf":{"estimated_reading_time":"6","weekly_summary":true,"feature_image_visible":false,"feature_image_blog":false,"push_notification_image":false},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.0 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>JVM Tuesday vol. 64 - Kotlin, Kotlin i jeszcze raz Gradle \ud83e\udd6b - Vived<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-64-kotlin-kotlin-i-jeszcze-raz-gradle-%f0%9f%a5%ab\/\" \/>\n<meta property=\"og:locale\" content=\"pl_PL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"JVM Tuesday vol. 64 - Kotlin, Kotlin i jeszcze raz Gradle \ud83e\udd6b - Vived\" \/>\n<meta property=\"og:description\" content=\"Dzisiaj monotematycznie, ale zesp\u00f3\u0142 Kotlina pokaza\u0142 nam tak\u0105 ilo\u015b\u0107 rzeczy, \u017ce nie mog\u0142em nie po\u015bwi\u0119ci\u0107 temu j\u0119zykowi calutkiej edycji. PS: na ko\u0144cu jest jednak par\u0119 bonus\u00f3w \ud83d\ude09\" \/>\n<meta property=\"og:url\" content=\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-64-kotlin-kotlin-i-jeszcze-raz-gradle-%f0%9f%a5%ab\/\" \/>\n<meta property=\"og:site_name\" content=\"Vived\" \/>\n<meta property=\"article:published_time\" content=\"2021-11-16T13:35:22+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-09-19T11:10:45+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/11\/Screenshot-2021-11-16-at-14.34.04.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1810\" \/>\n\t<meta property=\"og:image:height\" content=\"945\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Artur Skowro\u0144ski\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-64-kotlin-kotlin-i-jeszcze-raz-gradle-%f0%9f%a5%ab\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-64-kotlin-kotlin-i-jeszcze-raz-gradle-%f0%9f%a5%ab\/\"},\"author\":{\"name\":\"Artur Skowro\u0144ski\",\"@id\":\"https:\/\/vived.io\/pl\/#\/schema\/person\/0eb0878110cb27edfbfe46e841fe6db3\"},\"headline\":\"JVM Tuesday vol. 64 &#8211; Kotlin, Kotlin i jeszcze raz Gradle \ud83e\udd6b\",\"datePublished\":\"2021-11-16T13:35:22+00:00\",\"dateModified\":\"2022-09-19T11:10:45+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-64-kotlin-kotlin-i-jeszcze-raz-gradle-%f0%9f%a5%ab\/\"},\"wordCount\":1251,\"publisher\":{\"@id\":\"https:\/\/vived.io\/pl\/#organization\"},\"image\":{\"@id\":\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-64-kotlin-kotlin-i-jeszcze-raz-gradle-%f0%9f%a5%ab\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/vived.io\/wp-content\/uploads\/2021\/11\/giphy.gif\",\"articleSection\":[\"JVM\"],\"inLanguage\":\"pl-PL\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-64-kotlin-kotlin-i-jeszcze-raz-gradle-%f0%9f%a5%ab\/\",\"url\":\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-64-kotlin-kotlin-i-jeszcze-raz-gradle-%f0%9f%a5%ab\/\",\"name\":\"JVM Tuesday vol. 64 - Kotlin, Kotlin i jeszcze raz Gradle \ud83e\udd6b - Vived\",\"isPartOf\":{\"@id\":\"https:\/\/vived.io\/pl\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-64-kotlin-kotlin-i-jeszcze-raz-gradle-%f0%9f%a5%ab\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-64-kotlin-kotlin-i-jeszcze-raz-gradle-%f0%9f%a5%ab\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/vived.io\/wp-content\/uploads\/2021\/11\/giphy.gif\",\"datePublished\":\"2021-11-16T13:35:22+00:00\",\"dateModified\":\"2022-09-19T11:10:45+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-64-kotlin-kotlin-i-jeszcze-raz-gradle-%f0%9f%a5%ab\/#breadcrumb\"},\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-64-kotlin-kotlin-i-jeszcze-raz-gradle-%f0%9f%a5%ab\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-64-kotlin-kotlin-i-jeszcze-raz-gradle-%f0%9f%a5%ab\/#primaryimage\",\"url\":\"https:\/\/vived.io\/wp-content\/uploads\/2021\/11\/giphy.gif\",\"contentUrl\":\"https:\/\/vived.io\/wp-content\/uploads\/2021\/11\/giphy.gif\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/vived.io\/pl\/jvm-tuesday-vol-64-kotlin-kotlin-i-jeszcze-raz-gradle-%f0%9f%a5%ab\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Strona g\u0142\u00f3wna\",\"item\":\"https:\/\/vived.io\/pl\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"JVM Tuesday vol. 64 &#8211; Kotlin, Kotlin i jeszcze raz Gradle \ud83e\udd6b\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/vived.io\/pl\/#website\",\"url\":\"https:\/\/vived.io\/pl\/\",\"name\":\"Vived\",\"description\":\"platform empowering IT people and technology companies to synergic growth\",\"publisher\":{\"@id\":\"https:\/\/vived.io\/pl\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/vived.io\/pl\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pl-PL\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/vived.io\/pl\/#organization\",\"name\":\"Vived\",\"url\":\"https:\/\/vived.io\/pl\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\/\/vived.io\/pl\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/vived.io\/wp-content\/uploads\/2020\/03\/logo_vived_color.png\",\"contentUrl\":\"https:\/\/vived.io\/wp-content\/uploads\/2020\/03\/logo_vived_color.png\",\"width\":136,\"height\":45,\"caption\":\"Vived\"},\"image\":{\"@id\":\"https:\/\/vived.io\/pl\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/vived.io\/pl\/#\/schema\/person\/0eb0878110cb27edfbfe46e841fe6db3\",\"name\":\"Artur Skowro\u0144ski\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\/\/vived.io\/pl\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/29055786486c8b9dc1507f2744221c5bdb8d7ef6e6217ced0326dd3296aea6ed?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/29055786486c8b9dc1507f2744221c5bdb8d7ef6e6217ced0326dd3296aea6ed?s=96&d=mm&r=g\",\"caption\":\"Artur Skowro\u0144ski\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"JVM Tuesday vol. 64 - Kotlin, Kotlin i jeszcze raz Gradle \ud83e\udd6b - Vived","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/vived.io\/pl\/jvm-tuesday-vol-64-kotlin-kotlin-i-jeszcze-raz-gradle-%f0%9f%a5%ab\/","og_locale":"pl_PL","og_type":"article","og_title":"JVM Tuesday vol. 64 - Kotlin, Kotlin i jeszcze raz Gradle \ud83e\udd6b - Vived","og_description":"Dzisiaj monotematycznie, ale zesp\u00f3\u0142 Kotlina pokaza\u0142 nam tak\u0105 ilo\u015b\u0107 rzeczy, \u017ce nie mog\u0142em nie po\u015bwi\u0119ci\u0107 temu j\u0119zykowi calutkiej edycji. PS: na ko\u0144cu jest jednak par\u0119 bonus\u00f3w \ud83d\ude09","og_url":"https:\/\/vived.io\/pl\/jvm-tuesday-vol-64-kotlin-kotlin-i-jeszcze-raz-gradle-%f0%9f%a5%ab\/","og_site_name":"Vived","article_published_time":"2021-11-16T13:35:22+00:00","article_modified_time":"2022-09-19T11:10:45+00:00","og_image":[{"width":1810,"height":945,"url":"https:\/\/vived.io\/wp-content\/uploads\/2021\/11\/Screenshot-2021-11-16-at-14.34.04.png","type":"image\/png"}],"author":"Artur Skowro\u0144ski","twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/vived.io\/pl\/jvm-tuesday-vol-64-kotlin-kotlin-i-jeszcze-raz-gradle-%f0%9f%a5%ab\/#article","isPartOf":{"@id":"https:\/\/vived.io\/pl\/jvm-tuesday-vol-64-kotlin-kotlin-i-jeszcze-raz-gradle-%f0%9f%a5%ab\/"},"author":{"name":"Artur Skowro\u0144ski","@id":"https:\/\/vived.io\/pl\/#\/schema\/person\/0eb0878110cb27edfbfe46e841fe6db3"},"headline":"JVM Tuesday vol. 64 &#8211; Kotlin, Kotlin i jeszcze raz Gradle \ud83e\udd6b","datePublished":"2021-11-16T13:35:22+00:00","dateModified":"2022-09-19T11:10:45+00:00","mainEntityOfPage":{"@id":"https:\/\/vived.io\/pl\/jvm-tuesday-vol-64-kotlin-kotlin-i-jeszcze-raz-gradle-%f0%9f%a5%ab\/"},"wordCount":1251,"publisher":{"@id":"https:\/\/vived.io\/pl\/#organization"},"image":{"@id":"https:\/\/vived.io\/pl\/jvm-tuesday-vol-64-kotlin-kotlin-i-jeszcze-raz-gradle-%f0%9f%a5%ab\/#primaryimage"},"thumbnailUrl":"https:\/\/vived.io\/wp-content\/uploads\/2021\/11\/giphy.gif","articleSection":["JVM"],"inLanguage":"pl-PL"},{"@type":"WebPage","@id":"https:\/\/vived.io\/pl\/jvm-tuesday-vol-64-kotlin-kotlin-i-jeszcze-raz-gradle-%f0%9f%a5%ab\/","url":"https:\/\/vived.io\/pl\/jvm-tuesday-vol-64-kotlin-kotlin-i-jeszcze-raz-gradle-%f0%9f%a5%ab\/","name":"JVM Tuesday vol. 64 - Kotlin, Kotlin i jeszcze raz Gradle \ud83e\udd6b - Vived","isPartOf":{"@id":"https:\/\/vived.io\/pl\/#website"},"primaryImageOfPage":{"@id":"https:\/\/vived.io\/pl\/jvm-tuesday-vol-64-kotlin-kotlin-i-jeszcze-raz-gradle-%f0%9f%a5%ab\/#primaryimage"},"image":{"@id":"https:\/\/vived.io\/pl\/jvm-tuesday-vol-64-kotlin-kotlin-i-jeszcze-raz-gradle-%f0%9f%a5%ab\/#primaryimage"},"thumbnailUrl":"https:\/\/vived.io\/wp-content\/uploads\/2021\/11\/giphy.gif","datePublished":"2021-11-16T13:35:22+00:00","dateModified":"2022-09-19T11:10:45+00:00","breadcrumb":{"@id":"https:\/\/vived.io\/pl\/jvm-tuesday-vol-64-kotlin-kotlin-i-jeszcze-raz-gradle-%f0%9f%a5%ab\/#breadcrumb"},"inLanguage":"pl-PL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/vived.io\/pl\/jvm-tuesday-vol-64-kotlin-kotlin-i-jeszcze-raz-gradle-%f0%9f%a5%ab\/"]}]},{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/vived.io\/pl\/jvm-tuesday-vol-64-kotlin-kotlin-i-jeszcze-raz-gradle-%f0%9f%a5%ab\/#primaryimage","url":"https:\/\/vived.io\/wp-content\/uploads\/2021\/11\/giphy.gif","contentUrl":"https:\/\/vived.io\/wp-content\/uploads\/2021\/11\/giphy.gif"},{"@type":"BreadcrumbList","@id":"https:\/\/vived.io\/pl\/jvm-tuesday-vol-64-kotlin-kotlin-i-jeszcze-raz-gradle-%f0%9f%a5%ab\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Strona g\u0142\u00f3wna","item":"https:\/\/vived.io\/pl\/"},{"@type":"ListItem","position":2,"name":"JVM Tuesday vol. 64 &#8211; Kotlin, Kotlin i jeszcze raz Gradle \ud83e\udd6b"}]},{"@type":"WebSite","@id":"https:\/\/vived.io\/pl\/#website","url":"https:\/\/vived.io\/pl\/","name":"Vived","description":"platform empowering IT people and technology companies to synergic growth","publisher":{"@id":"https:\/\/vived.io\/pl\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/vived.io\/pl\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pl-PL"},{"@type":"Organization","@id":"https:\/\/vived.io\/pl\/#organization","name":"Vived","url":"https:\/\/vived.io\/pl\/","logo":{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/vived.io\/pl\/#\/schema\/logo\/image\/","url":"https:\/\/vived.io\/wp-content\/uploads\/2020\/03\/logo_vived_color.png","contentUrl":"https:\/\/vived.io\/wp-content\/uploads\/2020\/03\/logo_vived_color.png","width":136,"height":45,"caption":"Vived"},"image":{"@id":"https:\/\/vived.io\/pl\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/vived.io\/pl\/#\/schema\/person\/0eb0878110cb27edfbfe46e841fe6db3","name":"Artur Skowro\u0144ski","image":{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/vived.io\/pl\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/29055786486c8b9dc1507f2744221c5bdb8d7ef6e6217ced0326dd3296aea6ed?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/29055786486c8b9dc1507f2744221c5bdb8d7ef6e6217ced0326dd3296aea6ed?s=96&d=mm&r=g","caption":"Artur Skowro\u0144ski"}}]}},"blocks_vived":[{"blockName":"core\/heading","attrs":[],"innerBlocks":[],"innerHTML":"\n<h2>1. Co pokazano na Kotlin Premiere 2021 \ud83c\udf9e<\/h2>\n","innerContent":["\n<h2>1. Co pokazano na Kotlin Premiere 2021 \ud83c\udf9e<\/h2>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Prze\u0142om pa\u017adziernika i listopada dla spo\u0142eczno\u015bci kotlinowej przyni\u00f3s\u0142 bardzo ciekawe wydarzenie. Jetbrains przygotowa\u0142 bowiem Kotlin Premier Event - \u201crozproszony\u201d event online, kt\u00f3ry zaprezentowa\u0142 najwa\u017cniejsze zmiany w kotlinowym ekosystemie. Dlatego teraz zrobimy sobie ma\u0142y przegl\u0105d tego, co zosta\u0142o pokazane (a przynajmniej temu co przyku\u0142o moje oczy).&nbsp;<\/p>\n","innerContent":["\n<p>Prze\u0142om pa\u017adziernika i listopada dla spo\u0142eczno\u015bci kotlinowej przyni\u00f3s\u0142 bardzo ciekawe wydarzenie. Jetbrains przygotowa\u0142 bowiem Kotlin Premier Event - \u201crozproszony\u201d event online, kt\u00f3ry zaprezentowa\u0142 najwa\u017cniejsze zmiany w kotlinowym ekosystemie. Dlatego teraz zrobimy sobie ma\u0142y przegl\u0105d tego, co zosta\u0142o pokazane (a przynajmniej temu co przyku\u0142o moje oczy).&nbsp;<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":3177,"sizeSlug":"full","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/11\/giphy.gif\" alt=\"\" class=\"wp-image-3177\"\/><figcaption>Wyci\u0105gajcie popcorn, troch\u0119 tego by\u0142o<\/figcaption><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/11\/giphy.gif\" alt=\"\" class=\"wp-image-3177\"\/><figcaption>Wyci\u0105gajcie popcorn, troch\u0119 tego by\u0142o<\/figcaption><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Du\u017co miejsca po\u015bwi\u0119cono serwerowej stronie Kotlina - da si\u0119 zauwa\u017cy\u0107, \u017ce dla JetBrains jest to coraz istotniejszy kawa\u0142ek tortu. Mieli\u015bmy min. <a href=\"https:\/\/www.youtube.com\/watch?v=mye9NjvxVSU\">prezentacje Ktora 2.0<\/a> (natywnie kotlinowego frameworku webowego), kt\u00f3ry mimo, \u017ce ci\u0105gle pozostaje w Becie, to mo\u017cna si\u0119 nim ju\u017c powoli bawi\u0107. Opr\u00f3cz uproszczonego API, nowa edycja wprowadza mo\u017cliwo\u015b\u0107 \u201cretry\u2019\u00f3w\u201d, zaskakuj\u0105cego braku poprzednika. Ktor 2.0 to te\u017c wi\u0119ksza modularno\u015b\u0107 i zwi\u0119kszenie mo\u017cliwo\u015bci, jakie maj\u0105 tw\u00f3rcy zewn\u0119trznych plugin\u00f3w.. Du\u017cy nacisk po\u0142o\u017cono r\u00f3wnie\u017c na wsparcie Kotlina Multiplatform - Ktor dost\u0119pny jest teraz r\u00f3wnie\u017c dla Kotlina Native. A jak ju\u017c jeste\u015bmy przy Kotlin Native, na Kotlin Premiere Event nie zabrak\u0142o te\u017c <a href=\"https:\/\/youtube.com\/watch?v=aKQHayns4U0\">Spring Native<\/a> - najnowszego cz\u0142onka springowej rodziny. Z prezentacji mo\u017cemy dowiedzie\u0107 si\u0119 nie tylko o tym, jak dobrze Kotlin spina si\u0119 z natywn\u0105 wersj\u0105 frameworku Pivotala, ale te\u017c, \u017ce sam Spring Native to tylko etap przej\u015bciowy. Spring Boot 3.0 ma bowiem posiada\u0107 wsparcie dla GraalVM Out-of-the-Box.&nbsp;<\/p>\n","innerContent":["\n<p>Du\u017co miejsca po\u015bwi\u0119cono serwerowej stronie Kotlina - da si\u0119 zauwa\u017cy\u0107, \u017ce dla JetBrains jest to coraz istotniejszy kawa\u0142ek tortu. Mieli\u015bmy min. <a href=\"https:\/\/www.youtube.com\/watch?v=mye9NjvxVSU\">prezentacje Ktora 2.0<\/a> (natywnie kotlinowego frameworku webowego), kt\u00f3ry mimo, \u017ce ci\u0105gle pozostaje w Becie, to mo\u017cna si\u0119 nim ju\u017c powoli bawi\u0107. Opr\u00f3cz uproszczonego API, nowa edycja wprowadza mo\u017cliwo\u015b\u0107 \u201cretry\u2019\u00f3w\u201d, zaskakuj\u0105cego braku poprzednika. Ktor 2.0 to te\u017c wi\u0119ksza modularno\u015b\u0107 i zwi\u0119kszenie mo\u017cliwo\u015bci, jakie maj\u0105 tw\u00f3rcy zewn\u0119trznych plugin\u00f3w.. Du\u017cy nacisk po\u0142o\u017cono r\u00f3wnie\u017c na wsparcie Kotlina Multiplatform - Ktor dost\u0119pny jest teraz r\u00f3wnie\u017c dla Kotlina Native. A jak ju\u017c jeste\u015bmy przy Kotlin Native, na Kotlin Premiere Event nie zabrak\u0142o te\u017c <a href=\"https:\/\/youtube.com\/watch?v=aKQHayns4U0\">Spring Native<\/a> - najnowszego cz\u0142onka springowej rodziny. Z prezentacji mo\u017cemy dowiedzie\u0107 si\u0119 nie tylko o tym, jak dobrze Kotlin spina si\u0119 z natywn\u0105 wersj\u0105 frameworku Pivotala, ale te\u017c, \u017ce sam Spring Native to tylko etap przej\u015bciowy. Spring Boot 3.0 ma bowiem posiada\u0107 wsparcie dla GraalVM Out-of-the-Box.&nbsp;<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Oczywi\u015bcie, poza stron\u0105 serwerow\u0105 nie zabrak\u0142o r\u00f3wnie\u017c informacji na temat wszystkiego, co dzieje si\u0119 w Kotlinie naoko\u0142o. Zaprezentowano min. jak dzia\u0142a nowy, zunifikowany <a href=\"https:\/\/www.youtube.com\/watch?v=db19VFLZqJM\">kompilator K2<\/a>. Mogli\u015bmy si\u0119 dowiedzie\u0107, jak du\u017cego wzrostu wydajno\u015bci ca\u0142o\u015bci mo\u017cemy si\u0119 spodziewa\u0107 i w jaki spos\u00f3b ca\u0142a inicjatywa pomo\u017ce pchn\u0105\u0107 projekt Kotlin Multiplatform do przodu. Multiplatform mocno si\u0119 zreszt\u0105 rozrasta - po raz pierwszy <a href=\"https:\/\/www.youtube.com\/watch?v=-pqz9sKXatw\">pokazano jego wersj\u0119 dla WebAssembly<\/a>.<\/p>\n","innerContent":["\n<p>Oczywi\u015bcie, poza stron\u0105 serwerow\u0105 nie zabrak\u0142o r\u00f3wnie\u017c informacji na temat wszystkiego, co dzieje si\u0119 w Kotlinie naoko\u0142o. Zaprezentowano min. jak dzia\u0142a nowy, zunifikowany <a href=\"https:\/\/www.youtube.com\/watch?v=db19VFLZqJM\">kompilator K2<\/a>. Mogli\u015bmy si\u0119 dowiedzie\u0107, jak du\u017cego wzrostu wydajno\u015bci ca\u0142o\u015bci mo\u017cemy si\u0119 spodziewa\u0107 i w jaki spos\u00f3b ca\u0142a inicjatywa pomo\u017ce pchn\u0105\u0107 projekt Kotlin Multiplatform do przodu. Multiplatform mocno si\u0119 zreszt\u0105 rozrasta - po raz pierwszy <a href=\"https:\/\/www.youtube.com\/watch?v=-pqz9sKXatw\">pokazano jego wersj\u0119 dla WebAssembly<\/a>.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":3169,"width":750,"height":500,"sizeSlug":"full","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter size-full is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/11\/image.jpeg\" alt=\"\" class=\"wp-image-3169\" width=\"750\" height=\"500\"\/><figcaption>Poczt\u00f3wka z przysz\u0142o\u015bci - 2022<\/figcaption><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter size-full is-resized\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/11\/image.jpeg\" alt=\"\" class=\"wp-image-3169\" width=\"750\" height=\"500\"\/><figcaption>Poczt\u00f3wka z przysz\u0142o\u015bci - 2022<\/figcaption><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Ostatni\u0105 du\u017c\u0105 zapowiedzi\u0105 by\u0142y trzy projekty zwi\u0105zane z Kotlinowym toolingiem. Pierwszy z nich to Kover - nowe narz\u0119dzie do liczenia pokrycia kodu. Opr\u00f3cz niego pokazano te\u017c Qodane, b\u0119d\u0105cego rozwi\u0105zaniem do analizy statycznej. Moj\u0105 najwi\u0119ksz\u0105 uwag\u0119 przyku\u0142 jednak <a href=\"https:\/\/www.youtube.com\/watch?v=bv-VyGM3HCY\">Kotlin Symbol Processing<\/a>, kt\u00f3rego celem jest zast\u0105pienie anotacji jako g\u0142\u00f3wnego sposobu na metaprogramming w Kotlinie. Narz\u0119dzie ma by\u0107 szybsze od klasycznych procesor\u00f3w anotacji, dawa\u0107 wi\u0119cej mo\u017cliwo\u015bci i jeszcze bardziej elastycznie spina\u0107 si\u0119 z build toolami.<\/p>\n","innerContent":["\n<p>Ostatni\u0105 du\u017c\u0105 zapowiedzi\u0105 by\u0142y trzy projekty zwi\u0105zane z Kotlinowym toolingiem. Pierwszy z nich to Kover - nowe narz\u0119dzie do liczenia pokrycia kodu. Opr\u00f3cz niego pokazano te\u017c Qodane, b\u0119d\u0105cego rozwi\u0105zaniem do analizy statycznej. Moj\u0105 najwi\u0119ksz\u0105 uwag\u0119 przyku\u0142 jednak <a href=\"https:\/\/www.youtube.com\/watch?v=bv-VyGM3HCY\">Kotlin Symbol Processing<\/a>, kt\u00f3rego celem jest zast\u0105pienie anotacji jako g\u0142\u00f3wnego sposobu na metaprogramming w Kotlinie. Narz\u0119dzie ma by\u0107 szybsze od klasycznych procesor\u00f3w anotacji, dawa\u0107 wi\u0119cej mo\u017cliwo\u015bci i jeszcze bardziej elastycznie spina\u0107 si\u0119 z build toolami.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":{"level":3},"innerBlocks":[],"innerHTML":"\n<h3>\u0179r\u00f3d\u0142a<\/h3>\n","innerContent":["\n<h3>\u0179r\u00f3d\u0142a<\/h3>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/list","attrs":[],"innerBlocks":[],"innerHTML":"\n<ul><li><a href=\"https:\/\/www.youtube.com\/watch?v=db19VFLZqJM\">K2 Compiler: a Top-Down View<\/a><\/li><li><a href=\"https:\/\/www.youtube.com\/watch?v=bv-VyGM3HCY\">Kotlin Symbol Processing (KSP)<\/a><\/li><li><a href=\"https:\/\/www.youtube.com\/watch?v=-pqz9sKXatw\">Kotlin &amp; WebAssembly: A First Look<\/a><\/li><li><a href=\"https:\/\/www.youtube.com\/watch?v=mye9NjvxVSU\">What's New in Ktor 2.0<\/a><\/li><li><a href=\"https:\/\/www.youtube.com\/watch?v=aKQHayns4U0\">Spring Native with Kotlin<\/a><\/li><li><a href=\"https:\/\/blog.jetbrains.com\/kotlin\/2021\/11\/k2-compiler-kotlin-wasm-and-tooling-announcements-at-the-2021-kotlin-event\/\">K2 Compiler, Kotlin\/Wasm, and Tooling Announcements at the 2021 Kotlin Event&nbsp;<\/a><\/li><li><a href=\"https:\/\/blog.jetbrains.com\/kotlin\/2021\/11\/kotlin-for-server-side-frameworks-news\/\">Kotlin for Server-Side Frameworks News: Kotlin Premier Event Presentation Highlights<\/a><\/li><\/ul>\n","innerContent":["\n<ul><li><a href=\"https:\/\/www.youtube.com\/watch?v=db19VFLZqJM\">K2 Compiler: a Top-Down View<\/a><\/li><li><a href=\"https:\/\/www.youtube.com\/watch?v=bv-VyGM3HCY\">Kotlin Symbol Processing (KSP)<\/a><\/li><li><a href=\"https:\/\/www.youtube.com\/watch?v=-pqz9sKXatw\">Kotlin &amp; WebAssembly: A First Look<\/a><\/li><li><a href=\"https:\/\/www.youtube.com\/watch?v=mye9NjvxVSU\">What's New in Ktor 2.0<\/a><\/li><li><a href=\"https:\/\/www.youtube.com\/watch?v=aKQHayns4U0\">Spring Native with Kotlin<\/a><\/li><li><a href=\"https:\/\/blog.jetbrains.com\/kotlin\/2021\/11\/k2-compiler-kotlin-wasm-and-tooling-announcements-at-the-2021-kotlin-event\/\">K2 Compiler, Kotlin\/Wasm, and Tooling Announcements at the 2021 Kotlin Event&nbsp;<\/a><\/li><li><a href=\"https:\/\/blog.jetbrains.com\/kotlin\/2021\/11\/kotlin-for-server-side-frameworks-news\/\">Kotlin for Server-Side Frameworks News: Kotlin Premier Event Presentation Highlights<\/a><\/li><\/ul>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":[],"innerBlocks":[],"innerHTML":"\n<h2>2. Wydano Gradle 7.3, a Kotlin wreszcie konsumuje dodatki z poprzednich wersji \ud83d\udc18<\/h2>\n","innerContent":["\n<h2>2. Wydano Gradle 7.3, a Kotlin wreszcie konsumuje dodatki z poprzednich wersji \ud83d\udc18<\/h2>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>A jak ju\u017c jeste\u015bmy przy build toolach jeste\u015bmy\u2026 druga pozycja dzisiejszego przegl\u0105du to Gradle 7.3, kt\u00f3ry przynosi sporo interesuj\u0105cych nowo\u015bci.<\/p>\n","innerContent":["\n<p>A jak ju\u017c jeste\u015bmy przy build toolach jeste\u015bmy\u2026 druga pozycja dzisiejszego przegl\u0105du to Gradle 7.3, kt\u00f3ry przynosi sporo interesuj\u0105cych nowo\u015bci.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Z pewno\u015bci\u0105 rzecz\u0105, kt\u00f3ra przykuwa najwi\u0119ksz\u0105 uwag\u0119 jest wsparcie dla Javy 17. Tempo rozwoju JDKa z jednej strony pewnie tw\u00f3rc\u00f3w narz\u0119dzi cieszy (bo a\u017c przyjemnie patrze\u0107 jak to wszystko idzie do przodu), z drugiej za\u015b wymaga ci\u0105g\u0142ego maintanance. Opr\u00f3cz Javy, wsparcie dosta\u0142a r\u00f3wnie\u017c Scala 3.&nbsp;<\/p>\n","innerContent":["\n<p>Z pewno\u015bci\u0105 rzecz\u0105, kt\u00f3ra przykuwa najwi\u0119ksz\u0105 uwag\u0119 jest wsparcie dla Javy 17. Tempo rozwoju JDKa z jednej strony pewnie tw\u00f3rc\u00f3w narz\u0119dzi cieszy (bo a\u017c przyjemnie patrze\u0107 jak to wszystko idzie do przodu), z drugiej za\u015b wymaga ci\u0105g\u0142ego maintanance. Opr\u00f3cz Javy, wsparcie dosta\u0142a r\u00f3wnie\u017c Scala 3.&nbsp;<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center","id":3171,"sizeSlug":"full","linkDestination":"none"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/11\/image.png\" alt=\"\" class=\"wp-image-3171\"\/><figcaption>Mia\u0142em tutaj zrobi\u0107 dowcip o pustym pokoju u\u017cytkownik\u00f3w Gradle w Scali, ale <a href=\"https:\/\/www.jetbrains.com\/lp\/devecosystem-2021\/scala\/\">liczby pokazuj\u0105 nieco inn\u0105 rzeczywisto\u015b\u0107<\/a>.<\/figcaption><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter size-full\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/11\/image.png\" alt=\"\" class=\"wp-image-3171\"\/><figcaption>Mia\u0142em tutaj zrobi\u0107 dowcip o pustym pokoju u\u017cytkownik\u00f3w Gradle w Scali, ale <a href=\"https:\/\/www.jetbrains.com\/lp\/devecosystem-2021\/scala\/\">liczby pokazuj\u0105 nieco inn\u0105 rzeczywisto\u015b\u0107<\/a>.<\/figcaption><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Pozosta\u0142y zmian jest naprawd\u0119 du\u017co - jak to zwykle bywa w przypadku Gradle. Wiele z nich to kosmetyka (je\u017celi jeste\u015bcie ciekawi wszystkich detali,&nbsp; zapraszamy do przegl\u0105dni\u0119cia oryginalnego posta), ale moj\u0105 uwag\u0119 przyci\u0105gn\u0105\u0142 szczeg\u00f3lnie nowy spos\u00f3b definiowania suit test\u00f3w. Od tej pory b\u0119dzie mo\u017cna to robi\u0107 o wiele bardziej deklaratywnie, przy pomocy eleganckiego DSLa.<\/p>\n","innerContent":["\n<p>Pozosta\u0142y zmian jest naprawd\u0119 du\u017co - jak to zwykle bywa w przypadku Gradle. Wiele z nich to kosmetyka (je\u017celi jeste\u015bcie ciekawi wszystkich detali,&nbsp; zapraszamy do przegl\u0105dni\u0119cia oryginalnego posta), ale moj\u0105 uwag\u0119 przyci\u0105gn\u0105\u0142 szczeg\u00f3lnie nowy spos\u00f3b definiowania suit test\u00f3w. Od tej pory b\u0119dzie mo\u017cna to robi\u0107 o wiele bardziej deklaratywnie, przy pomocy eleganckiego DSLa.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p><\/p>\n","innerContent":["\n<p><\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/code","attrs":[],"innerBlocks":[],"innerHTML":"\n<pre class=\"wp-block-code\"><code>testing {\n    suites {\n        \/\/ Add a new test suite\n        integrationTest(JvmTestSuite) {\n            \/\/ Use JUnit Jupiter as a testing framework\n            useJUnitJupiter('5.7.1')\/\/ depend on the production code for tests\n        dependencies {\n            implementation project\n        }\n    }\n}\n}\n\ntasks.named('check') {\n    dependsOn(testing.suites.integrationTest)\n}<\/code><\/pre>\n","innerContent":["\n<pre class=\"wp-block-code\"><code>testing {\n    suites {\n        \/\/ Add a new test suite\n        integrationTest(JvmTestSuite) {\n            \/\/ Use JUnit Jupiter as a testing framework\n            useJUnitJupiter('5.7.1')\/\/ depend on the production code for tests\n        dependencies {\n            implementation project\n        }\n    }\n}\n}\n\ntasks.named('check') {\n    dependsOn(testing.suites.integrationTest)\n}<\/code><\/pre>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Oczywi\u015bcie, \u017ceby tematowi naszej edycji sta\u0142a si\u0119 zado\u015b\u0107, warto wspomnie\u0107 te\u017c, jakie nowe mo\u017cliwo\u015bci Gradle daje programistom Kotlina. Tutaj b\u0119dzie lekki \u201ctwist\u201d, poniewa\u017c w tym wypadku do Kotlin nadgoni\u0142, i wreszcie \u201cskonsumowa\u0142 warto\u015b\u0107\u201d jak\u0105 da\u0142y mu wcze\u015bniejsze wersje Gradle. Od Kotlina 1.5.30 mo\u017cliwe jest bowiem du\u017co wygodniejsze definiowanie, z jakim JDK chcemy odpali\u0107 nasz build.<\/p>\n","innerContent":["\n<p>Oczywi\u015bcie, \u017ceby tematowi naszej edycji sta\u0142a si\u0119 zado\u015b\u0107, warto wspomnie\u0107 te\u017c, jakie nowe mo\u017cliwo\u015bci Gradle daje programistom Kotlina. Tutaj b\u0119dzie lekki \u201ctwist\u201d, poniewa\u017c w tym wypadku do Kotlin nadgoni\u0142, i wreszcie \u201cskonsumowa\u0142 warto\u015b\u0107\u201d jak\u0105 da\u0142y mu wcze\u015bniejsze wersje Gradle. Od Kotlina 1.5.30 mo\u017cliwe jest bowiem du\u017co wygodniejsze definiowanie, z jakim JDK chcemy odpali\u0107 nasz build.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/code","attrs":[],"innerBlocks":[],"innerHTML":"\n<pre class=\"wp-block-code\"><code>tasks.register(\"testsOnLatestJDK\") {\n      val javaToolchains = project.extensions.getByType()\n      javaLauncher.set(javaToolchains.launcherFor {\n          \/\/ 17 is latest at the current moment\n          languageVersion.set(JavaLanguageVersion.of(17))\n     })\n}<\/code><\/pre>\n","innerContent":["\n<pre class=\"wp-block-code\"><code>tasks.register(\"testsOnLatestJDK\") {\n      val javaToolchains = project.extensions.getByType()\n      javaLauncher.set(javaToolchains.launcherFor {\n          \/\/ 17 is latest at the current moment\n          languageVersion.set(JavaLanguageVersion.of(17))\n     })\n}<\/code><\/pre>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Co szczeg\u00f3lnie wygodne w tym rozwi\u0105zaniu to fakt, \u017ce je\u017celi nie uda si\u0119 zlokalizowa\u0107 danej wersji JDK lokalnie, Gradle automatycznie pobierze odpowiedni\u0105 edycj\u0119 i wszystko skonfiguruje. Tak zwany JVM Toolchain posiada sporo wi\u0119cej mo\u017cliwo\u015bci, wi\u0119c wszystkich zainteresowanych zapraszam <a href=\"https:\/\/blog.jetbrains.com\/kotlin\/2021\/11\/gradle-jvm-toolchain-support-in-the-kotlin-plugin\/\">do oryginalnego posta<\/a> prezentuj\u0105cego funkcjonalno\u015b\u0107 kt\u00f3ry ukaza\u0142 si\u0119 pocz\u0105tkiem listopad.<\/p>\n","innerContent":["\n<p>Co szczeg\u00f3lnie wygodne w tym rozwi\u0105zaniu to fakt, \u017ce je\u017celi nie uda si\u0119 zlokalizowa\u0107 danej wersji JDK lokalnie, Gradle automatycznie pobierze odpowiedni\u0105 edycj\u0119 i wszystko skonfiguruje. Tak zwany JVM Toolchain posiada sporo wi\u0119cej mo\u017cliwo\u015bci, wi\u0119c wszystkich zainteresowanych zapraszam <a href=\"https:\/\/blog.jetbrains.com\/kotlin\/2021\/11\/gradle-jvm-toolchain-support-in-the-kotlin-plugin\/\">do oryginalnego posta<\/a> prezentuj\u0105cego funkcjonalno\u015b\u0107 kt\u00f3ry ukaza\u0142 si\u0119 pocz\u0105tkiem listopad.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":{"level":3},"innerBlocks":[],"innerHTML":"\n<h3>\u0179r\u00f3d\u0142a<\/h3>\n","innerContent":["\n<h3>\u0179r\u00f3d\u0142a<\/h3>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/list","attrs":[],"innerBlocks":[],"innerHTML":"\n<ul><li><a href=\"https:\/\/docs.gradle.org\/7.3\/release-notes.html\">Gradle 7.3 Release Notes<\/a><\/li><li><a href=\"https:\/\/blog.jetbrains.com\/kotlin\/2021\/11\/gradle-jvm-toolchain-support-in-the-kotlin-plugin\/\">Gradle JVM Toolchain Support in the Kotlin Plugin | The Kotlin Blog<\/a><\/li><\/ul>\n","innerContent":["\n<ul><li><a href=\"https:\/\/docs.gradle.org\/7.3\/release-notes.html\">Gradle 7.3 Release Notes<\/a><\/li><li><a href=\"https:\/\/blog.jetbrains.com\/kotlin\/2021\/11\/gradle-jvm-toolchain-support-in-the-kotlin-plugin\/\">Gradle JVM Toolchain Support in the Kotlin Plugin | The Kotlin Blog<\/a><\/li><\/ul>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":[],"innerBlocks":[],"innerHTML":"\n<h2>3.&nbsp; Nowa edycja Kotlinowej Roadmapy \ud83d\uddfa<\/h2>\n","innerContent":["\n<h2>3.&nbsp; Nowa edycja Kotlinowej Roadmapy \ud83d\uddfa<\/h2>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>A na ko\u0144cu, \u017ceby ca\u0142o\u015b\u0107 sobie podsumowa\u0107 - spojrzymy w przysz\u0142o\u015b\u0107. Zesp\u00f3\u0142 Kotlina opublikowa\u0142 bowiem kolejn\u0105 iteracj\u0119 swojej roadmapy, kt\u00f3ra to pozwala nam spojrze\u0107 w to jak b\u0119dzie si\u0119 prezentowa\u0142a przysz\u0142o\u015b\u0107 j\u0119zyka.<\/p>\n","innerContent":["\n<p>A na ko\u0144cu, \u017ceby ca\u0142o\u015b\u0107 sobie podsumowa\u0107 - spojrzymy w przysz\u0142o\u015b\u0107. Zesp\u00f3\u0142 Kotlina opublikowa\u0142 bowiem kolejn\u0105 iteracj\u0119 swojej roadmapy, kt\u00f3ra to pozwala nam spojrze\u0107 w to jak b\u0119dzie si\u0119 prezentowa\u0142a przysz\u0142o\u015b\u0107 j\u0119zyka.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Du\u017cy nacisk jest k\u0142adziony na kompilator K2, ten sam o kt\u00f3rym wspomnieli\u015bmy ju\u017c w pierwszej sekcji. Wida\u0107 wyra\u017anie, \u017ce dla zespo\u0142u kotlinowego stanowi on bardzo istotny aspekt przysz\u0142o\u015bci j\u0119zyka. Wi\u0105\u017ce si\u0119 to zreszt\u0105 z coraz wi\u0119kszym naciskiem na Kotlin Multiplatform, kt\u00f3ry r\u00f3wnie\u017c przebija si\u0119 wielokrotnie przez Roadmap\u0119. Dzi\u0119k K2 zespo\u0142owi o wiele \u0142atwiej b\u0119dzie si\u0119 po prostu wyci\u0105ga\u0142o cz\u0119\u015bci \u201cwsp\u00f3lne\u201d.<\/p>\n","innerContent":["\n<p>Du\u017cy nacisk jest k\u0142adziony na kompilator K2, ten sam o kt\u00f3rym wspomnieli\u015bmy ju\u017c w pierwszej sekcji. Wida\u0107 wyra\u017anie, \u017ce dla zespo\u0142u kotlinowego stanowi on bardzo istotny aspekt przysz\u0142o\u015bci j\u0119zyka. Wi\u0105\u017ce si\u0119 to zreszt\u0105 z coraz wi\u0119kszym naciskiem na Kotlin Multiplatform, kt\u00f3ry r\u00f3wnie\u017c przebija si\u0119 wielokrotnie przez Roadmap\u0119. Dzi\u0119k K2 zespo\u0142owi o wiele \u0142atwiej b\u0119dzie si\u0119 po prostu wyci\u0105ga\u0142o cz\u0119\u015bci \u201cwsp\u00f3lne\u201d.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Ponownie nawi\u0105zuj\u0105c do Kotlin Premiere, w roadmapie znale\u017a\u0107 mo\u017cna dalsz\u0105 ch\u0119\u0107 rozwoju narz\u0119dzi kotlinowych. Kover (narz\u0119dzie do obliczania pokrycia testami) oraz Dokka (tool do dokumentacji) ma doczeka\u0107 si\u0119 w najbli\u017cszym kwartale pierwszych publicznych wyda\u0144, a Dokka swojej stabilnej wersji. Polerka czeka te\u017c <a href=\"https:\/\/github.com\/Kotlin\/kotlinx.atomicfu\">atomicfu<\/a> (s\u0142u\u017c\u0105ce do operacji atomowych) jak i <a href=\"https:\/\/github.com\/Kotlin\/kotlinx-datetime\">kotlinx-datetime<\/a>. JetBrains powoli przygotowuj\u0105 si\u0119 te\u017c powoli do nowego wydania Korutyn.<\/p>\n","innerContent":["\n<p>Ponownie nawi\u0105zuj\u0105c do Kotlin Premiere, w roadmapie znale\u017a\u0107 mo\u017cna dalsz\u0105 ch\u0119\u0107 rozwoju narz\u0119dzi kotlinowych. Kover (narz\u0119dzie do obliczania pokrycia testami) oraz Dokka (tool do dokumentacji) ma doczeka\u0107 si\u0119 w najbli\u017cszym kwartale pierwszych publicznych wyda\u0144, a Dokka swojej stabilnej wersji. Polerka czeka te\u017c <a href=\"https:\/\/github.com\/Kotlin\/kotlinx.atomicfu\">atomicfu<\/a> (s\u0142u\u017c\u0105ce do operacji atomowych) jak i <a href=\"https:\/\/github.com\/Kotlin\/kotlinx-datetime\">kotlinx-datetime<\/a>. JetBrains powoli przygotowuj\u0105 si\u0119 te\u017c powoli do nowego wydania Korutyn.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/image","attrs":{"align":"center"},"innerBlocks":[],"innerHTML":"\n<figure class=\"wp-block-image aligncenter\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/06\/5ud559.jpg\" alt=\"\"\/><figcaption>Robi si\u0119 ju\u017c tego troch\u0119<\/figcaption><\/figure>\n","innerContent":["\n<figure class=\"wp-block-image aligncenter\"><img src=\"https:\/\/vived.io\/wp-content\/uploads\/2022\/06\/5ud559.jpg\" alt=\"\"\/><figcaption>Robi si\u0119 ju\u017c tego troch\u0119<\/figcaption><\/figure>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Ostatnim ciekawym z mojej perspektywy elementem s\u0105 dalsze prace nad interoperacyjno\u015bci\u0105 z Jav\u0105. Tym razem wzi\u0119to na warsztat metody statyczne. Pierwsze jask\u00f3\u0142ki tematu mo\u017cna by\u0142o znale\u017a\u0107 ju\u017c przy okazji ankiety z pytaniami <a href=\"https:\/\/blog.jetbrains.com\/kotlin\/2021\/06\/kotlin-features-survey-edition-2\/#companion-objects\">spo\u0142eczno\u015bci o przysz\u0142o\u015b\u0107 j\u0119zyka<\/a>, gdzie podniesiono problem, \u017ce tworzenie odpowiednik\u00f3w znanych z Javy static&nbsp; wymaga ka\u017cdorazowego tworzenia \u201cobiektu towarzysz\u0105cego\u201d, co w niekt\u00f3rych przypadkach brzegowych by\u0142o trudne, albo wr\u0119cz niemo\u017cliwe. Problem ten maj\u0105 rozwi\u0105za\u0107 <em>namespace<\/em> \u2013 nowy rodzaj bez instancjowego obiektu, kt\u00f3ry jest przypisany do ka\u017cdej z klas. Na razie nie mamy jeszcze przyk\u0142adu w kodzie, ale bardzo czekam aby m\u00f3c si\u0119 tym pobawi\u0107.<\/p>\n","innerContent":["\n<p>Ostatnim ciekawym z mojej perspektywy elementem s\u0105 dalsze prace nad interoperacyjno\u015bci\u0105 z Jav\u0105. Tym razem wzi\u0119to na warsztat metody statyczne. Pierwsze jask\u00f3\u0142ki tematu mo\u017cna by\u0142o znale\u017a\u0107 ju\u017c przy okazji ankiety z pytaniami <a href=\"https:\/\/blog.jetbrains.com\/kotlin\/2021\/06\/kotlin-features-survey-edition-2\/#companion-objects\">spo\u0142eczno\u015bci o przysz\u0142o\u015b\u0107 j\u0119zyka<\/a>, gdzie podniesiono problem, \u017ce tworzenie odpowiednik\u00f3w znanych z Javy static&nbsp; wymaga ka\u017cdorazowego tworzenia \u201cobiektu towarzysz\u0105cego\u201d, co w niekt\u00f3rych przypadkach brzegowych by\u0142o trudne, albo wr\u0119cz niemo\u017cliwe. Problem ten maj\u0105 rozwi\u0105za\u0107 <em>namespace<\/em> \u2013 nowy rodzaj bez instancjowego obiektu, kt\u00f3ry jest przypisany do ka\u017cdej z klas. Na razie nie mamy jeszcze przyk\u0142adu w kodzie, ale bardzo czekam aby m\u00f3c si\u0119 tym pobawi\u0107.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Ca\u0142o\u015b\u0107 Roadmapy znajdziecie jak zwykle <a href=\"https:\/\/kotlinlang.org\/docs\/roadmap.html\">pod tym samym linkiem<\/a> \ud83d\ude09&nbsp;<\/p>\n","innerContent":["\n<p>Ca\u0142o\u015b\u0107 Roadmapy znajdziecie jak zwykle <a href=\"https:\/\/kotlinlang.org\/docs\/roadmap.html\">pod tym samym linkiem<\/a> \ud83d\ude09&nbsp;<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/heading","attrs":{"level":3},"innerBlocks":[],"innerHTML":"\n<h3>\u0179r\u00f3d\u0142a<\/h3>\n","innerContent":["\n<h3>\u0179r\u00f3d\u0142a<\/h3>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/list","attrs":[],"innerBlocks":[],"innerHTML":"\n<ul><li><a href=\"https:\/\/kotlinlang.org\/docs\/roadmap.html\">Kotlin roadmap<\/a><\/li><li><a href=\"https:\/\/blog.jetbrains.com\/kotlin\/2021\/11\/kotlin-roadmap-autumn-2021\/\">Seven Highlights from the Kotlin Roadmap Autumn 2021 | The Kotlin Blog<\/a><\/li><\/ul>\n","innerContent":["\n<ul><li><a href=\"https:\/\/kotlinlang.org\/docs\/roadmap.html\">Kotlin roadmap<\/a><\/li><li><a href=\"https:\/\/blog.jetbrains.com\/kotlin\/2021\/11\/kotlin-roadmap-autumn-2021\/\">Seven Highlights from the Kotlin Roadmap Autumn 2021 | The Kotlin Blog<\/a><\/li><\/ul>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/separator","attrs":{"opacity":"css"},"innerBlocks":[],"innerHTML":"\n<hr class=\"wp-block-separator has-css-opacity\"\/>\n","innerContent":["\n<hr class=\"wp-block-separator has-css-opacity\"\/>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>PS1: Po\u015bmiali\u015bmy si\u0119 w zesz\u0142ym tygodniu z TestContainers Cloud, a teraz zapraszam wszystkich do bardzo interesuj\u0105cego podcastu <a href=\"https:\/\/pca.st\/podcast\/b2266400-94c3-0135-9d24-5bb073f92b78\">z jednym z tw\u00f3rc\u00f3w projektu<\/a>. Mo\u017cna si\u0119 sporo dowiedzie\u0107 o za\u0142o\u017ceniach, kt\u00f3re za nim stoj\u0105 \u201cod kuchni\u201d.<\/p>\n","innerContent":["\n<p>PS1: Po\u015bmiali\u015bmy si\u0119 w zesz\u0142ym tygodniu z TestContainers Cloud, a teraz zapraszam wszystkich do bardzo interesuj\u0105cego podcastu <a href=\"https:\/\/pca.st\/podcast\/b2266400-94c3-0135-9d24-5bb073f92b78\">z jednym z tw\u00f3rc\u00f3w projektu<\/a>. Mo\u017cna si\u0119 sporo dowiedzie\u0107 o za\u0142o\u017ceniach, kt\u00f3re za nim stoj\u0105 \u201cod kuchni\u201d.<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>PS2: Tak, wiem \u017ce dzi\u015b w nocy ukaza\u0142 si\u0119 nowy Kotlin 1.6 - ale na razie tylko w <a href=\"https:\/\/search.maven.org\/artifact\/org.jetbrains.kotlin\/kotlin-bom\/1.6.0\/pom\">Maven Repository<\/a>. Tak\u017ce za\u0142apie si\u0119 ju\u017c na nast\u0119pny wtorek \ud83d\udd25. A szkoda, bo by tematycznie pasowa\u0142 bardzo do edycji \ud83d\ude1c<\/p>\n","innerContent":["\n<p>PS2: Tak, wiem \u017ce dzi\u015b w nocy ukaza\u0142 si\u0119 nowy Kotlin 1.6 - ale na razie tylko w <a href=\"https:\/\/search.maven.org\/artifact\/org.jetbrains.kotlin\/kotlin-bom\/1.6.0\/pom\">Maven Repository<\/a>. Tak\u017ce za\u0142apie si\u0119 ju\u017c na nast\u0119pny wtorek \ud83d\udd25. A szkoda, bo by tematycznie pasowa\u0142 bardzo do edycji \ud83d\ude1c<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>PS3: Tak, wiem \u017ce dzi\u015b w nocy pokaza\u0142y si\u0119 pierwsze drafty z Projektem Loom. Chc\u0119 si\u0119 jednak ca\u0142o\u015bci\u0105 troch\u0119 pobawi\u0107, \u017ceby dorzuci\u0107 co\u015b od siebie, a nie tylko przekleja\u0107 JEP \ud83d\ude09&nbsp;<\/p>\n","innerContent":["\n<p>PS3: Tak, wiem \u017ce dzi\u015b w nocy pokaza\u0142y si\u0119 pierwsze drafty z Projektem Loom. Chc\u0119 si\u0119 jednak ca\u0142o\u015bci\u0105 troch\u0119 pobawi\u0107, \u017ceby dorzuci\u0107 co\u015b od siebie, a nie tylko przekleja\u0107 JEP \ud83d\ude09&nbsp;<\/p>\n"]},{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"\n\n","innerContent":["\n\n"]},{"blockName":"core\/paragraph","attrs":[],"innerBlocks":[],"innerHTML":"\n<p>Oj, spodziewajcie si\u0119 sporo mi\u0119ska za tydzie\u0144 \ud83c\udf56<\/p>\n","innerContent":["\n<p>Oj, spodziewajcie si\u0119 sporo mi\u0119ska za tydzie\u0144 \ud83c\udf56<\/p>\n"]}],"_links":{"self":[{"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts\/10050","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/users\/10"}],"replies":[{"embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/comments?post=10050"}],"version-history":[{"count":1,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts\/10050\/revisions"}],"predecessor-version":[{"id":10547,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts\/10050\/revisions\/10547"}],"wp:attachment":[{"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/media?parent=10050"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/categories?post=10050"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/tags?post=10050"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}