Davet et, 1 ay ücretsiz Pro kazanNasıl çalışır?

opencode ile Kotlin ve Android Projelerinde Çalışma Rehberi

opencode ajanını Kotlin ve Android projelerinde verimli kullanmak için AGENTS.md kurulumu, Gradle ve Compose testleri, tuzaklar ve paralel ajan ipuçları.

Solviera Teknoloji 5 dk okuma

opencode, proje klasöründe opencode komutuyla başlatılan ve AGENTS.md dosyasındaki talimatları okuyan bir kodlama ajanıdır. Kotlin ve Android projelerinde Gradle, Jetpack Compose ve coroutine akışlarını anlaması için doğru bağlam verildiğinde, küçük ve test edilebilir değişiklikleri hızla uygular. Daha fazla ayrıntı için opencode sayfasına bakabilirsiniz.

opencode neden Kotlin ve Android işine uygun

opencode, aynı terminal oturumunda ./gradlew çıktısını okuyup hataları yorumlayabilir. Örneğin Unresolved reference veya Type mismatch hatalarında eksik import veya yanlış tür dönüşümünü tespit edip düzeltebilir. Compose dosyalarındaki @Composable fonksiyonları, State ve remember kullanımını ayırt eder; yan etki içeren kodu LaunchedEffect veya DisposableEffect içine almayı önerebilir. ViewModel içindeki MutableStateFlow yapısını sadeleştirip StateFlow olarak dışarı açmayı, repository katmanında Result döndürmeyi ve JUnit ile Espresso test iskeletlerini Kotlin DSL’e uygun şekilde yazmayı başarır. Ayrıca modern Gradle özelliklerini tanır: version catalog, Kotlin DSL ve KSP eklentileriyle ilgili değişiklikleri yapabilir. Terminal tabanlı olduğu için Android Studio’nun aksine headless CI ortamında veya uzak makinede de benzer döngüyü sürdürür. Yine de ajanın önerdiği her Gradle değişikliğini siz onaylamalısınız; çünkü build scriptlerindeki küçük bir hata tüm projeyi kilitleyebilir.

Projeyi ajana hazırlama ve AGENTS.md

Ajana en büyük faydayı sağlayan şey, proje köküne ekleyeceğiniz AGENTS.md dosyasıdır. opencode bu dosyayı her oturumda okur ve değişmez kurallar olarak uygular. Dosya kısa, komut odaklı ve Android’e özgü olmalıdır; genel yapay zeka tavsiyeleri değil, sizin projenizin gerçekleri yer almalıdır. opencode nasıl kullanılır rehberindeki adımlar da bu kurulum için iyi bir temel oluşturur.

# AGENTS.md

## Komutlar
- Derle: `./gradlew assembleDebug`
- Unit test: `./gradlew testDebugUnitTest`
- Lint: `./gradlew lintDebug`
- Enstrümantasyon testi: `./gradlew connectedDebugAndroidTest`

## Klasör düzeni
- `app/src/main/java/com/example/app` → UI ve ViewModel
- `app/src/test` → JUnit testleri
- `app/src/androidTest` → Espresso testleri
- `app/src/main/res` → Compose tema ve string kaynakları

## Kurallar
- Yeni ekranlar yalnızca Jetpack Compose ile yazılır; XML layout açma.
- ViewModel'ler `StateFlow` döndürür, `MutableStateFlow` yalnızca private kalır.
- Coroutine'leri `viewModelScope` ile başlat; `GlobalScope` kullanma.
- Veri katmanı arayüzleri repository olarak tasarla; test edilebilir olsun.
- Her değişiklikten sonra `./gradlew testDebugUnitTest lintDebug` çalıştır.

Bu kurallar, ajanın XML’e dönmesini, GlobalScope kullanmasını veya LiveData’ya geçmesini engeller. AGENTS.md dosyasına proje modül yapısını da ekleyin; örneğin :core:network, :feature:login gibi modül adlarını ve sorumluluklarını yazın. Flavor ve build type kullanıyorsanız ilgili productFlavors isimlerini ve hangi test türünün hangi variantta çalıştığını belirtin. Dosyayı projeyle birlikte sürümleyin ve ekiple birlikte güncel tutun; ajan her oturumda bu dosyayı referans alacağı için tutarlılık kritik önem taşır.

