Android Jetpack Nedir ve Android Studio'da Hızlıca Nasıl Başlanır
Jetpack, Google tarafından sunulan ve uygulamanın mimarisini, kullanıcı arayüzünü (UI), veri işlemlerini ve yaşam döngüsünü kolaylaştıran kütüphaneler ve araçlardan oluşan bir pakettir. Cevap: Başlamak için Android Studio'da (Kotlin) bir proje oluşturun, temel bağımlılıkları (Compose, Lifecycle/ViewModel, Room, Hilt) ekleyin, kapt'ı etkinleştirin ve Gradle'ı senkronize edin; ardından UI'ı Compose ile yazabilir ve verileri ViewModel/Room aracılığıyla yönetebilirsiniz.
Jetpack'e Neler Dahildir ve Neden Önemlidir
Jetpack gruplara ayrılmıştır: UI (Compose), mimari (ViewModel, LiveData, Paging), davranış (Navigation, WorkManager) ve Foundation (Room, Security, Test). Temel avantajlar şunlardır:
- Daha az boilerplate kod — odak noktası iş mantığıdır.
- Farklı Android sürümleriyle uyumluluk.
- Kotlin (korutinler, Flow) ve Android Studio ile entegrasyon.
2026 yılında yeni projeler için temel yığın şudur: Compose (UI), Hilt (bağımlılık enjeksiyonu), Room (yerel veritabanı), Navigation Compose. Bu paketle başlayın; görevlerin %80'ini kapsar.
Yeni projeler için Compose + Hilt + ViewModel kombinasyonu hızlı ve ölçeklenebilir bir başlangıç sağlar.
Hızlı Başlangıç: Android Studio'da Jetpack Nasıl Eklenir
- Proje oluşturun: File → New → New Project → Empty Activity (Kotlin).
- module build.gradle.kts dosyasında eklentileri etkinleştirin:
plugins {
id("com.android.application")
kotlin("android")
kotlin("kapt")
id("dagger.hilt.android.plugin")
}
- Minimum bağımlılıkları ekleyin (versiyonları güncel olanlara göre güncelleyin):
// Compose
implementation("androidx.compose.ui:ui:1.6.4")
implementation("androidx.activity:activity-compose:1.9.0")
// ViewModel + Lifecycle
implementation("androidx.lifecycle:viewmodel-compose:2.8.3")
// Room
implementation("androidx.room:room-runtime:2.6.1")
kapt("androidx.room:room-compiler:2.6.1")
// Hilt
implementation("com.google.dagger:hilt-android:2.51")
kapt("com.google.dagger:hilt-compiler:2.51")
// Compose için Navigation
implementation("androidx.navigation:navigation-compose:2.8.0")
- Proje düzeyindeki build.gradle dosyasında depoları dahil edin: google(), mavenCentral().
- Hilt'i yapılandırın: Application sınıfına @HiltAndroidApp anotasyonunu ekleyin ve Gradle'a eklentiyi dahil edin.
- Activity içinde setContent { /* Compose UI */ } kullanın ve kompozisyonlarda hiltViewModel() çağırın.
Room ve Hilt için kotlin-kapt'ı unutmayın — kapt olmadan kod üretimi çalışmaz ve derleme başarısız olur.
Kısa Örnek: TODO Listesi (Özet, Tam Kod İçermez)
Entity:
@Entity
data class Task(@PrimaryKey val id: Int, val title: String, val done: Boolean)
DAO:
@Dao
interface TaskDao {
@Query("SELECT * FROM task")
fun getAll(): Flow<List<Task>>
}
Database:
@Database(entities = [Task::class], version = 1)
abstract class AppDatabase : RoomDatabase() { abstract fun taskDao(): TaskDao }
ViewModel (Hilt):
@HiltViewModel
class TaskViewModel @Inject constructor(private val dao: TaskDao): ViewModel() {
val tasks = dao.getAll().stateIn(viewModelScope, SharingStarted.Lazily, emptyList())
}
Compose UI:
@Composable
fun MainScreen(vm: TaskViewModel = hiltViewModel()) {
val tasks by vm.tasks.collectAsState()
LazyColumn { items(tasks) { Text(it.title) } }
}
Çalıştırma işlemi veritabanından bir liste gösterir; ardından navigasyon ve sayfalama eklenebilir.
En İyi Uygulamalar ve XML'den Geçiş
- Mimari: MVVM + repository'ler; ViewModel UI durumunu tutar, Repository verileri yönetir.
- Migrasyon: Aşamalı geçiş için Compose Interop (AndroidView) kullanın.
- Test: UI için JUnit + ComposeTestRule; ViewModel ve DAO'yu ayrı ayrı test edin.
- Performans: Profil oluşturun, yeniden kompozisyonu (recomposition) izleyin; Lazy listeler ve görüntü optimizasyonları kullanın.
- Platformlar arasında mantık yeniden kullanımı gerekiyorsa çok platformlu Compose'a geçişi planlayın.
Bağımlılıkları güncel tutun: sürüm notlarını kontrol edin ve kütüphane versiyonlarını güncelleyin.
Sık Yapılan Hatalar
- kapt unutulması — kod üretimi başarısız olur.
- Compose ve activity-compose versiyonlarının uyuşmaması — derleme çakışması.
- UI thread'inde engelleyici işlemler kullanılması (korutinler/Flow gerekir).
- İş mantığının Repository/ViewModel yerine View/Activity içinde tutulması.
SSS
- Hilt'i nasıl hızlıca eklerim? — Eklentiyi ve bağımlılıkları ekleyin, Application sınıfını @HiltAndroidApp olarak anotasyonlayın.
- Compose'a hemen geçmek gerekir mi? — Parça parça geçiş yapabilirsiniz; Compose Interop XML ve Compose'u bir arada kullanmanıza yardımcı olur.
- Verileri çevrimdışı nasıl saklarım? — Room + Flow/Korutinler + Repository.
- Jetpack güncellemelerini nerede takip edebilirim? — AndroidX kütüphanelerinin sürüm notlarında ve Google duyurularında; bağımlılık versiyonlarını takip edin.
Gerekirse, bu bileşenleri ve Gradle dosyalarını içeren hazır çalışan bir proje hazırlayabilirim.