Ajanı proje klasöründe codex komutuyla başlatın; Flutter işlerinde en iyi sonuç, ajanı doğrudan widget ağacı, test komutları ve state yönetimi kurallarıyla beslediğinizde gelir. Codex, AGENTS.md dosyanızı okuyup flutter analyze ve flutter test çıktılarına göre ilerler. Bu rehber, günlük Flutter geliştirme döngüsüne Codex’i sokan pratik bir çalışma düzeni sunar.
Neden Codex Flutter işine uygundur
Codex, yalnızca kod parçası üretmez; proje klasöründeki pubspec.yaml, lib/ ve test/ yapısını okuyarak karar verir. Komut satırından flutter analyze, flutter test ve gerekirse dart format çalıştırabilir. Flutter’ın hızlı hata geri bildirimi sayesinde ajan, hatalı widget veya eksik import’u kendi denemesiyle düzeltebilir. Ayrıca Provider, Riverpod veya Bloc gibi desenleri bilir; siz AGENTS.md içinde hangisini kullandığınızı ve dosyalama kuralını net belirtirseniz, tutarlı kod üretme olasılığı artar.
Flutter projelerinde hatalar hızlı görünür; flutter analyze statik kontrolü, flutter test ise widget ağacını gerçek bir test ortamında çalıştırır. Codex bu iki komutu kendi döngüsüne katabildiği için yazdığı kodu denetleyebilir. Örneğin eksik bir const veya yanlış BuildContext kullanımı analizde uyarı üretir; ajan uyarıyı okuyup düzeltebilir. Dart’ın güçlü tip sistemi de ajanın parametre ve dönüş tiplerini hızlı doğrulamasına yardımcı olur. Daha genel kullanım için Codex sayfasına bakabilirsiniz.
Projeyi ajan için hazırlama ve AGENTS.md
Codex’in en büyük kaldıracı bağlamdır. Flutter projesinde AGENTS.md dosyasına şunları yazın: kullanılan state yönetimi, klasör düzeni, çalıştırma komutları, test politikası, kod üretiminde uyulması gereken Flutter kuralları. Aşağıdaki örnek, orta ölçekli bir proje için başlangıç noktasıdır:
# AGENTS.md
## Komutlar
- Bağımlılıklar: flutter pub get
- Analiz: flutter analyze
- Test: flutter test
- Tek test: flutter test test/widgets/user_card_test.dart
- Format: dart format lib test
## Klasör düzeni
- lib/core: tema, sabitler, yardımcılar
- lib/features/<feature>/presentation: widget'lar
- lib/features/<feature>/application: Riverpod provider'lar
- lib/features/<feature>/domain: modeller ve servis arayüzleri
- test/features/<feature>: widget ve birim testleri
## Flutter kuralları
- State yönetimi Riverpod kullan; setState yalnızca geçici UI durumu için.
- Widget'ları 150 satırın altında tut; tekrar eden parçaları private widget'a çıkar.
- const constructor kullanılabilecek her yerde kullan.
- Asenkron metotlarda await sonrası context kullanmadan önce `if (!mounted) return;` ekle.
- Yeni özellik eklerken önce başarısız bir widget testi yaz, sonra kodu düzelt.
- Platform kanalı eklerken MethodChannel adını sabitler dosyasında tut.
Bu dosyayı projenin köküne koyun. Codex her görev öncesi bu kuralları okur; böylece setState fırtınası, test’siz özellik veya dağınık klasör gibi tipik Flutter sorunlarını daha az üretir. AGENTS.md kısa ve komut odaklı olmalı; uzun stil rehberleri ajanın dikkatini dağıtır. Platform kanalları için Android ve iOS klasörlerine müdahale gerekiyorsa, ajanın önce plan sunmasını isteyin; çünkü platform tarafı değişiklikleri Flutter tarafındaki hatalara göre daha az görünür. Bağlam mühendisliği ilkeleri için Bağlam mühendisliği rehberi yazısına göz atabilirsiniz.
Çalışma döngüsü ve örnek komutlar
Codex ile verimli döngü şöyledir: önce ajanın plan yapmasını isteyin, sonra tek dosyayı değiştirmesini söyleyin, ardından test ve analiz çıktısını okutun, en son diff’i inceleyip kabul edin veya düzeltme isteyin. Tek seferde ‘tüm uygulamayı yeniden yaz’ demek yerine küçük adımlar verin. İyi bir görev tanımı üç şey içerir: hedef dosya veya özellik, kısıtlar ve doğrulama komutu.
Örnek Flutter görev prompt’ları:
lib/features/auth/presentation/login_page.dartdosyasını incele. Mevcut setState kullanımlarını listele ve Riverpod’a taşıma planı çıkar; henüz kod değiştirme.UserCardwidget’ına loading ve error durumlarını ekle. Öncetest/features/user/user_card_test.dartdosyasına başarısız iki test yaz, sonra widget’ı güncelle veflutter test test/features/user/user_card_test.dartçalıştır.flutter analyzeçıktısındaki uyarıları tek tek düzelt. Her düzeltmeden sonra sadece ilgili dosyayı değiştir vedart formatuygula.- Platform kanalı ile batarya seviyesini okuyan bir servis yaz. MethodChannel adını
lib/core/constants/channels.dartiçine koy, Android ve iOS tarafı için gerekli adımları ayrı ayrı açıkla, kod yazmadan önce planı listele. git diffçıktısını özetle ve test kapsamı dışında kalan widget davranışlarını işaretle.
Her adımda git diff’i inceleyin. Ajan testleri geçse bile widget ağacı performansını, const kullanımını ve state geçişlerini siz kontrol edin. Bu döngüde en çok zaman kazandıran adım, ajanın test çıktısını okuyup kendi hatasını düzeltmesidir; siz devreye yalnızca diff incelemesinde girin.
Codex’in iyi yaptığı Flutter işleri ve dikkat edilmesi gerekenler
Codex, tek bir widget’ın eklenmesi, mevcut modelin alanlarını kullanma, repository arayüzüne uyum, flutter analyze hatalarını giderme gibi sınırları belirli işlerde başarılıdır. Buna karşılık büyük mimari geçişlerinde ajanın tüm setState’leri tek seferde değiştirmesine izin vermek kırılgan sonuçlar doğurabilir.
Flutter’a özgü dikkat noktalarını hızlı değerlendirmek için şu tablo işe yarar:
| Görev | Güvenilir prompt deseni | Dikkat edilecek nokta |
|---|---|---|
| Widget ekleme | Mevcut tema ve spacing’e uyarak … | Tasarım sistemi yoksa ajan kendi sabitlerini uydurabilir |
| State yönetimi geçişi | Önce plan, sonra tek provider | Tek seferde tüm sayfaları değiştirirse diff büyür |
| Test yazma | Widget’ı verilen durum için test et | Sahte test veya aşırı pumpAndSettle kullanabilir |
| Platform kanalı | MethodChannel adını sabitlerden al | Android ve iOS tarafını manuel doğrulayın |
Ajan, özel tasarım sisteminizi bilmeden SizedBox(height: 16) gibi sabitler uydurabilir; bu yüzden AGENTS.md’ye spacing, renk ve typography kurallarını ekleyin. Ayrıca büyük refactorlarda git diff --stat ile değişen dosya sayısını kontrol edin; 10 dosyadan fazla değişiklik varsa ajanı durdurup işi bölmesini isteyin. Diff’i yakından incelemeniz gereken diğer noktalar: BuildContext’in asenkron boşluktan sonra kullanımı, AnimationController veya TextEditingController’ın dispose edilmesi, ListView.builder yerine Column içinde liste oluşturma, const atlanması ve state yönetimi kütüphanesinin güncellenmiş API’si.
Flutter’da test ve doğrulama
Codex’e her görevi flutter test ve flutter analyze ile kapatmasını söyleyin. Ajan, CLI çıktısını okuyup hataları düzeltebilir; ancak siz testlerin anlamlı olduğunu doğrulayın. Widget testlerinde pumpAndSettle süresiz animasyonlarda asılı kalabilir, bu yüzden AGENTS.md’ye pump(const Duration(milliseconds: 300)) tercih edilmesini ekleyin. Golden testlerde platform farkı nedeniyle başarısızlık olursa, ajanın resim dosyasını yeniden oluşturmasına değil, farkı anlamasına izin verin; flutter test --update-goldens yalnızca bilinçli kullanılmalı. Ajan başarısız testin nedenini açıklayamıyorsa, ona hatayı küçük bir örnekle yeniden üretmesini isteyin. Flutter testleri bazen platformlar arası farklar nedeniyle yerel makinede geçip CI’da kalabilir; ajanın CI çıktısını da okumasını sağlayın. Flutter test komutlarını yönetmek için Codex CLI nasıl kullanılır? yazısındaki genel ilkeler de uyarlanabilir.
Birden fazla ajanı AgentVera ile çalıştırmak
AgentVera, Codex dahil birden fazla kodlama ajanını gerçek komut satırı araçlarıyla tek pencerede çalıştıran bir masaüstü uygulamasıdır. Flutter projesinde en değerli yönleri şunlardır: her ajan ayrı git worktree üzerinde çalışabilir, böylece aynı lib/features altındaki dosyalar çakışmadan paralel görevler yürür; bir ajanın işi bitince ikinci model otomatik kod incelemesi yapar ve widget yaşam döngüsü ya da state yönetimi hatalarını file:line ile işaretler; her turun checkpoint’i sayesinde kötü bir büyük refactor tek tıkla geri alınabilir; token bütçeleri ise uzun flutter test döngülerinde ajanın kontrolden çıkmasını önler. AgentVera nasıl kullanılır sayfasında kurulum ve ilk proje adımları anlatılıyor.
Kapanış
Codex, Flutter projesinde doğru bağlam ve küçük adımlarla güvenilir bir yardımcı olur. AGENTS.md’yi baştan yazın, her değişiklikte flutter analyze ve flutter test çalıştırın, diff’i mutlaka inceleyin. Karmaşık paralel işler için AgentVera’nın worktree ve checkpoint özellikleri büyük Flutter depolarında işi hızlandırır.