Jetpack Compose Nedir? Deklaratif Arayüze Giriş
Güncellendi: 18 Ağustos 2026 · Okuma: 7 dakika
Jetpack Compose, Android arayüzlerini XML layout dosyaları yerine doğrudan Kotlin koduyla oluşturmayı sağlayan modern UI araç setidir. Arayüzün veriye göre nasıl görüneceğini tarif edersiniz; veri değiştiğinde Compose ekranı otomatik olarak günceller.
Başlangıç–Orta
Android (native arayüz)
1. Jetpack Compose nedir?
Compose, @Composable olarak işaretlenen Kotlin fonksiyonlarıyla arayüz bileşenleri tanımlamanızı sağlar. Ayrı bir XML dosyası açıp findViewById ile görünümlere erişmek yerine, arayüz ve onu besleyen mantık aynı dosyada, yan yana durur.
2. Ne işe yarar, ne tür uygulamalarda kullanılır?
Compose, Android'de gördüğünüz her arayüzü yapabilir: liste ekranları, formlar, alt menüler, animasyonlar, grafikler. Özellikle şu durumlarda çok fark yaratır:
- Sık değişen ekranlar: e-ticarette sepet tutarı, sosyal medyada beğeni sayısı gibi anlık güncellenen veriler.
- Liste ağırlıklı uygulamalar:
LazyColumnile binlerce satırlık listeler performanslı şekilde çizilir. - Animasyonlu arayüzler: Compose'un animasyon API'si, XML dönemine göre belirgin şekilde daha az kod ister.
- Tema desteği: Karanlık/aydınlık tema ve dinamik renk desteği doğrudan sisteme entegredir.
3. Deklaratif yaklaşım ne demek?
Eski (imperative) yöntemde arayüzü elle güncellersiniz: textView.setText("5"). Veri birden fazla yerde değişirse ekranı güncellemeyi unutmak kolaydır — hataların önemli bir kısmı buradan çıkar.
Deklaratif yaklaşımda ise "veri şu olduğunda ekran şöyle görünsün" dersiniz. Veri değiştiğinde Compose, ekranın hangi parçasının yeniden çizileceğine kendisi karar verir. Böylece arayüz ile veri asla birbirinden kopmaz.
4. State (durum) yönetimi
remember ve mutableStateOf ile tanımlanan bir değer değiştiğinde, o değeri kullanan composable fonksiyonlar otomatik olarak yeniden çalışır (recomposition). Manuel görünüm güncellemesi ihtiyacı ortadan kalkar.
5. Çalışan bir örnek
@Composable
fun SepetOzeti(urunler: List<Urun>) {
var kuponUygulandi by remember { mutableStateOf(false) }
val toplam = urunler.sumOf { it.fiyat }
val indirimli = if (kuponUygulandi) toplam * 0.9 else toplam
Column {
Text("Toplam: $indirimli TL")
Button(onClick = { kuponUygulandi = true }) {
Text("Kuponu uygula")
}
}
}Butona basıldığı anda kuponUygulandi değişir ve Text kendiliğinden yeni tutarı gösterir — arada tek satır güncelleme kodu yoktur.
6. Nasıl başlanır?
- Önce Kotlin temellerini öğrenin — Compose tamamen Kotlin üzerine kuruludur.
- Android Studio'da "Empty Compose Activity" şablonuyla yeni proje açın.
- Temel bileşenlerle oynayın:
Text,Button,Column,Row,LazyColumn. @Previewile arayüzü uygulamayı çalıştırmadan Android Studio içinde canlı görün — geliştirme hızınızı en çok artıran özellik budur.- State yönetimini ve ekranlar arası geçişi (Navigation) öğrenin.