# Claude Code ile Kotlin ve Android geliştirme rehberi

Adres: https://agentvera.dev/blog/claude-code-ile-kotlin/ · Yayın: 2026-11-01

Kotlin ve Android projelerinde Claude Code ile Compose, Gradle, ViewModel, coroutines, JUnit ve Espresso kullanırken kurulum, çalışma döngüsü ve test ipuçları.

**Kısaca:**

- Claude Code, Kotlin ve Android projelerinde CLAUDE.md ile yapılandırıldığında Gradle, Compose ve test komutlarını doğru bağlamda kullanır.
- Küçük adımlarla kod üretip JUnit ve Espresso çalıştırarak doğrulamak, ajanın hata oranını belirgin şekilde düşürür.
- AgentVera ile birden fazla Claude Code ajanı ayrı git worktree’lerde paralel çalışarak çakışmadan iş paylaşabilir.

Claude Code’u Kotlin ve Android projesinde terminalde `claude` komutuyla başlatabilirsiniz; ajan, CLAUDE.md dosyanızdaki Gradle ve test komutlarını okuyarak kod üretir, düzenler ve doğrular. Bu rehberde Compose, ViewModel, coroutines, JUnit ve Espresso ağırlıklı bir projede ajanı verimli kullanmanın pratik yollarını anlatıyorum. Daha fazla başlangıç bilgisi için [Claude Code](/ajanlar/claude-code/) sayfasına bakabilirsiniz.

## Neden Claude Code Kotlin ve Android işlerine uygun?
Claude Code, proje dosyalarını doğrudan okuyup değiştirebildiği için Kotlin kaynak dosyalarında refactor, yeni composable ekleme ve test yazma gibi işleri hızlı yapar. Android projelerinde Gradle bağımlılıkları, modül yapısı ve Compose’un deklaratif yapısı hakkında bağlamı CLAUDE.md ve mevcut kod üzerinden kurar. Özellikle ViewModel ve coroutines gibi tekrar eden desenlerde doğru şablonları üretir; hata durumunda test çıktısını okuyup düzeltme önerir. Yine de ajanın önerdiği her şeyi gözden geçirmek gerekir; Kotlin null-safety ve Compose recomposition konularında yanlış varsayımlar yapabilir.

## Projeyi ajan için hazırlama: CLAUDE.md
Kök dizinde CLAUDE.md oluşturun; ajan her turda bu dosyayı okur ve komutları, modül yapısını, kod kurallarını bağlam olarak kullanır. Aşağıdaki örnek, bir Compose tabanlı Android projesi için yeterli başlangıçtır:

```markdown
# CLAUDE.md

## Proje yapısı
- `app/` ana Android modülü; `feature/` altında ekranlar.
- `core/` ortak modüller: network, database, model.
- UI: Jetpack Compose + Material 3; mimari: MVVM + Repository.

## Sık kullanılan komutlar
- Derle: `./gradlew :app:assembleDebug`
- Birim test: `./gradlew :app:testDebugUnitTest`
- Tek test: `./gradlew :app:testDebugUnitTest --tests 'com.example.MyViewModelTest'`
- Lint: `./gradlew :app:lintDebug`
- UI testi: `./gradlew :app:connectedDebugAndroidTest`

## Kod kuralları
- Kotlin: null-safety kullan; `!!` kullanma; data class'lar immutable olsun.
- Compose: state hoisting uygula; `rememberSaveable` gereken yerde `remember` kullanma.
- ViewModel: `AndroidViewModel` yerine `ViewModel`; state `StateFlow` ile tut.
- Coroutines: `viewModelScope` ve `Dispatchers.IO`; `GlobalScope` kullanma.
- Test: JUnit4, kotlinx-coroutines-test, Compose test rule; Espresso için idling resource ekle.
- Yeni bağımlılık eklemeden önce version catalog dosyasını kontrol et.
```

Bu dosyayı hazırlarken modül adlarını ve Gradle görevlerini gerçek projeye göre güncelleyin. Version catalog dosyasının yolu (genellikle `gradle/libs.versions.toml`) ve `minSdk`/`targetSdk` değerleri de kritik bağlamdır; ajan API seviyesi farklarını bilmeden `java.time` gibi sınıfları önerebilir. `local.properties` dosyasını asla CLAUDE.md’e eklemeyin; SDK yolu gibi makineye özel bilgiler bağlam kirletir.

