CodeBlanks Logo Icon CodeBlanks

Compose

Compose Multiplatform ile UI yazarsın.

Compose ile UI

Dördüncü ders, Compose Multiplatform UI katmanını temsil eder. Bir @Composable fonksiyon veriyi ekrana çizer.

Modelimizde noteView fonksiyonu bir Note alır ve başlığını dize olarak döndürür. Gerçek Compose bu dizeyi bir Text bileşenine verir; biz konsola yazdırarak modelliyoruz. noteView(b.build()) çağrısı builder çıktısını UI'ya bağlar. Bu, veri katmanı ile UI arasındaki köprüdür.

noteView ve builder köprüsü

noteView fonksiyonu, builder çıktısını UI'ya taşır. noteView(b.build()) çağrısı veri ile UI arasında köprü kurar.

Örnek model: fun noteView(note: Note): String = note.title. main'de val b = NoteBuilder(); b.title = "Compose"; println(noteView(b.build())) yazılır. Bu, gerçek Compose'da bir Text bileşenine denk düşer. Veri akışı tek yönlüdür: builder üretir, noteView çizer.

Uygulama noteView fonksiyonunu ekle

fun noteView(note: Note): String = note.title tanımla. main içinde val b = NoteBuilder(); b.title = "Compose" yapıp println(noteView(b.build())) yaz.

Başlangıç kodu

Main.kt
object App {
    fun run(): String = "Expert Notes"
}

data class Note(val id: Int, val title: String)

annotation class AutoBuilder

class NoteBuilder {
    var id = 0
    var title = ""
    fun build(): Note = Note(id, title)
}

// noteView fonksiyonunu ekle (note: Note) -> String

fun main() {
    // NoteBuilder ile Note oluştur, noteView ile göster ve yazdır
}

Örnek çözüm

Main.kt
object App {
    fun run(): String = "Expert Notes"
}

data class Note(val id: Int, val title: String)

annotation class AutoBuilder

class NoteBuilder {
    var id = 0
    var title = ""
    fun build(): Note = Note(id, title)
}

fun noteView(note: Note): String = note.title

fun main() {
    val b = NoteBuilder()
    b.title = "Compose"
    println(noteView(b.build()))
}

Beklenen çıktı

Compose

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 noteView bildirimini tamamla

Soru
@Composable fun NoteView(note: ____): String { return note.title }
Cevap
@Composable fun NoteView(note: Note): String { return note.title }

Açıklama: noteView(note: Note) bir Note alır ve başlık döndürür.

2 Compose parçalarını eşle

Kavram Anlamı
noteView UI fonksiyonu
b.build() Veri kaynağı
note.title Görüntülenen metin
Text Gerçek bileşen

3 Compose MP hangi paradigma ile UI kurar?

Main.kt
Compose builds UI with declarations.
  • Emirli (imperative)
  • XML layout
  • Prosedürel
  • Deklaratif Doğru cevap

Açıklama: Compose deklaratif paradigma ile UI kurar.

Uzman bölümündeki tüm dersler