# GitHub Copilot CLI ile Flutter’da hızlı ve güvenli kodlama

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

Flutter projelerinde GitHub Copilot CLI’yi etkili kullanmak için kurulum, AGENTS.md veya copilot-instructions.md, çalışma düzeni, testler ve tuzaklar. Pratik rehber.

**Kısaca:**

- Flutter projesinde GitHub Copilot CLI’yi copilot komutuyla başlatın ve Flutter’a özel talimatları AGENTS.md veya copilot-instructions.md dosyasına yazın.
- Ajanla çalışırken plan isteyin, küçük adımlar atın, her değişiklikten sonra flutter test ve flutter analyze çalıştırın, diff’i inceleyin.
- Platform kanalları ve state yönetiminde tutarlılığı koruyun; ajanın mevcut deseni bozmaması için net kurallar verin.

[GitHub Copilot CLI](/ajanlar/copilot-cli/)'yi Flutter projesinde doğrudan proje klasöründe `copilot` komutuyla başlatarak widget, state yönetimi, test ve platform kanalı işlerini hızlandırabilirsiniz. Ajan, proje kökündeki `.github/copilot-instructions.md` veya `AGENTS.md` dosyasından talimatları okur; bu yüzden Flutter’a özel kuralları önceden yazmak kritik. Bu rehberde pratik bir çalışma düzeni ve Flutter’a özgü tuzaklar ele alınıyor.

## Flutter işleri için neden GitHub Copilot CLI

Klasik sohbet araçlarının aksine GitHub Copilot CLI, proje klasöründe gerçek terminal komutlarını yürütebilir. Flutter projesinde `pubspec.yaml`, `analysis_options.yaml`, mevcut widget ağacı ve test dosyalarını okuyarak bağlam oluşturur. Riverpod, Bloc veya Provider ile yazılmış bir projede yeni bir ekran eklerken mevcut deseni takip etmesini isteyebilirsiniz; ajan dosyaları değiştirir, `flutter test` çalıştırır ve çıktıyı özetler. `dart analyze` ile tip hatalarını yakalamak da ajana devredilebilir. Flutter’ın güçlü tip sistemi ve widget test altyapısı, ajanın küçük adımlarla doğrulanabilir işler yapmasına uygundur.

Özellikle kod üretimi kullanan projelerde (freezed, json_serializable, riverpod_generator) ajan `build_runner` komutlarını çalıştırabilir; ama elle `.g.dart` düzenlememesi talimatta belirtilmelidir. Ajan, `flutter test --coverage` ile kapsama oranı da raporlayabilir. Statik analiz sonuçlarını özetleyip hedef dosyaları düzeltebilir. Flutter’ın büyük widget ağaçları ve çok katmanlı state mimarisi, ajanın küçük ve doğrulanabilir adımlar atmasına olanak tanır; yeter ki proje talimatları kesin olsun.

## Projeyi ajana hazırlamak

GitHub Copilot CLI, repo kökünde `.github/copilot-instructions.md` veya `AGENTS.md` dosyasını arar. Bu dosyaya Flutter projesine özel komutları, klasör kurallarını ve state yönetimi tercihini yazın. Genel dosya yapısı için [CLAUDE.md nasıl yazılır? AGENTS.md ve GEMINI.md rehberi](/blog/claude-md-nasil-yazilir/) iyi bir başlangıçtır; aşağıdaki örnek Flutter’a odaklı bir sürümdür.

```
# Flutter proje talimatları

## Komutlar
- Bağımlılıkları kur: `flutter pub get`
- Statik analiz: `flutter analyze`
- Test: `flutter test`
- Format: `dart format .`
- Debug APK: `flutter build apk --debug`

## Klasör düzeni
- `lib/features/<feature>/presentation`: widget'lar ve ekranlar
- `lib/features/<feature>/application`: state yönetimi (Riverpod/Bloc/Provider)
- `lib/features/<feature>/domain`: modeller ve saf Dart mantığı
- `lib/core`: tema, network, platform kanalları, yardımcılar
- `test/features/<feature>`: testler aynı yapıyı takip eder

## Flutter'a özel kurallar
- State yönetimi olarak yalnızca mevcut deseni kullan; yeni paket ekleme.
- `BuildContext`'i async işlemden sonra `if (!mounted) return;` ile kontrol et.
- Mümkün olan her widget'ta `const` constructor kullan; renkleri doğrudan yazma, `Theme.of(context)` kullan.
- Platform kanal kodları yalnızca `lib/core/platform/` altında olmalı; widget içinde `MethodChannel` çağırma.
- Widget testlerinde gerçek HTTP, veritabanı veya platform kanalı kullanma; mock/ fake kullan.
- Eklenen her public API için `dart doc` yorumu yaz.

```