## Çalışma döngüsü ve örnek istekler
Claude Code ile çalışırken şu döngüyü izleyin: önce isteği dosya ve davranış düzeyinde netleştirin; ajanın plan önermesini isteyin, sonra küçük değişiklikleri uygulatıp test ve lint çalıştırın; en son diff’i inceleyin. Plan adımı için [Claude Code plan modu: önce planla, sonra yaptır](/blog/claude-code-plan-modu/) sayfasındaki yaklaşımı kullanabilirsiniz; genel kontrol listesi de [Claude Code en iyi pratikler: uygulamalı kontrol listesi](/blog/claude-code-en-iyi-pratikler/) makalesinde var. Tipik Kotlin ve Android görevleri için şu istekleri deneyebilirsiniz:
- LoginViewModel’deki `login()` fonksiyonunu StateFlow ile yeniden yaz; hata durumunu sealed class ile temsil et, mevcut testleri güncelle.
- ProfileScreen’de avatar yükleme composable’ını Coil kullanacak şekilde güncelle; importları ve gerekli bağımlılığı version catalog’a ekle.
- Room entity’sine `updatedAt` alanı ekle; migration yaz; DAO ve repository testlerini güncelle.
- Onboarding akışı için Espresso testi yaz; ActivityScenarioRule kullan, RecyclerViewActions ile kaydırmayı doğrula.
- Bu modüldeki `mutableStateOf` kullanımlarını bul; ViewModel içinde olanları StateFlow veya SharedFlow ile değiştir, Compose tarafında collectAsStateWithLifecycle kullan.

Her istekten sonra sadece ilgili testi çalıştırın; birim test `./gradlew :app:testDebugUnitTest --tests 'com.example.LoginViewModelTest'` gibi hedefli olursa döngü hızlanır. Ajanın yaptığı değişiklikleri gözden geçirirken `git diff` kullanmayı alışkanlık haline getirin; böylece istenmeyen importlar veya kaldırılan extension fonksiyonları yakalanır.

## Hangi işler iyi gider, nerelerde dikkatli olmalı?
Claude Code özellikle tekrar eden şablon işlerinde iyidir; ancak Compose recomposition, coroutine context ve Android API seviyeleri konusunda yanlış varsayımlar yapabilir. Aşağıdaki tablo tipik görevler için dikkat noktalarını özetler:

| Görev | Ajan için istek | Dikkat edilecek nokta |
|--------|-----------------|----------------------|
| Yeni Compose ekranı | Detay ekranını state hoisting ile oluştur | State sahipliği; process ölümünde rememberSaveable eksikliği |
| ViewModel dönüşümü | LiveData’yı StateFlow’a çevir | viewModelScope ve test dispatcher kurulumu |
| Gradle bağımlılığı | Coil’i version catalog’a ekle ve kullan | Sürüm çakışması; katalog dosyasını atlamak |
| UI testi | Şu akış için Compose testi yaz | Compose test rule senkronizasyonu; Espresso idling resource |
| Lint düzeltme | lintDebug çıktısındaki hataları düzelt | Suppress önerilerine kapılmak; API seviyesi kontrolleri |

Örneğin ajan, `remember` ile `rememberSaveable` arasındaki farkı göz ardı edebilir, ViewModel içinde `mutableStateOf` önerebilir veya ağ çağrısını ana thread üzerinde bırakabilir. Üretilen diff’i bu üç alan üzerinden hızlıca denetleyin. Ayrıca ajan bazen `!!` operatörünü kullanma kuralını ihlal edebilir; null-safety’yi `requireNotNull` veya erken return ile çözmek daha uygundur. Compose’da `derivedStateOf` ve `remember` kullanımı gereksiz recomposition’a yol açabilir; ajanın önerdiği yapıyı profiler ile doğrulamak gerekebilir.

