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

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

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.

Solviera Teknoloji 5 dk okuma

GitHub 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 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ı 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 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 şeyDikkat edilecek nokta
Widget refactorWidget’ı ayrı dosyaya taşı, const ekle, tema kullanBuildContext’i async sonrası kullanmaması
State yönetimiRiverpod sağlayıcısını güncelle, yeni state alanı ekleMevcut 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
TestWidget testi yaz, pumpWidget ile davranışı doğrulaGerç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.

Ajanlarını bir masaya topla.

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

Diğer GitHub Copilot CLI rehberleri

Flutter için diğer ajanlar