Talimat dosyası kısa ve emredici olmalı; gereksiz açıklamalar ajanın dikkatini dağıtır. Flutter projelerinde özellikle state yönetimi deseni, klasör düzeni ve kod üretimi kuralları ajanın mevcut mimariye uyumunu artırır. `analysis_options.yaml` dosyasındaki lint kurallarına uymasını da açıkça belirtin. Ajan, repo dışındaki `.github/copilot-instructions.md` yerine repo kökündeki dosyayı okur; bu yüzden dosyayı sürümleme sisteminde tutun. AGENTS.md kullanıyorsanız aynı içeriği oraya koyabilirsiniz; birden fazla ajanla çalışacaksanız [kod haritası](/blog/yapay-zeka-ajanlari-icin-kod-haritasi/) yaklaşımı da faydalı olur.

## Çalışma düzeni: planla, küçük adımlar, testleri çalıştır, diff’i gözden geçir

Ajanla çalışırken her göreve plan isteyerek başlayın. Örneğin [GitHub Copilot CLI nasıl kullanılır? Adım adım rehber](/blog/copilot-cli-nasil-kullanilir/) sayfasındaki temel başlatmayı yaptıktan sonra şu sırayı izleyin:

1. Etkilenecek dosyaları ve test planını listelet.
2. Tek bir görev verip değişikliği yaptır.
3. `flutter analyze` ve `flutter test` çalıştırmasını isteyin.
4. `git diff` ile yapılan değişiklikleri inceleyin.
5. Testler yeşilse ve diff temizse commit edin.

Bu döngü, Flutter’ın hızlı geri bildirimiyle birleştiğinde güvenli bir tempo oluşturur. İşte tipik Flutter görevleri için örnek promptlar:

- 'Mevcut Riverpod yapısını bozmadan Product modeline `isFavorite` alanı ekle ve ilgili testleri güncelle; önce plan çıkar.'
- 'Login ekranındaki `TextFormField` doğrulamalarını sadeleştir; hata mesajları tema renginden gelsin.'
- '`lib/core/platform/notification_channel.dart` içine Android için `MethodChannel` çağrısını ekle ve platform kanalı testini yaz.'
- '`flutter analyze` çıktısındaki uyarıları dosya bazında listele ve düzeltmeyi öner; testleri bozma.'
- 'Bu widget’ın `const` kullanımını artır ve ilgili widget testini `pumpWidget` ile ekle.'

Bu döngüyü her yeni feature için tekrarlayın. Örneğin bir listeleme ekranı eklerken önce modeli ve state’i planlatın, sonra widget’ı yazdırın, testleri ekletin ve analiz sonuçlarını isteyin. Ajan büyük bir değişikliği tek seferde yapmaya kalkarsa, 'öncelikle sadece model dosyasını değiştir' gibi açık komutlar verin. Diff’i inceledikten sonra şüpheli kısımları ajanla tartışın; örneğin async sonrası context kullanımı varsa düzeltmesini isteyin.

## Hangi Flutter işlerinde iyi, nerelerde dikkatli olmalısınız

Ajan, tekrarlayan widget düzenlemeleri, model-genişletme, state katmanı güncellemeleri ve platform kanalı ekleme işlerinde iyi sonuç verir. Aşağıdaki tablo, sık karşılaşılan işler ve dikkat edilecek noktaları özetler.

| İş | Ajandan isteyeceğiniz şey | Dikkat edilecek nokta |
| --- | --- | --- |
| Widget refactor | Widget’ı ayrı dosyaya taşı, `const` ekle, tema kullan | BuildContext’i async sonrası kullanmaması |
| State yönetimi | Riverpod sağlayıcısını güncelle, yeni state alanı ekle | Mevcut deseni değiştirmemesi, pubspec’e paket eklememesi |
| Platform kanalı | MethodChannel kodunu core/platform altına ekle, mock test yaz | İzinler, yaşam döngüsü ve platforma özel dönüş tipleri |
| Test | Widget testi yaz, pumpWidget ile davranışı doğrula | Gerçek zamanlayıcı veya HTTP bağımlılığı eklememesi |

Flutter’a özgü tuzaklar şunlardır: ajan, async boşluk sonrası `BuildContext` kullanımı konusunda hata yapabilir; `if (!mounted) return;` eklemeyi unutabilir. State yönetiminde Riverpod’dan Bloc’a veya setState’e kayabilir, talimatı ihlal edebilir. Platform kanalı kodunda Android ve iOS ayrımını gözden kaçırabilir ya da gerekli manifest/plist izinlerini atlayabilir. Freezed veya json_serializable gibi kod üretimi kullanıyorsanız ajan `.g.dart` dosyalarını elle düzenlemeye çalışabilir; bu dosyaları `dart run build_runner build` ile yeniden üretmesi gerektiğini belirtin. Ajan, `Theme.of(context)` yerine sabit renkler yazabilir, bu da karanlık tema uyumunu bozar. Widget testlerinde `pumpAndSettle` yerine `pump` kullanmazsa animasyon veya timer asılı kalabilir; `tester.pumpAndSettle` ile bitmeyen animasyonları yakalamak zorlaşır. Responsive layout konusunda `MediaQuery` kullanmayı unutabilir, önerileri farklı ekran boyutlarında test etmek gerekir. Diff’i incelerken özellikle `pubspec.yaml`, `analysis_options.yaml` ve state katmanı dosyalarına bakın.