## Test ve doğrulama
Ajanın ürettiği kodu kabul etmeden önce birim testleri ve lint’i çalıştırın: `./gradlew :app:testDebugUnitTest :app:lintDebug`. Cihaz veya emülatör varsa `./gradlew :app:connectedDebugAndroidTest` ile Espresso veya Compose UI testlerini çalıştırın. Ajan, test çıktısındaki hata satırlarını okuyup düzeltebilir; ancak siz de özellikle coroutine testlerinde `StandardTestDispatcher`/`UnconfinedTestDispatcher` seçimi ve Espresso’da idling resource eksiklerini kontrol edin. JUnit testlerinde `runTest` kullanımı, `viewModelScope` için `Dispatchers.setMain` gibi kurulumların doğru yapıldığından emin olun. ViewModel testlerinde `Turbine` ile StateFlow akışını doğrulamak, zamanlama hatalarını azaltır. Compose UI testlerinde test tag’lerini eklemeyi unutmayın; ajan `Modifier.testTag` eklemeyi önerebilir ama siz de ekranlarda eksik tag kalmadığını kontrol edin. Lint çıktısındaki `NewApi` uyarıları, ajanın hedeflediği API seviyesine göre yanlış kod ürettiğini gösterir; her uyarıyı inceleyin.

## Birden fazla ajanla paralel çalışma: AgentVera
Kotlin ve Android projelerinde birden çok Claude Code ajanını [AgentVera nasıl kullanılır: ilk proje, ajanlar ve ızgara](/blog/agentvera-nasil-kullanilir/) üzerinden ayrı git worktree’lerde çalıştırabilirsiniz; böylece biri Compose UI üzerinde çalışırken diğeri repository veya testleri değiştirebilir, dosya çakışması olmaz. Aynı dosyayı düzenleme riskini ortadan kaldırmak için her ajan kendi worktree’sinde ilerler ve değişiklikler daha sonra birleştirilir. Her tur sonunda otomatik kod incelemesi, yanlış `mutableStateOf` kullanımı veya eksik coroutine iptali gibi Android’e özgü hataları yakalayabilir. Checkpoint’ler sayesinde riskli bir refactor’u tek tıkla geri alabilirsiniz; token bütçeleri de ajanların maliyetini sınırlar.

## Sonuç
Claude Code, CLAUDE.md ile doğru yapılandırıldığında Kotlin ve Android projelerinde günlük işleri hızlandırır. Test döngüsünü aksatmadan küçük adımlarla ilerlemek ve üretilen diff’i Compose ve coroutines açısından gözden geçirmek yeterli. Birden çok işi paralelleştirmek isterseniz AgentVera worktree’lerle güvenli bir zemin sunar.

## Sık sorulanlar

**Claude Code Kotlin ve Android projesinde nasıl kullanılır?** Proje klasöründe terminalde claude komutunu çalıştırın. Kök dizindeki CLAUDE.md dosyasına Gradle build, test ve lint komutlarını yazın; ajan bu bağlamı kullanarak Kotlin dosyalarını düzenler ve test çıktılarına göre düzeltme yapar.

**Claude Code için CLAUDE.md dosyasına neler yazmalıyım?** Modül yapısını, sık kullanılan Gradle komutlarını, kod kurallarını ve test yaklaşımını yazın. Özellikle Compose state yönetimi, coroutine dispatcher kuralları ve JUnit/Espresso komutları ajanın doğru kod üretmesine yardımcı olur.

**Claude Code Android testlerini çalıştırabilir mi?** Evet, ./gradlew :app:testDebugUnitTest, connectedDebugAndroidTest ve lintDebug gibi komutları çalıştırabilir. Test çıktısındaki hataları okuyup ilgili Kotlin dosyalarında düzeltebilir.

**Birden fazla Claude Code ajanını aynı Android projesinde nasıl paralel çalıştırırım?** AgentVera ile her ajanı ayrı bir git worktree içinde çalıştırarak dosya çakışmalarını önleyebilirsiniz. Otomatik kod incelemesi ve checkpoint özellikleri, paralel çalışmada riski azaltır.

---

**AgentVera hakkında.** AgentVera, Solviera Teknoloji tarafından geliştirilen macOS, Windows ve Linux masaüstü uygulamasıdır. 18 yapay zeka kodlama ajanını (Claude Code, Codex, Gemini CLI, Copilot, Cursor, Antigravity, opencode, Hermes, Qwen Code, Kimi Code, Kiro, Amp, Droid, Goose, Vibe, Crush, Aider, Cline) proje bazında, gerçek terminallerde ve kullanıcının kendi CLI kurulum ve girişleriyle yan yana çalıştırır. Ücretsiz planda sınırsız ajan vardır. İndir: https://agentvera.dev/indir/ · Fiyatlar: https://agentvera.dev/fiyatlar/
