Android Studio'da Jetpack Compose ile Hızlı Başlangıç

Kerem Aydın·10 Temmuz 2026·⏱2 dk

Jetpack Compose — Android için deklaratif bir UI toolkit'idir. Kısaca: Android Studio'yu en son kararlı sürüme güncelleyin, JDK 17+ kurun, Kotlin 1.8+ kullanın, buildFeatures.compose özelliğini etkinleştirin, Compose BOM ve kotlinCompilerExtensionVersion ekleyin, ardından Empty Compose Activity oluşturun — ekran hemen görünecektir.

Gereksinimler ve Hazırlık

  • Android Studio: Hedgehog (2023.1.1) veya daha yeni; tercihen en güncel kararlı sürüm.
  • JDK 17+.
  • Kotlin 1.8+ (Compose derleyici sürümü ile bağlantılı).
  • Minimum SDK API 21+, mümkünse birkaç farklı API üzerinde test edilmesi önerilir.
  • SDK Manager'dan gerekli API'ler için platformları ve emülatör imajlarını indirin.

Bağımlılık sürümlerini yönetmek için Compose BOM (platform) kullanın ve kotlinCompilerExtensionVersion sürümünü takip edin — Kotlin sürümüyle eşleşmelidir.

Proje Kurulumu ve Yapılandırma

  1. Proje oluşturun: File > New > New Project > Empty Compose Activity.
  2. module build.gradle.kts dosyasında Compose'u etkinleştirin ve BOM üzerinden bağımlılıkları ekleyin:
android {
    compileSdk = 34
    buildFeatures {
        compose = true
    }
    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.8" // güncelliğini kontrol edin
    }
    kotlinOptions {
        jvmTarget = "17"
    }
}

dependencies {
    implementation(platform("androidx.compose:compose-bom:2024.06.00"))
    implementation("androidx.compose.ui:ui")
    implementation("androidx.compose.ui:ui-tooling-preview")
    implementation("androidx.compose.material3:material3")
    implementation("androidx.activity:activity-compose:1.9.2")
    debugImplementation("androidx.compose.ui:ui-tooling")
}
  1. Sync Now yapın ve Build > Make Project çalıştırın. Eski projeler için: aynı bağımlılıkları ekleyin ve Activity'de setContentView yerine setContent { … } kullanın.

İlk Ekran — Kod Örneği

MainActivity ve basit bir Composable için minimum çalışan örnek:

import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.foundation.layout.*
import androidx.compose.material3.*
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.dp

class MainActivity : ComponentActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContent { MyApp() }
    }
}

@Composable
fun MyApp() {
    MaterialTheme {
        Surface(modifier = Modifier.fillMaxSize(), color = MaterialTheme.colorScheme.background) {
            Greeting("Android")
        }
    }
}

@Composable
fun Greeting(name: String, modifier: Modifier = Modifier) {
    Column(
        modifier = modifier
            .fillMaxSize()
            .padding(16.dp),
        verticalArrangement = Arrangement.Center,
        horizontalAlignment = Alignment.CenterHorizontally
    ) {
        Text(text = "Hello, $name!", style = MaterialTheme.typography.headlineMedium)
        Spacer(modifier = Modifier.height(16.dp))
        Button(onClick = { /* işlem */ }) {
            Text("Düğme")
        }
    }
}

Emülatörde çalıştırın — ortalanmış metni ve düğmeyi göreceksiniz.

Sık Karşılaşılan Hatalar

  • Uyumsuz Kotlin / Compose Compiler kombinasyonu — derleme hatası. Çözüm: sürümleri senkronize edin (Kotlin ↔ compiler extension).
  • buildFeatures.compose = true eksik — proje derlenmez. android{} içine ekleyin.
  • Yanlış Material import'u (Material vs Material3) — bileşenler farklı görünür/davranır. Bağımlılıkları kontrol edin.
  • Composable gövdesinde State.value doğrudan çağrılıyor ve değiştiriliyor — sonsuz recompose olabilir. LaunchedEffect / rememberUpdatedState veya olay işleyicileri kullanın.
  • @Preview ekranı göstermiyor — plugin'in yüklü olduğundan emin olun ve Preview'da doğru Device/Api belirtildiğini kontrol edin veya Android Studio'yu yeniden başlatın.

Composable gövdesinde State.value değerini efekt (LaunchedEffect/SideEffect) olmadan asla doğrudan değiştirmeyin — bu genellikle sonsuz yeniden çizime yol açar.

SSS

  • Bir projede XML ve Compose karıştırılabilir mi? Evet. Compose parça parça entegre edilebilir: XML'e ComposeView ekleyin veya mevcut view'ların yanındaki Activity/Fragment'te setContent kullanın.

  • Geliştirme sırasında UI değişikliklerini hızlıca nasıl görebilirim? Yinelemeler için @Preview kullanın ve Android Studio'da Live Edit/Apply Changes özelliğinden yararlanın (varsa).

  • Eski ekranları Compose'a nasıl taşıyabilirim? Küçük bileşenlerle başlayın: tek tek widget'ları Composable'a dönüştürün, ardından Activity/Fragment setContent'i kademeli olarak değiştirin.

Gerekirse migration checklist'i veya navigation ve state management içeren minimum proje şablonunu gönderebilirim.