## Test ve doğrulama

GitHub Copilot CLI’den her görev sonrası `flutter test` çalıştırmasını isteyin. Sadece geçti/kaldı bilgisiyle yetinmeyin; hangi testlerin eklendiğini veya değiştirildiğini sorun. `flutter analyze` çıktısının sıfır uyarı olmasını hedefleyin. Widget testlerinde `tester.pump`, `tester.pumpAndSettle` ve `tester.enterText` gibi standart araçların doğru kullanıldığını kontrol edin. Platform kanalı testlerinde `TestDefaultBinaryMessengerBinding` veya mock yöntem kanalı kullanılmalı. Ajan, test kapsamını genişletmek için mevcut test dosyalarını örnek alabilir; bunu talimatlara yazarsanız daha tutarlı testler üretir. Son olarak `git diff --stat` ile değişikliklerin beklenen dosyalarla sınırlı olduğunu doğrulayın.

Golden testler kullanıyorsanız ajanın `matchesGoldenFile` eklerken yeni görüntüleri `flutter test --update-goldens` ile üretmesini isteyebilirsiniz; ancak bu görüntüleri incelemeden commit etmemelisiniz. Entegrasyon testleri için `integration_test` paketini kullanıyorsanız ajanın testi cihaz/emülatör üzerinde çalıştırma adımlarını doğru yazması gerekir; `flutter test integration_test` komutu bazı projelerde farklılık gösterebilir. Ajanın testlerde `setUp`/`tearDown` kullanmasını ve mock’ları `testWidgets` içinde doğru başlatmasını kontrol edin. Son olarak CI’da çalışan `flutter analyze --fatal-infos` gibi ek komutları da talimat dosyasına yazarsanız ajan aynı standartta kalır.

## Birden fazla agent ile Flutter projesi

Birden fazla ajanı aynı Flutter projesinde koşarken AgentVera işleri yönetilebilir kılar. Her ajan ayrı git worktree üzerinde çalıştığı için widget ve state değişiklikleri birbirini ezmez. Ajan bitince ikinci bir model kodu inceler; bulgular file:line olarak gösterilir, böylece `BuildContext` veya `const` hatalarını hızlı yakalarsınız. Checkpoint’ler sayesinde yanlış bir refactor tek tıkla geri alınır ve oturum adım adım izlenebilir. Token bütçeleri ise ajanın Flutter test döngülerinde kaynakları aşırı tüketmesini engeller.

## Sonuç

GitHub Copilot CLI, doğru proje talimatları ve disiplinli bir döngüyle Flutter işlerinde ciddi zaman kazandırır. Önemli olan ajanın mevcut mimariyi bozmasını önlemek, her değişikliği analiz ve testlerle doğrulamak, diff’i dikkatle incelemektir. Flutter’a özel kuralların dosyada net olması, ajanın kendi varsayımlarını değil sizin standartlarınızı takip etmesini sağlar.

## Sık sorulanlar

**GitHub Copilot CLI Flutter projelerinde nasıl başlatılır?** Proje klasöründe terminalde copilot komutunu çalıştırın. Ajan, .github/copilot-instructions.md veya AGENTS.md dosyasını okuyarak bağlam alır.

**Flutter projesinde GitHub Copilot CLI’ye hangi talimatlar verilmeli?** Build, test, lint komutları, klasör düzeni ve state yönetimi kuralları verilmeli. Platform kanallarının yeri ve async sonrası mounted kontrolü gibi Flutter’a özgü kurallar da eklenmeli.

**GitHub Copilot CLI Flutter’da testleri kendisi çalıştırır mı?** Evet, terminal üzerinden flutter test ve flutter analyze komutlarını çalıştırabilir. Yine de sonuçları doğrulamak ve diff’i incelemek sizin sorumluluğunuzda olmalı.

**Flutter’da state yönetimi için GitHub Copilot CLI’ye nasıl güvenirim?** Talimat dosyasında mevcut state yönetimi desenini belirtin ve yeni paket eklememesini söyleyin. Ajanın önerdiği değişiklikleri her zaman pubspec.yaml ve state katmanındaki tutarlılık açısından gözden geçirin.

---

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