Over si svoje vedomosti z kapitol o Kotlin Multiplatform a Jetpack Compose. Klikni na Áno alebo Nie - tlačidlo sa hneď zafarbí (zelená = správne, červená = nesprávne) a zobrazí sa komentár s vysvetlením. Otázky prechádzaš po jednej pomocou tlačidiel nižšie.
Otázka 1 / 13
Kotlin Multiplatform (KMP) umožňuje zdieľať Kotlin kód medzi rôznymi platformami - napríklad Android, iOS, desktop a web.
Áno. Cieľom KMP je napísať spoločnú logiku raz a znovupoužiť ju na viacerých platformách.
KMP je framework na tvorbu používateľského rozhrania (UI), podobne ako Jetpack Compose.
Nie. KMP nie je framework na UI - je to spôsob zdieľania kódu. UI sa aj tak píše špecificky pre danú platformu (napr. pomocou Compose alebo SwiftUI).
Zdieľaný kód medzi platformami sa v KMP projekte nachádza v adresári src/commonMain/kotlin/.
Áno. Platformovo špecifický kód sa naopak nachádza v adresároch ako jvmMain alebo iosMain.
Kód umiestnený v jvmMain je automaticky dostupný aj v iosMain časti projektu.
Nie. Kód v platformovo špecifických adresároch (napr. jvmMain) je dostupný len na danej platforme, nie naprieč všetkými.
Jetpack Compose je deklaratívny framework pre tvorbu UI, pôvodne navrhnutý pre Android.
Áno. Vďaka Compose Multiplatform ho vieme použiť aj na desktope, čo je aj náš prípad v tomto kurze.
Funkcia označená anotáciou @Composable definuje časť UI, ktorú Compose vie vykresliť a znovupoužiť.
Áno. Napríklad @Composable fun App() { ... } je základná composable funkcia celej aplikácie.
remember { mutableStateOf(...) } vytvorí reaktívny stav, ktorého zmena spôsobí automatické prekreslenie závislej časti UI.
Áno. Tento proces sa nazýva rekompozícia - Compose automaticky prekreslí len tie časti UI, ktoré na danom stave závisia.
mutableStateOf(0) bez použitia remember si zachová svoju hodnotu aj po rekompozícii.
Nie. Bez remember by sa stav pri každej rekompozícii vytvoril nanovo a stratil by predchádzajúcu hodnotu.
Funkcia application { Window(...) { ... } } je vstupný bod Compose Desktop aplikácie.
Áno. Vo vnútri Window potom voláme našu vlastnú composable funkciu, napríklad App().
Parameter onCloseRequest = ::exitApplication zabezpečí, že sa aplikácia ukončí po zatvorení okna.
Áno. Bez tohto nastavenia by aplikácia po zatvorení okna nemusela byť korektne ukončená.
Do build.gradle.kts Compose Desktop projektu netreba pridávať žiadne špeciálne pluginy - stačí bežný Kotlin JVM plugin.
Nie. Treba pridať aj id("org.jetbrains.compose") a id("org.jetbrains.kotlin.plugin.compose"), spolu so závislosťou compose.desktop.currentOs.
Pri vytváraní nového KMP projektu v IntelliJ Idea vieme priamo zvoliť, pre ktoré cieľové platformy (napr. desktop) sa má projekt vygenerovať.
Áno. Sprievodca vytvorením projektu (File → New → Project → Kotlin Multiplatform) umožňuje vybrať cieľové platformy.
Príklad počítadla, kde tlačidlo pri kliknutí zvýši hodnotu stavu a text sa automaticky aktualizuje, demonštruje princíp rekompozície.
Áno. Zmena stavu (count++) automaticky spustí rekompozíciu a Compose prekreslí Text, ktorý na danom stave závisí.
Tvoje skóre je 0 / 13