Kotlin Nedir?
JetBrains tarafından geliştirilen, Google'ın Android için resmi olarak desteklediği modern programlama dili (2017). Java'nın yerini alıyor. Kısa ve okunabilir söz dizimi, null safety ve güçlü fonksiyonel programlama özellikleri ile öne çıkar.
Jetpack Compose Nedir?
Google'ın 2021'de stable çıkardığı deklaratif UI toolkit. XML layout'ların modern alternatifi. Kotlin ile tamamen entegre çalışır ve daha az kod ile daha fazla iş yapmayı sağlar.
Kotlin Özellikleri
- Null safety: Nullable tipler (String? vs String) ile NullPointerException önleme
- Coroutines: Asenkron programlama için güçlü ve hafif yapılar
- Extension functions: Mevcut sınıflara fonksiyon ekleme imkânı
- Data classes: Otomatik equals/hashCode/toString/copy üretimi
- Sealed classes: Kısıtlı tip hiyerarşisi, when ifadesiyle güçlü eşleştirme
- Java interop: Java ile tam uyumlu, mevcut Java kodunu sorunsuz kullanabilme
- Scope functions: let, apply, run, with, also ile akıcı kod yazma
- Multiplatform: Kotlin Multiplatform ile iOS/Android/Web paylaşımlı kod
Jetpack Compose vs XML Views
| Özellik | Compose | XML |
|---|---|---|
| Paradigma | Deklaratif | İmperatif |
| Layout | Kotlin kodu | XML dosyası |
| Preview | @Preview anotasyonu | Layout Inspector |
| State | State, remember | ViewModel + LiveData |
| Olgunluk | 2021+ | 2008+ |
| Performans | İyi (sürekli optimize ediliyor) | İyi |
| Öğrenim eğrisi | Kotlin bilgisi yeterli | XML + Java/Kotlin |
Compose Temel Yapılar
- Composable: @Composable fonksiyonlar ile UI bileşeni oluşturma
- State: remember, mutableStateOf, collectAsState ile reaktif durum yönetimi
- Layout: Column, Row, Box, LazyColumn, LazyVerticalGrid
- Material3: MaterialTheme, TopAppBar, Card, BottomNavigation
- Navigation: NavHost, NavController ile sayfa geçişleri
- Modifier: Modifier.padding().fillMaxWidth().clickable() zincirleme stil
Jetpack Kütüphaneleri
| Kütüphane | Amaç |
|---|---|
| Room | SQLite veritabanı erişimi |
| Hilt | Dependency injection |
| WorkManager | Arka plan işleri yönetimi |
| DataStore | Key-value veri saklama |
| CameraX | Kamera API |
| Paging | Sayfalama (lazy loading) |
| Media3 | Medya oynatma |
Ne Zaman Native Kotlin?
- Maksimum Android performans gerektiğinde
- Google özel özellikler (Widgets, Auto, TV, Wear OS)
- Sadece Android hedeflendiğinde
- Büyük ekip, ayrı Android takımı olduğunda
- Donanım entegrasyonu yoğun uygulamalarda
2026 İtibariyle Güncel Durum
- Kotlin 2.x ile K2 compiler varsayılan olarak aktif, derleme süreleri kısaldı
- Jetpack Compose 1.7+ ile performans iyileştirmeleri ve yeni API'ler
- Kotlin Multiplatform (KMP) stabil hale geldi, iOS ile kod paylaşımı arttı
- Material 3 tam destek, adaptive layout desteği genişledi
Yeni Android projeleri için Kotlin + Compose standart. Java + XML artık legacy kabul ediliyor.