# Claude Code Flutter: Ajanla Etkili Flutter Geliştirme

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

Claude Code’u Flutter projelerinde etkili kullanın: CLAUDE.md yapılandırması, widget ve state yönetimi görevleri, test doğrulama ve paralel ajan çalıştırma ipuçları.

**Kısaca:**

- Claude Code, Flutter projesinde CLAUDE.md ile yönlendirildiğinde widget refactor, test yazımı ve platform kanalı işlerini hızlandırır.
- Küçük adımlarla planlatıp her değişiklikten sonra flutter analyze ve flutter test çalıştırmak güvenli bir döngü sağlar.
- Paralel ajanları ayrı git worktree’lerinde koşturmak Flutter dosyalarında çakışmayı önler ve inceleme süresini kısaltır.

Claude Code, Flutter projenizin kök dizininde terminalde `claude` komutuyla başlar; projedeki CLAUDE.md dosyasını okur ve `flutter pub get`, `flutter analyze`, `flutter test` gibi komutları sizinle birlikte çalıştırır. Flutter’ın widget ağacı, state management katmanları ve platform kanalları hakkında bağlam verdiğinizde, ajan yalnızca kod yazmaz; bozulan testleri, lint hatalarını ve native taraf eksiklerini de düzeltmeye çalışır. Başlangıç için [Claude Code rehberine](/ajanlar/claude-code/) bakabilirsiniz.

## Neden Claude Code Flutter işine uygun?

Flutter projeleri hem Dart hem de native katmanlardan oluşur; Claude Code, terminale erişimi sayesinde iki tarafı aynı oturumda denetleyebilir. Dart’ın statik tipleri ve widget ağacının okunabilir yapısı, ajana dosyalar arasındaki ilişkiyi izleme imkânı verir. Örneğin bir `ConsumerWidget` içinde `ref.watch` ile okunan provider’ın nerede tanımlandığını bulup değişikliği tek seferde uygulayabilir. Ayrıca `flutter test` ve `flutter analyze` çıktılarını kendi kendine yorumlayıp düzeltebilir; bu, uzun derleme ve test döngülerinde size zaman kazandırır. Platform kanallarında ise Dart tarafındaki `MethodChannel` ile Kotlin veya Swift tarafındaki karşılığını ilişkilendirebilir, ancak native kod incelemesini son adımda siz yapmalısınız.

Ajan, Flutter’ın widget hiyerarşisini anlamakta başarılıdır; örneğin bir `ChangeNotifierProvider` üzerinden güncellenen ürün kartı widget’ında `context.watch` çağrısının doğru yerde olup olmadığını kontrol edip eksik `dispose` çağrılarını tespit edebilir. `json_serializable` veya `freezed` ile üretilen modellerde, generated dosyaları analiz edip yeni alanlar için güncelleme planı çıkarabilir. Ayrıca test dosyalarındaki `Finder` eşleşmelerini ve `pump` sürelerini düzelterek widget testlerinin kararlılığını artırabilir.

## Projeyi ajan için hazırlama ve CLAUDE.md

Claude Code, proje kökünde CLAUDE.md varsa onu talimat olarak okur. Flutter projenizde komutlar, klasör kuralları, state management tercihi ve platform kanalı kalıpları net olmalı. Aşağıdaki örnek, küçük bir Flutter uygulaması için yeterli bir başlangıçtır:

```
# CLAUDE.md

## Komutlar
- Bağımlılıkları yükle: flutter pub get
- Lint ve analiz: flutter analyze
- Testleri çalıştır: flutter test
- Format kontrolü: dart format --set-exit-if-changed lib test
- Debug APK: flutter build apk --debug

## Klasör kuralları
- lib/features/<feature>/presentation, domain, data ayrımını koru.
- lib/core içinde yalnızca paylaşılan widget, tema ve yardımcılar bulunur.
- test/ altında her dosya için karşılık gelen widget veya unit testi olmalı.

## Flutter'a özel kurallar
- State management için Riverpod kullan; servisleri Provider ile enjekte et.
- build metodu içinde yan etki oluşturma; ref.read yerine widget dışında ref.listen tercih et.
- Platform kanallarında MethodChannel adlarını sabitlerde tut; hata mesajlarını Dart tarafında sarmala.
- Kod üretimi gereken paketler için build_runner çalıştır; generated dosyaları elle düzenleme.
```

Bu dosyayı her komut değişikliğinde güncelleyin; örneğin `build_runner` kullanıyorsanız ilgili komutu ekleyin. Ajan, `analysis_options.yaml` içindeki linter kurallarını da okur; yine de kritik bağımlılık değişikliklerini diff’te inceleyin. CLAUDE.md’yi ayrıca platform bazlı klasör notlarıyla genişletebilirsiniz: `android/` ve `ios/` altında yalnızca platforma özel kod bulunur, Dart tarafında her zaman null-safe kontroller ve hata sarmalama yapılır. Eğer fvm veya asdf ile Flutter sürümü yönetiyorsanız komutları ona göre yazın; ajan varsayılan `flutter` komutunu kullanırsa yanlış SDK ile çalışabilir. Ayrıca CI’da kullanılan betikleri de buraya ekleyin; ajan böylece yerel ve CI arasındaki farkı bilir ve aynı komutları çalıştırabilir.

