RestApi

Dáta sem, dáta tam.

Nástroje používateľa

Nástoje správy stránok


kotlin-jetpack-compose

Rozdiely

Tu môžete vidieť rozdiely medzi vybranou verziou a aktuálnou verziou danej stránky.

Odkaz na tento prehľad zmien

Obojstranná predošlá revíziaPredchádzajúca revízia
Nasledujúca revízia
Predchádzajúca revízia
kotlin-jetpack-compose [2025/08/13 13:46] – [Základné využitie - komponenty] attilajancikkotlin-jetpack-compose [2025/11/05 13:49] (aktuálne) – [Jetpack Compose] attilajancik
Riadok 1: Riadok 1:
 ====== Jetpack Compose ====== ====== Jetpack Compose ======
  
 +> Jetpack Compose je predurčený pre tvorbu UI na platforme Android.
 +> Využitie API Jetpack Compose pre Multiplatform popisuje článok: [[kotlin-compose-multiplatform|Compose Multiplatform]]
 ===== Úvod ===== ===== Úvod =====
  
 Jetpack Compose je nástroj z produkcie **Google**. Používa sa pre tvorbu UI (GUI). Zároveň nahrádza pôvodnu deklaráciu formulárov a komponentov pôvodným XML definičnými súbormi za **deklaratívne** progromavanie, teda všetko je v jednom súbore a pomôcka je online zobrazovanie pri programovaní pomocou anotácie ''@Preview''. Jetpack Compose je nástroj z produkcie **Google**. Používa sa pre tvorbu UI (GUI). Zároveň nahrádza pôvodnu deklaráciu formulárov a komponentov pôvodným XML definičnými súbormi za **deklaratívne** progromavanie, teda všetko je v jednom súbore a pomôcka je online zobrazovanie pri programovaní pomocou anotácie ''@Preview''.
  
-Komplexnosť komponentov ho predurčuje pre tvorbu **Multiplatform** aplikácií pre Android, iOS, desktop, web (export projektu do Xcode, JVM, JavaScript).+Postup tvorenia kódu je jednoduchý. Vzhľad používateľského rozhrania zobrazovaného na displeji sa postupne skladá z existujúcich, alebo vlastných komponentov. Vlastné komponenty taktiež prijímajú stavy a vysielajú udalosti pomocou Live dát, ktoré využívajú dátové modely. Coroutines následne umožňujú reťaziť zobrazenia a vstupy v krátkom kóde. 
 + 
 +> Komplexnosť komponentov ho predurčuje pre tvorbu [[kotlin-multiplatform|Multiplatform]] aplikácií pre Android, iOS, desktop, web (export projektu do Xcode, JVM, JavaScript).
  
 Príklad komponentov nástroja Jetpack Compose: tlačítka, textové polia a iné z Material Design 3. Príklad komponentov nástroja Jetpack Compose: tlačítka, textové polia a iné z Material Design 3.
