Nasıl Başlanır: Temel Kavramlar, Araçlar ve Basit Bir Proje
Kısaca: Android Studio'yu (JDK ve SDK ile birlikte) kurun, Kotlin ile Jetpack Compose kullanan bir proje oluşturun ve basit bir Activity çalıştırın; bu size öğrenme ve ileride genişletme için çalışan bir temel sağlayacaktır.
Temel Kavramlar ve Önerilen Mimari
Android uygulaması bileşenlerden oluşur: Activity (ekran), Service (arka plan), BroadcastReceiver (olaylar), ContentProvider (veri alışverişi). Yaşam döngüsü yönetimi ve gezinme Intents ve Jetpack kütüphaneleri aracılığıyla gerçekleştirilir.
Mimari önerileri:
- UI ve mantığı ayırın: UI sadece görüntüleme içindir; mantık ve veri erişimi ViewModel/Repository katmanında olmalıdır.
- Single Source of Truth (Tek Gerçek Kaynak) ve tek yönlü veri akışı (StateFlow/LiveData) kullanın.
- Jetpack'i kullanın: ViewModel, Lifecycle, Room, Navigation, Hilt; bunlar test edilebilirliği artırır ve yapılandırma değişikliklerine karşı dayanıklılığı sağlar.
MVVM + katmanlı proje yapısı (ui/domain/data) ile başlayın; bu ölçeklendirmeyi kolaylaştıracaktır.
Araçlar ve Kurulum — Şu An Tam Olarak Neye İhtiyacınız Var
Başlangıç için minimum gereksinimler:
- Android Studio (son stabil sürüm) — SDK, AVD ve Gradle içerir.
- JDK (genellikle Android Studio ile birlikte gelir).
- Versiyon kontrolü için Git.
- USB hata ayıklaması açık olan bir cihaz veya AVD (emülatör).
Kurulum için pratik ipuçları:
- SDK Manager üzerinden API platformlarını kurun (uyumluluk için API 26+ önerilir).
- Düşük donanımlı bir PC kullanıyorsanız, emülatör yerine fiziksel bir cihaz kullanın veya kaynakları azaltılmış bir AVD imajı seçin.
- En baştan itibaren kod formatlama (ktlint) ve statik analiz (detekt) araçlarını yapılandırın.
İlk Proje: Kotlin + Jetpack Compose ile Hello World (Adımlar ve Kod)
Adımlar:
- Android Studio'yu başlatın → "New Project" → Compose içeren şablonu seçin (veya Empty Activity seçip Compose'u etkinleştirin).
- Dil olarak Kotlin'i seçin; minimum API 21+; Gradle senkronizasyonunun tamamlanmasını bekleyin.
- Bir AVD oluşturun/başlatın veya bir cihaz bağlayın ve Run butonuna basın.
Compose ile en basit MainActivity örneği:
package com.example.hellocompose
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.material3.*
import androidx.compose.runtime.Composable
import androidx.compose.ui.tooling.preview.Preview
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent { HelloComposeApp() }
}
}
@Composable
fun HelloComposeApp() {
MaterialTheme {
Surface {
Text("Hello, Android!", style = MaterialTheme.typography.titleLarge)
}
}
}
@Preview(showBackground = true)
@Composable
fun PreviewHello() = HelloComposeApp()
Derleme sonrası uygulama emülatörde veya cihazda çalışacaktır. Her şey düzgün çalışıyorsa, ViewModel, gezinme ve ağ istekleri eklemeye hazırsınız demektir.
Faydalı Pratikler ve Tuzaklardan Kaçınma Yolları
- Durum yönetimini (state) Activity/Compose içinde değil, ViewModel'de tutun.
- Asenkron işlemler için Kotlin Coroutines + Flow/StateFlow kullanın.
- DI (Hilt) ve katman ayrımını ilk commitlerden itibaren yapılandırın.
- Kontrolleri otomatikleştirin: linterlar, ViewModel için unit testler, Compose için UI testleri.
Keystore dosyasını (imzalama anahtarları) kaybetmeyin. Play App Signing etkinleştirilmediyse, kaybedilen anahtar paket adını değiştirmeden güncelleme yayınlamayı imkansız hale getirir.
Sık Yapılan Hatalar
- İş mantığının UI içinde tutulması.
- Yaşam döngüsü yönetiminin ihmal edilmesi (coroutine'ler yoluyla bellek sızıntıları).
- Sadece tek bir cihaz/emülatör üzerinde test yapılması.
- ProGuard/R8 yapılandırmasının zamanında yapılmaması; bu durum release derlemesini bozabilir.
SSS
- Nereden başlamalı: Android Studio'yu kurun ve Kotlin ile Compose kullanan bir proje oluşturun.
- UI nasıl seçilmeli: Yeni projeler için Jetpack Compose; eski kod desteği için XML/Views.
- Git gerekli mi: Evet, hemen bir depo oluşturun ve Android için .gitignore dosyası ekleyin.
İsterseniz şunları yapabilirim: Windows/macOS/Linux için kurulum kontrol listesi hazırlamak; Compose + MVVM + Room + Hilt kullanan bir To-Do şablonu oluşturmak; veya egzersizlerle birlikte 6 haftalık bir öğrenme planı hazırlamak. Hangisini tercih edersiniz?