Jetpack Compose'u Etkinleştirme ve İlk Ekranı Oluşturma Adımları
Android Studio'da Jetpack Compose'u app modülünde etkinleştirebilirsiniz: android { buildFeatures { compose = true } } içine kotlinCompilerExtensionVersion ekleyin, Compose bağımlılıklarını dahil edin ve Activity'yi ComponentActivity ile setContent { ... } kullanarak değiştirin — aşağıda adım adım kod ve ipuçlarıyla açıklanmıştır.
Projenin Hızlı Hazırlığı
- Yeni proje: File → New → New Project → Empty Compose Activity (varsa).
- Mevcut bir proje için modüler build.gradle(.kts) dosyasında değişiklik yapın:
Örnek build.gradle.kts (Module: app):
android {
compileSdk = 34
defaultConfig {
minSdk = 24
targetSdk = 34
}
buildFeatures {
compose = true
}
composeOptions {
kotlinCompilerExtensionVersion = "1.5.17"
}
}
dependencies {
implementation("androidx.core:core-ktx:1.11.0")
implementation("androidx.activity:activity-compose:1.9.2")
implementation("androidx.compose.ui:ui:1.7.0")
implementation("androidx.compose.ui:ui-tooling-preview:1.7.0")
implementation("androidx.compose.material3:material3:1.3.0")
// Gerekirse navigation-compose ekleyin
}
Kütüphanelerin kararlı çalışması ve daha hızlı derleme için minSdk ≥24 olarak ayarlayın. Değişikliklerden sonra Gradle'ı senkronize edin.
İlk Ekranı Oluşturma ve Çalıştırma (MainActivity ve Composable)
Activity'yi ComponentActivity ile değiştirin ve setContent kullanın. Basit, çalışan bir ö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.*
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 {
MaterialTheme {
Surface(
modifier = Modifier.fillMaxSize(),
color = MaterialTheme.colorScheme.background
) {
FirstScreen()
}
}
}
}
}
@Composable
fun FirstScreen() {
var count by remember { mutableStateOf(0) }
Column(
modifier = Modifier
.fillMaxSize()
.padding(16.dp),
verticalArrangement = Arrangement.Center,
horizontalAlignment = Alignment.CenterHorizontally
) {
Text("Merhaba, Jetpack Compose!", style = MaterialTheme.typography.headlineMedium)
Spacer(Modifier.height(16.dp))
Button(onClick = { count++ }) {
Text("Tıklama sayısı: $count")
}
}
}
Android Studio'da hızlı kontrol için önizleme ekleyin:
@Preview(showBackground = true)
@Composable
fun FirstScreenPreview() {
FirstScreen()
}
API 34+ emülatöründe veya gerçek bir cihazda çalıştırın — ekran anında çizilecektir.
Kontrol, Derleme ve Faydalı Uzantılar
- Önizleme: Design → Preview sekmesini açın; düzenleyici @Preview'i otomatik olarak gösterecektir.
- Hot Reload / Apply Changes: Tam derleme olmadan hızlı UI düzeltmeleri için kullanın.
- Navigasyon: Çok ekranlı uygulama için "androidx.navigation:navigation-compose:2.8.0" bağımlılığını ekleyin.
- Release derlemesi: Build → Build Bundle(s) / APK(s) → Build APK(s).
Compose Kotlin gerektirir. Proje Java'da ise modülü Kotlin'e dönüştürün veya yeni bir Kotlin modülü oluşturun; Compose Java'yı doğrudan desteklemez.
Yaygın Hatalar
- buildFeatures { compose = true } eklenmemiş — derleme bilinmeyen anotasyonlarla ilgili hatalarla başarısız olur.
- Yanlış kotlinCompilerExtensionVersion sürümü — Compose sürümleriyle uyumluluğu kontrol edin.
- @Composable içinde Android View'a özel API'lerin adaptasyon olmadan kullanılması — UI tepki vermez.
- Bağımlılıklarda activity-compose eksik — setContent erişilebilir değil.
SSS
- XML'i devre dışı bırakmak gerekir mi? Hayır — ComposeView veya AndroidView aracılığıyla Compose ve XML'i birleştirebilirsiniz, ancak yeni ekranlar için Compose tercih edilir.
- Durum nasıl hata ayıklanır? remember/rememberSaveable ve Layout Inspector araçlarını kullanın.
- Material 3 nasıl eklenir? Bağımlılıklara material3 ekleyin ve UI'yı MaterialTheme içine alın (örnekteki gibi).
Artık hazır, çalışan bir konfigürasyona ve minimal bir ekrana sahipsiniz. Durum, navigasyon ve animasyonlarla deney yapın — Compose arayüzleri hızla prototiplemenize ve iyileştirmenize olanak tanır.