## Çalışma döngüsü: plan, küçük adımlar, testler ve diff

Flutter’da büyük bir widget refactor’ünü tek seferde istemek yerine ajanı küçük adımlara yönlendirin. Önce mevcut kodu okutup plan çıkarmasını isteyin; [plan modu rehberinden](/blog/claude-code-plan-modu/) detaylara ulaşabilirsiniz. Ardından her değişiklikten sonra `flutter analyze` ve `flutter test` çalıştırmasını, son olarak da `git diff` özeti vermesini isteyin. Bu döngü, Flutter’ın hızlı geri bildirim döngüsünü ajana devrederken kontrolü sizde tutar.

- Mevcut giriş akışını incele; `TextFormField` doğrulamalarını `flutter analyze` bozmayacak şekilde düzelt, eksik `dispose` çağrılarını kapat ve ilgili widget testini güncelle.
- Riverpod ile `AsyncNotifier` tabanlı bir ürün listesi state’i yaz; loading, error ve data durumlarını ayrı widget’larla göster; mevcut `ProductRepository`'yi `Provider` üzerinden enjekte et.
- Batarya seviyesini okuyan bir platform kanalı oluştur; Android ve iOS native kodunu ekle, Dart tarafında `MethodChannel` ve birim testi yaz.
- Başarısız golden testin nedenini `flutter test` çıktısından incele; padding veya renk değişikliği kaynaklıysa widget değişikliğini onaylatmadan golden’ı güncelleme.
- `pubspec.yaml` içindeki bağımlılıkların hangi sürümlerinde breaking değişiklik olduğunu özetle; `flutter analyze` geçecek şekilde geçiş planı çıkar.
- Mockito ile bir Repository mock’u oluştur ve mevcut widget testinin bağımlılıklarını bu mock ile izole et; testin kararlılığını artırmak için async boşluklarını `pumpAndSettle` ile yönet.

Plan modunu aktif kullanın; ajan önce değişiklik yapılacak dosyaları ve beklenen sonuçları listelesin. Örneğin bir form validasyonu işinde `TextFormField` widget’larını değiştirmeden önce input formatter’ları listelemesini isteyin. Ajan her adımda `flutter analyze` çıktısını özetleyip gerekli düzeltmeleri yapsın; siz de `git diff --stat` ile genel değişiklik boyutunu kontrol edin. Her istemin sonunda ajanın çalıştırdığı komutları ve değişen dosyaları gözden geçirin; özellikle `pubspec.yaml`, `AndroidManifest.xml`, `Info.plist` ve generated dosyaları onaylamadan geçmeyin. Ajan `flutter test` çıktısındaki stack trace’i yorumlayabilir; başarısız widget testinde hangi `Finder`'ın eşleşmediğini söyleyebilir. Yine de testin neden kırıldığını anlamak için diff’i okumanız gerekir; bazen testi gereksiz yere değiştirerek sorunu maskeleyebilir.

## İyi gittiği işler ve dikkat edilmesi gerekenler

Claude Code Flutter’da özellikle şu işlerde iyi çalışır: tekrar eden widget’ları çıkarma, `StatefulWidget`'tan Riverpod veya Bloc yapısına taşıma, `json_serializable` veya `freezed` modellerini güncelleme, mockito ile test yazma, `flutter analyze` hatalarını temizleme. Ayrıca `TextEditingController` gibi controller’ların yaşam döngüsünü düzenlemek, `ThemeData` güncellemelerini toplu uygulamak ve platform kanalı şablonları oluşturmak gibi görevlerde de hız kazandırır.

Buna karşılık Flutter’a özgü bazı tuzaklara dikkat edin: ajan bazen güncel olmayan bir widget API’si hayal edebilir; örneğin `RaisedButton` yerine `ElevatedButton` önerebilir. `build` metodu içinde `ref.read` gibi yan etkiler önerebilir veya async metotlarda `context` kullanımını `mounted` kontrolü olmadan yazabilir. Generated dosyaları elle düzenleyebilir; `pubspec.yaml`'a gereksiz paket ekleyebilir veya mevcut bir paketin sürümünü yanlış yükseltebilir. Platform kanalı işlerinde Android tarafını ekleyip iOS tarafını atlayabilir veya gerekli izinleri `AndroidManifest.xml` ile `Info.plist`'e yazmayı unutabilir. Ayrıca widget testlerini yalnızca mutlu yola göre yazıp async gap veya `BuildContext` kullanımını gözden kaçırabilir. Fvm veya Melos gibi araçlar kullanıyorsanız ilgili komutları CLAUDE.md’ye yazmalısınız; aksi halde ajan global Flutter SDK ile çalışıp projenin pinlenmiş sürümünü atlayabilir. State management konusunda Riverpod veya Bloc arasında karışıklık yaşayabilir; CLAUDE.md’de net bir yönerge yoksa her iki kütüphaneden parçalar önerebilir.