Riadok 23: Riadok 27:
  
 ===== Základné využitie - komponenty ===== ===== Základné využitie - komponenty =====
 +
 +Základné štrukturovanie kompozície je prvkami:
 +  * Column, FlowColumn
 +  * Row, FlowRow
 +  * Box
 +
 +**Modifikátory** umožňujú nastaviť rozmery, zarovnanie, odsadenie, interakcie a iné...
  
 Kompletná škála komponentov je na [[https://developer.android.com/develop/ui/compose/components|developer.android]] Kompletná škála komponentov je na [[https://developer.android.com/develop/ui/compose/components|developer.android]]
Riadok 73: Riadok 84:
  
 === Iné komponenty === === Iné komponenty ===
-Kink na developers je pod nadpisom+Link na developers je hore pod nadpisom...  ↑
  
   * ''Icon()'' - obrázok   * ''Icon()'' - obrázok
-  * ''Box() {}'' - container pre iné komponenty +  * ''Box() {}'' - kontajner pre iné komponenty 
-  * ''LazyColumn() {}'' - container pre viditeľný zoznam položiek+  * ''Button() {}'' - tlačítko s kontajnerom 
 +  * ''TextButton() {}'' - tlačítko s kontajnerom 
 +  * ''LazyColumn() {}'' - kontajner pre viditeľný zoznam položiek
     * ''item {}'' - definicia položiek pre ''LazyColumn()''     * ''item {}'' - definicia položiek pre ''LazyColumn()''
   * ''OutlinedTextField()'' - orámovanie s menovkou   * ''OutlinedTextField()'' - orámovanie s menovkou
   * ''OutlinedButton(onclick = {...}, ...) {}'' - tlačítko s container pre TEXT() a iné   * ''OutlinedButton(onclick = {...}, ...) {}'' - tlačítko s container pre TEXT() a iné
-  * +  * ''Checkbox()'' - zaškrtnutie voľby 
 +  * ''Scaffold()'' - kontajner
  
 ==== Material Design ==== ==== Material Design ====
Riadok 180: Riadok 194:
 ==== Plugin ksp pre SQL anotácie ==== ==== Plugin ksp pre SQL anotácie ====
  
-Umožňuje používať anotácie pre metódy a vlastnosti SQL databáz. \\ +Umožňuje používať anotácie pre metódy a vlastnosti SQL databáz. 
-**Inštalácia**: aj napriek dostupným návodom s popisom manuálneho doplnenia buid súborov som testol možnosti správy modulov v projekte (AS) a funguje to spoľahlivejšie, nakoľko ponúka aktuálne knižnice, Teda zhruba tieto moduly treba nájsť a aplikovať: \\ + 
-- menu settings -> Project structure -> Dependencies -> app -> + : pridať com.google.devtools.**ksp**.gradle.plugin:1.5.30-1.0.0, potom ho v libs.versions.toml uktualizovať na -> "2.2.0-2.0.2" -> SyncNow \\ +=== Inštalácia === 
-- ďalej pridať: **androidx.room**.gradle.plugin:2.8.0-alpha01 \\ +aj napriek dostupným návodom s popisom manuálneho doplnenia buid súborov som testol možnosti správy modulov v projekte (AS) a funguje to spoľahlivo, nakoľko ponúka aktuálne knižnice, Teda zhruba tieto moduly treba nájsť a aplikovať: 
-taktiež sa v odporúča pridať: **androidx.room**.compiler , avšak build je funkčný aj bez neho. \\ +  * menu settings -> Project structure -> Dependencies -> app -> + : pridať com.google.devtools.**ksp**.gradle.plugin:1.5.30-1.0.0, potom ho v libs.versions.toml uktualizovať na -> "2.2.0-2.0.2" -> SyncNow 
-následne upraviť aj build.gradle.kts(:app) (verzia Java 17 je minimum):+  * ďalej pridať: **androidx.room**.gradle.plugin:2.8.0-alpha01 
 +  * taktiež sa v odporúča pridať: **androidx.room**.compiler 
 + 
 +ďalej upraviť: 
 + 
 +=== build.gradle.kts (prj) === 
 +verzia musí byť zhodná s verziou Kotlin (v libs.version.toml)
 <code kotlin> <code kotlin>
-compileOptions {+plugins { 
 +  ... 
 +  id("com.google.devtools.ksp") version "2.2.0-2.0.2" apply false 
 +} 
 +</code> 
 + 
 +=== build.gradle.kts (:app) === 
 +<code kotlin> 
 +plugins { 
 +  ... 
 +  id("com.google.devtools.ksp") 
 +} 
 + 
 +compileOptions {  // 17 is minimum
     sourceCompatibility = JavaVersion.VERSION_17     sourceCompatibility = JavaVersion.VERSION_17
     targetCompatibility = JavaVersion.VERSION_17     targetCompatibility = JavaVersion.VERSION_17
Riadok 193: Riadok 226:
 kotlinOptions { kotlinOptions {
     jvmTarget = "17"     jvmTarget = "17"
 +}
 +
 +dependencies {
 +  ...
 +  ksp(libs.androidx.room.compiler.v272)
 } }
 </code> </code>
 +
 následne až v kóde budú použité metódy Room, tak potvrdiť import: @Entity => import room.common => build.gradle.kts(:app) \\ následne až v kóde budú použité metódy Room, tak potvrdiť import: @Entity => import room.common => build.gradle.kts(:app) \\
 zárovaň sa upravuje automaticky aj blok dependencies {...} v build.gradle.kts(:app) a aj libs.versions.toml (kde občas treba potvriť vyššie verzie knižníc) zárovaň sa upravuje automaticky aj blok dependencies {...} v build.gradle.kts(:app) a aj libs.versions.toml (kde občas treba potvriť vyššie verzie knižníc)
Riadok 293: Riadok 332:
 Pre ich použitie je treba stiahnuť zip a vytvoriť v AS: app -> new Android Resource Directory : font/font a doňho nakopírovať vybrané zo stiahnutého zip-u. \\ Pre ich použitie je treba stiahnuť zip a vytvoriť v AS: app -> new Android Resource Directory : font/font a doňho nakopírovať vybrané zo stiahnutého zip-u. \\
 Samotná deklarácia tém je v ''ui/theme/Type.kt''. Samotná deklarácia tém je v ''ui/theme/Type.kt''.
- 
- 
  
  
 ---- ----
-> Na článku sa pracuje... 
  
----- 
 ====== Linky ====== ====== Linky ======
   * https://www.jetbrains.com/compose-multiplatform/     * https://www.jetbrains.com/compose-multiplatform/  
Riadok 307: Riadok 342:
   * https://www.jetbrains.com/help/kotlin-multiplatform-dev/get-started.html   * https://www.jetbrains.com/help/kotlin-multiplatform-dev/get-started.html
   * https://www.itnetwork.cz/kotlin/compose   * https://www.itnetwork.cz/kotlin/compose
 +  * developer.android.com - [[https://developer.android.com/courses/pathways/jetpack-compose-for-android-developers-1|video kurz]]
  
  
  
kotlin-jetpack-compose.1755085588.txt.gz · Posledná úprava: od attilajancik