Çalışma döngüsü: planla, küçük adım at, test et, diff’i incele

Android projelerinde büyük bir refactor veya yeni ekran isteğini tek seferde istemek risklidir. Build süreleri uzun olduğu için her değişikliği ayrı ayrı test etmek gerekir. opencode ile verimli çalışma döngüsü şöyledir: önce istenen değişikliği küçük, test edilebilir parçalara bölün; her parçada ajanın dosyaları değiştirmesini isteyin; ardından ./gradlew testDebugUnitTest lintDebug çalıştırın; son olarak git diff çıktısını gözden geçirin. Ajan bir adımda hata yaparsa, hatayı geri alıp promptu daraltarak yeniden deneyin. Bu döngüyü her adımda tekrarlayın; böylece hatalar erken yakalanır ve geri dönüş maliyeti düşer.

Kotlin ve Android için tipik çalışma promptları şunlardır:

  • Compose ekranındaki LazyColumn’da her öğeye sabit key ekle ve tıklamayı onClick callback olarak yukarı taşı.
  • Ürün listesini getiren repository fonksiyonunu Result döndürecek şekilde değiştir; ViewModel’de stateIn kullan.
  • Bu ViewModel için JUnit testi yaz; ana dispatcher’ı StandardTestDispatcher ile değiştir.
  • Espresso testinde RecyclerView yerine Compose LazyColumn’daki metni doğrulayan bir assertion ekle.
  • Gradle bağımlılıklarını version catalog’a taşı; kullanılmayan implementation satırlarını temizle.

Her prompttan sonra test ve lint sonucunu isteyin; ajan başarısız olursa hatayı kendisine geri verin ve düzeltmesini isteyin. Daha karmaşık görevlerde, örneğin bir ekranın tamamını yazarken, promptu üç aşamaya bölün: önce state ve ViewModel, sonra UI composable’ları, en son da testler. Böylece her aşamada doğrulama yaparsınız ve ajan bağlam kaybetmez.

Tipik Kotlin ve Android görevleri ve dikkat edilmesi gerekenler

Aşağıdaki tablo, sık karşılaşılan görevler için iyi prompt örneklerini gösterir.

Görevİyi prompt
Compose state yönetimiBu ekranda remember { mutableStateOf(...) } ile tutulan state’i ViewModel’e taşı ve collectAsStateWithLifecycle kullan.
Coroutine hata yönetimiRepository’deki suspend fonksiyona try/catch ekle, hatayı Result olarak döndür ve ViewModel’de kullanıcıya mesaj göster.
ViewModel testiBu ViewModel için MainDispatcherRule kullanarak 3 test yaz; başarı, hata ve yüklenme durumlarını doğrula.
Espresso senkronizasyonuBu testte API yanıtını bekleyen IdlingResource ekle ve test kararlılığını sağla.
Gradle build hızıBuild scan çıktısına göre yapılandırma cache’i etkinleştir ve gradle.properties dosyasını düzenle.

Bu görevlerde ajan genellikle başarılıdır ancak şu noktalara dikkat edin. Compose state’i taşırken ajan bazen rememberSaveable yerine remember önerebilir; ekran döndürmede state kaybını önlemek için bunu kendiniz düzeltin. ViewModel’de stateIn kullanımında başlangıç değeri olarak SharingStarted.WhileSubscribed yerine Eagerly seçerse, testlerde farklı davranış gösterir. Espresso ile Compose testlerinde onNodeWithText yerine onView önerebilir; AGENTS.md’de Compose test kuralını netleştirin. Ajan, kullanılmayan kaynak dosyalarını silerken strings.xml içindeki değerleri de kaldırabilir; silmeden önce referans kontrolü isteyin. Ayrıca build.gradle.kts dosyalarında implementation ve api arasındaki farkı karıştırabilir; özellikle modül bağımlılıklarını değiştirirken diff’i satır satır inceleyin.

Kotlin ve Android test ve doğrulama