## Test ve doğrulama

Claude Code’a testleri çalıştırmayı alışkanlık haline getirin; ancak hangi komutun neyi doğruladığını bilin. Aşağıdaki tablo Flutter projesindeki temel kontrolleri özetler:

| Kontrol | Komut | Neye bakar |
|---|---|---|
| Statik analiz | `flutter analyze` | Bozuk importlar, yanlış API kullanımı, null-safety |
| Birim ve widget testleri | `flutter test` | Provider/Riverpod state geçişleri, widget davranışı |
| Format | `dart format --set-exit-if-changed lib test` | Diff gürültüsü ve stil tutarlılığı |
| Native derleme | `flutter build apk --debug` | Android manifest, Gradle ve platform kanalı hataları |

Testleri çalıştırırken yalnızca başarılı olmasına değil, hangi dosyaların değiştiğine de bakın. Özellikle golden testlerde ajanın küçük bir padding değişikliğiyle onlarca golden’ı güncellemesi istenmeyen bir diff üretebilir. `flutter test --update-goldens` çalıştırmadan önce ajanın değişiklik özetini isteyin. Unit testlerde ajan bazen `ProviderScope` sarmalayıcısını unutabilir veya `TestWidgetsFlutterBinding`'i yanlış başlatabilir; bu hataları test çıktısından yakalamak mümkündür. `flutter test --coverage` ile kapsama raporu alıp düşük örtülen dosyaları ajanla birlikte inceleyin. Platform kanal testleri Dart tarafında `TestDefaultBinaryMessenger` ile mock’lanabilir; native taraf implementasyonunu ajanın yazıp yazmadığını kontrol edin.

Native tarafa dokunan platform kanalı işlerinde `flutter build apk --debug` veya iOS simülatör derlemesi ile doğrulama yapın; yalnızca Dart testleri native hataları yakalamaz. Ayrıca entegrasyon testleri veya `flutter drive` çalıştırıyorsanız, CLAUDE.md’de bu komutları belirtin; ajan aksi halde yalnızca birim ve widget testlerine odaklanır. Daha kapsamlı kontrol listesi için [pratikler rehberine](/blog/claude-code-en-iyi-pratikler/) başvurabilirsiniz.

## Birden fazla ajanı tek Flutter projesinde çalıştırma

Tek Flutter projesinde birden fazla Claude Code örneğini paralel çalıştırmak için AgentVera kullanışlıdır; her ajan kendi git worktree’sinde çalıştığı için aynı anda `pubspec.yaml` veya widget dosyalarını ezmez. Ajan turu bitince ikinci bir model otomatik kod incelemesi yapar; bulgular `file:line` bağlantılarıyla platform kanalı ve state yönetimi hatalarını hızlı gösterir. Checkpoint’ler yanlış bir widget refactor’ünü tek tıkla geri almayı sağlar; token bütçeleri de uzun test ve analiz döngülerinin kontrolden çıkmasını engeller. Bu yaklaşımın detaylarına [çoklu ajan rehberinden](/blog/birden-fazla-claude-code-ajani/) ulaşabilirsiniz.

## Özet

Claude Code’u Flutter projesinde etkili kullanmanın yolu net bir CLAUDE.md, küçük adımlı plan döngüsü ve her değişiklikten sonra test/analiz doğrulamasıdır. Ajanın güçlü olduğu widget refactor’leri ve test yazımı gibi alanlarda hız kazanır; platform kanalları ve generated dosyalar gibi konularda incelemeyi siz yapın. Birden fazla işi paralelleştirirken ajanları ayrı worktree’lerde koşturmak çakışmaları önler ve Flutter projesinin kararlılığını korur.

## Sık sorulanlar

**Claude Code Flutter projesinde nasıl başlatılır?** Proje kök dizininde terminalde claude komutunu çalıştırın. Ajan, varsa CLAUDE.md dosyasını okur ve sizinle birlikte Flutter komutlarını çalıştırabilir.

**Claude Code Flutter platform kanallarını yazabilir mi?** Evet, Dart tarafındaki MethodChannel ile Android ve iOS native kodunu oluşturabilir. Yine de manifest ve izin değişikliklerini, native derleme sonuçlarını siz gözden geçirmelisiniz.

**Claude Code Riverpod veya Bloc ile çalışabilir mi?** Evet, state management kütüphanelerini tanır ve mevcut yapıya uygun kod üretir. CLAUDE.md’de hangi yaklaşımı kullandığınızı belirtmeniz tutarlılığı artırır.

**Claude Code Flutter testlerini kendi başına çalıştırabilir mi?** Evet, terminal erişimi sayesinde flutter test, flutter analyze ve dart format komutlarını çalıştırıp sonuçlara göre düzeltme yapabilir. Ancak golden test güncellemeleri gibi geri dönüşü zor adımları onaylamanız gerekir.

---

**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/
