Kompoz0.1.1 English
Başlarken

Kompoz belgeleri

Kompoz, C++20 için Jetpack Compose tarzında deklaratif bir arayüz kütüphanesidir; Material 3 bileşenleriyle gelir ve tek kod tabanından Linux, Windows, Android ve web'de çalışır.

Compose'u biliyorsanız Kompoz'u da biliyorsunuz: aynı düşünme biçimi (composable fonksiyonlar, durum, recomposition, modifier'lar), C++'ın izin verdiği yerde aynı isimler ve Compose'unkiler gibi görünen ve davranan Material 3 bileşenleri. Sürüm 0.1.1, Apache Lisansı 2.0 ile lisanslıdır.

Vitrinin ana ekranı
void Counter() {
auto count = remember([] { return mutableStateOf(0); });

Column(Modifier().padding(16), {.verticalArrangement = Arrangement::spacedBy(8)}, [&] {
Text("Count: " + std::to_string(count.get()), {.font = typography().titleLarge});
Button([count] { count.set(count.get() + 1); }, [] { Text("Add"); });
});
}

Application kompoz::createApplication(int, char**) {
return {.title = "Demo", .content = [] { MaterialTheme(lightColorScheme(), Counter); }};
}

Başlarken

  • Kurulum: Kompoz'u derleyin, kendi CMake projenize ekleyin ve her platformda çalıştırın.
  • Eğitim: tek satır metinden bir Material listesine, ilk uygulamayı adım adım kurun.
  • Compose'dan gelenler için: Kotlin'deki Compose'un C++'a nasıl karşılık geldiği, bir bakışta.

Temeller

  • Kompoz'da düşünmek: deklaratif arayüz, composable fonksiyonlar ve recomposition.
  • Durum: gözlemlenebilir durum, remember, rememberSaveable, durumu yukarı taşıma ve durum tutucular.
  • Yaşam döngüsü ve kimlik: çağrıların bir compiler plugin olmadan nasıl tanındığı ve neyin onları atlattığı.
  • Yan etkiler: coroutine'ler, LaunchedEffect, DisposableEffect ve diğer efekt API'leri.
  • Aşamalar: kompozisyon, yerleşim ve çizim; her birini nasıl ucuz tutacağınız.
  • CompositionLocal: değerleri ağaçta aşağı aktarmak ve yerleşik local'ler.

Tasarım

  • Modifier'lar: composable'ları süslemek, sıranın neden önemli olduğu ve kendi modifier'ınızı yazmak.
  • Yerleşimler: Column, Row, Box, akan yerleşimler, FlexBox, Grid ve uyarlanabilir yerleşimler.
  • Özel yerleşimler: Layout, kısıtlar, intrinsic'ler ve SubcomposeLayout.
  • Listeler ve ızgaralar: tembel listeler ve ızgaralar, pager'lar, carousel'ler ve iç içe kaydırma.
  • Material bileşenleri: Material 3 bileşenlerinde bir tur.
  • Tema: renk şemaları, koyu tema, dinamik renk, tipografi ve tasarım sistemleri.
  • Metin: metne stil vermek, fontlar, seçim ve metin alanları.
  • Grafik: Canvas, fırçalar, path'ler, şekiller, gölgeler, resimler ve vektörler.
  • Animasyon: animasyonlu değerler, görünürlük, içerik, geçişler ve paylaşılan öğeler.
  • Hareketler ve girdi: tıklamalar, sürüklemeler, iki parmakla yakınlaştırma, klavye, odak ve sürükle-bırak.

Uygulama

  • Mimari: tek yönlü veri akışı, ViewModel'ler, flow'lar ve kaydedilen durum.
  • Gezinme: ekranlar, geri yığını, tür güvenli rotalar ve derin bağlantılar.
  • Kaynaklar: varlıklar (asset'ler), kütüphanenin sistem dilindeki metinleri ve platform servisleri.
  • Erişilebilirlik: semantik, ekran okuyucular, dokunma hedefleri ve klavye.
  • Test: sanal saatle, pencere açmadan arayüz testleri.
  • Araçlar: önizlemeler, kaydedince yeniden derleme, betikle ekran görüntüleri ve profil çıkarma.

Başvuru

  • API durumu: her Compose API'si ve Kompoz'daki durumu, ayrıca geliştirme günlüğü.
Geniş pencerede, gezinme rayıyla Bileşenler ekranı
Dinamik 1
Dinamik 1

Daha fazlasını görmek için

Kompoz, Apache Lisansı 2.0 ile lisanslıdır. Bu sitedeki kod örnekleri de onun parçasıdır.