Ajan, unit testlerde ./gradlew testDebugUnitTest çıktısını yorumlayıp başarısız assertion’ları düzeltebilir. JUnit 4 ve coroutine test desteği için kotlinx-coroutines-test bağımlılığı eklemesini isteyin; MainDispatcherRule ve runTest kullanımı ile asenkron kodun kararlılığı artar. StateFlow testlerinde Turbine kütüphanesini kullanarak her emisyonu sırayla doğrulayabilirsiniz; ajan bu deseni hızla uygular. Espresso testlerinde enstrümantasyon ortamı gerektiğinden, ajan yalnızca test kodu üretmeli, çalıştırmak için bağlı cihaz veya emülatör sizin tarafınızda olmalıdır. Compose UI testleri için createAndroidComposeRule kullanın ve onNodeWithText gibi matcher’larla senkronizasyonu sağlayın; ajan bu kuralları doğru yazabilir ancak gerekli @get:Rule anotasyonunu atlayabilir. Her değişiklikten sonra ./gradlew lintDebug çalıştırın; ajan en yaygın lint uyarılarını giderebilir ancak mimari kural ihlallerini siz onaylayın. Gerekirse ./gradlew test yerine yalnızca değişen modülün testini çalıştırarak geri bildirimi hızlandırın. Gradle managed devices veya test sharding kullanıyorsanız bu komutları da AGENTS.md’ye ekleyin; ajan ilgili raporları okuyup özetleyebilir.

Bir projede birden çok ajan: AgentVera

AgentVera, paralel kodlama ajanları için en iyi araçlar arasında yer alan ve opencode dahil birden fazla komut satırı ajanını aynı pencerede gerçek terminal panellerinde çalıştıran bir masaüstü uygulamasıdır. Kotlin ve Android projelerinde en değerli üç özelliği, her ajanın kendi git worktree’sinde çalışarak dosya çakışmalarını önlemesi, bir ajan bitince ikinci bir modelin kod incelemesi yapıp dosya:satır bağlantıları vermesi ve her turun checkpoint’ini alarak tek tıkla geri alıp adım adım yeniden oynatmasıdır. Böylece Compose UI ile ViewModel üzerinde aynı anda iki ajan çalıştırabilir, inceleme sonrası güvenle birleştirme yapabilirsiniz.

Sonuç

opencode, AGENTS.md ile doğru yapılandırıldığında Kotlin ve Android projelerinde özellikle Compose refactorleri, ViewModel state yönetimi, coroutine testleri ve Gradle temizliği için güvenilir bir eş olur. Her adımda test ve lint çalıştırarak, diff’i inceleyerek ve gerektiğinde AgentVera ile paralel ajanları worktree’lerde koşturarak üretkenliği artırabilirsiniz. Ajan size kod üretir; mimari kararları ve cihaz testlerini siz doğrularsınız.

Sık sorulanlar

opencode Kotlin ve Android projesinde AGENTS.md dosyasına ne yazmalıyım?

AGENTS.md dosyasına ./gradlew assembleDebug, ./gradlew testDebugUnitTest ve ./gradlew lintDebug gibi komutları, klasör düzenini ve Compose/ViewModel kurallarını yazın. Ajan bu talimatları her değişiklikte uygular.

opencode Jetpack Compose ekranlarını düzenleyebilir mi?

Evet, Compose fonksiyonlarını okuyup düzenleyebilir, state yönetimini ViewModel’e taşıyabilir ve eksik key parametreleri ekleyebilir. Ancak AGENTS.md’de XML yerine Compose kuralı net olmalı, yoksa eski alışkanlıkla XML layout önerebilir.

opencode unit ve Espresso testlerini kendisi çalıştırabilir mi?

Evet, terminal üzerinden ./gradlew testDebugUnitTest ve ./gradlew connectedDebugAndroidTest komutlarını çalıştırabilir. Sonuçları yorumlayıp başarısız assertion’ları düzeltebilir; ancak emülatör veya cihaz bağlı değilse Espresso testleri çalışmaz.

opencode ile birden fazla ajanı aynı Android projesinde nasıl paralel çalıştırırım?

AgentVera gibi bir masaüstü uygulaması, her ajanı kendi git worktree’sinde çalıştırarak dosya çakışmalarını önler. Bir ajan bitince otomatik kod incelemesi yapılır ve checkpoint’lerle geri alınabilir.

Ajanlarını bir masaya topla.

AgentVera’yı ücretsiz indir; kurulu CLI’ların hazır.

Diğer opencode rehberleri

Kotlin ve Android için diğer ajanlar