React Native projelerinde GitHub Copilot CLI, terminalde komutları çalıştırarak, dosyaları okuyarak ve testleri koşturarak küçük değişiklikleri hızla hayata geçirmenizi sağlar. copilot komutuyla proje klasöründe başlatılan ajan, sizin verdiğiniz talimatlara göre plan yapar, kod yazar, testleri ve lint’i çalıştırır. Bu rehberde, React Native’e özel bir iş akışı ve dikkat edilmesi gereken noktalar ele alınmıştır.
Neden GitHub Copilot CLI React Native işine uygun?
React Native geliştirme döngüsü, sık tekrarlanan görevlerden oluşur: ekran bileşenleri eklemek, navigasyon yapısını güncellemek, Jest testleri yazmak, Metro önbelleğini temizlemek ve native bağımlılıkları yönetmek. GitHub Copilot CLI, bu işlemleri sizin yerinize planlayıp küçük adımlara böler; her adımda npm test, npx tsc --noEmit veya npm run lint gibi komutları çalıştırarak geri bildirim üretir. Özellikle platform farklılıklarından kaynaklanan hataları yakalamak için ajanın proje dosyalarını gerçek zamanlı okuması büyük avantaj sağlar. Daha geniş bir bakış için GitHub Copilot CLI sayfasına bakabilirsiniz.
Projeyi ajana hazırlama
GitHub Copilot CLI, repo kökündeki .github/copilot-instructions.md veya AGENTS.md dosyasını otomatik okur. Bu dosyaya projeye özel komutlar, klasör düzeni ve React Native kurallarını yazmak, ajanın tahmin yürütmesini azaltır. Dosya kısa ve komutlar kesin olmalı; ajan her görev sonunda bu komutları çalıştırmaya çalışır. Aşağıdaki örnek, Expo veya bare workflow için uyarlanabilir:
# React Native projesi talimatları
## Komutlar
- Kurulum: `npm install` veya `yarn install`
- Test: `npm test -- --watch=false`
- Lint: `npm run lint`
- Tip kontrolü: `npx tsc --noEmit`
- Metro temizleme: `npm start -- --reset-cache`
- iOS pod kurulumu: `npx pod-install` (Expo bare veya bare workflow)
- Expo dev client: `npx expo start --dev-client`
## Klasör düzeni
- `src/` içinde component, screen, navigation, api, hooks klasörleri
- `__tests__/` dosya adına göre eşleşir
- Native klasörler: `ios/` ve `android/` sadece gerektiğinde düzenlenir
## React Native'e özel kurallar
- Platforma özel kod `Platform.OS` veya `Platform.select` ile ayrılır
- Tüm import'lar relative path ile yazılır
- Native modül eklerken hem iOS hem Android tarafını güncelle
- Metro cache sorunlarında önce `npm start -- --reset-cache` dene
- Jest testlerinde native modülleri mock'la
Talimat dosyasını oluştururken gereksiz uzunluktan kaçının; ajanın komutları doğru sırayla çalıştırabilmesi için net isimler kullanın. AGENTS.md gibi dosyaların yazımı hakkında daha fazla ipucu için CLAUDE.md nasıl yazılır? AGENTS.md ve GEMINI.md rehberi rehberine göz atabilirsiniz. Ayrıca GitHub Copilot CLI’nin genel kullanımı için GitHub Copilot CLI nasıl kullanılır? Adım adım rehber adım adım rehberine bakın.
Çalışma döngüsü
React Native projesinde verimli bir döngü şöyle kurulur: önce ajanla plan yapın, sonra küçük bir değişikliği uygulamasını isteyin, ardından test ve lint sonuçlarını inceleyin, en son diff üzerinde gözle kontrol yapın. Ajanın her adımda çalıştırdığı komutları terminalde takip edin; özellikle native taraf değişikliklerinde iOS veya Android build’inin başarılı olup olmadığını teyit edin.
- “Ürün listesi ekranındaki kart bileşenini
src/components/ProductCard.tsxdosyasına taşı, prop tiplerini TypeScript ile tanımla ve mevcut kullanımları güncelle.” - “React Navigation stack’ine ‘Profil’ ekranını ekle, gerekli ekran dosyasını oluştur ve başlık ayarını route parametresine göre yap.”
- “
api/fetchProductsfonksiyonunu Jest ile test et, network isteğinijest.mockile sahte veri döndür, hata durumunu da kapsa.” - “iOS tarafında pod kurulumu gerektiren
react-native-vision-camerakütüphanesini ekle, Android manifest’e kamera iznini, iOS Info.plist’e NSCameraUsageDescription ekle venpx pod-installçalıştır.” - “FlatList renderItem içinde arrow function kullanımını tespit et,
useCallbackile optimize et ve performans testi ekle.” - “Mevcut
useAuthhook’una giriş durumunu AsyncStorage’da saklama özelliği ekle ve ilgili testleri güncelle.” - “Uygulamanın tema yapısını
ThemeProviderile değiştir, tüm ekranlardaki hardcoded renkleri tema değişkenleriyle değiştir.” - “Android’de
react-native-splash-screenkütüphanesini ekle, MainActivity ve styles.xml dosyalarını güncelle, iOS’ta LaunchScreen.storyboard’u kontrol et.”
| Görev | İyi prompt |
|---|---|
| Ekran ekleme | “Settings ekranını oluştur, React Navigation stack’e ekle ve geri butonunu yapılandır.” |
| Native modül | “react-native-ble-plx kur, Android manifest ve iOS Info.plist izinlerini ekle, pod install çalıştır.” |
| Test yazma | “useAuth hook’u için Jest testleri yaz, AsyncStorage’ı mock’la.” |
| Performans | “FlatList’te renderItem içinde inline fonksiyon kullanımını bul ve useCallback ile optimize et.” |
Bu döngüde en önemli adım, ajanın ürettiği diff’i incelemektir. Özellikle navigation state veya platforma özel kod değişikliklerinde gözden kaçan yan etkiler olabilir. Ajan, değişiklikleri git diff olarak değil, kendi formatında gösterir; bu yüzden terminalde git diff komutunu kendiniz çalıştırıp platforma özel dosyaları (Component.android.tsx, Component.ios.tsx) ayrı ayrı kontrol edin.
Hangi işlerde iyi, nerelerde dikkatli olmalı?
GitHub Copilot CLI, React Native’de şunlarda başarılıdır: yeni ekran ve bileşen oluşturma, mevcut kodun refactor edilmesi, Jest testlerinin yazılması veya güncellenmesi, lint hatalarının düzeltilmesi, bağımlılık eklerken ilgili import ve kullanım değişiklikleri. Ancak native modül entegrasyonlarında ve Metro yapılandırmasında dikkatli olunmalıdır. Ajan bazen iOS ve Android tarafındaki değişiklikleri eksik yapabilir, pod install’ı atlayabilir veya Android’de namespace/gradle sürüm uyumsuzluğu yaratabilir. Ayrıca RN sürümleri arasındaki farklar nedeniyle verdiği kod parçacıkları her zaman güncel olmayabilir. Bu nedenle native dosyalardaki değişiklikleri manuel olarak gözden geçirin, gerekirse cihazda test edin.
Özellikle dikkat edilmesi gereken senaryolar:
- Android’de view manager veya native module ekleme: Java/Kotlin dosyaları, AndroidManifest.xml ve MainApplication.java güncellenmeli; ajan bazen
new Package()kaydını atlar. - iOS’ta podfile ve bridging header: Swift tabanlı modüller için bridging header ve podfile değişiklikleri kritik; ajan
pod installsonrası Xcode projesini güncellemeyebilir. - Navigation derin bağlantılar: Linking configuration değişiklikleri URL scheme eşleşmelerini bozabilir; manuel test şart.
- Metro config değişiklikleri:
metro.config.jsveyababel.config.jsdeğişiklikleri, özellikle monorepo veya özel çözümleyicilerde, uygulamanın başlamamasına neden olabilir.
Test ve doğrulama
React Native projesinde test üç katmandan oluşur: birim testler (Jest), tip kontrolü (TypeScript) ve cihaz/simülatörde manuel doğrulama. Ajanı, her kod değişikliğinden sonra npm test -- --watch=false ve npx tsc --noEmit komutlarını çalıştırması için yönlendirin. Jest testleri hızlıdır ve ajanın sık yaptığı hataları yakalar; tip kontrolü ise özellikle React Navigation route parametreleri ve native modül tiplerinde faydalıdır. Ancak hiçbir CLI ajanı, uygulamanın gerçek cihazdaki davranışını göremez. Bu yüzden görsel değişiklikler, dokunma etkileşimleri ve native modül çalışmalarında simülatör veya fiziksel cihazda siz doğrulama yapmalısınız. Ajanın test sonuçlarını terminalde gösterdiğinden emin olun; gerekirse --watch=false bayrağıyla çalıştırın ki süreç takılmasın.
Jest yapılandırmasında jest-expo preset kullanıyorsanız, ajanın bunu tanıdığından emin olun; jest.config.js içinde preset: 'jest-expo' geçiyorsa native modül mock’ları otomatik yüklenir. Snapshot testleri eklerken ajanın ürettiği snapshot dosyalarını commit etmeyi unutmayın. Uygulamanın navigasyon akışını doğrulamak için @testing-library/react-native ile render testleri ekleyebilirsiniz; ajan bu kütüphaneyle test yazabilir. Ancak gerçek cihaz gerektiren kamera, konum, push notification gibi özelliklerde test komutlarını ajanın çalıştırmasını beklemeyin; bu testleri manuel olarak yapın.
Birden fazla ajanı AgentVera ile çalıştırma
React Native projenizde paralel işler için AgentVera masaüstü uygulamasını kullanabilirsiniz. Her ajan ayrı bir git worktree üzerinde çalıştığı için birisi iOS native kodu güncellerken diğeri JS ekranlarını değiştirebilir; çakışma olmaz. Ajanın turu bittiğinde ikinci bir model otomatik kod incelemesi yapar ve bulguları file:line şeklinde gösterir; bu, native taraftaki hataları erken yakalar. Her turun anlık görüntüsü (checkpoint) alınır, tek tıkla geri alınabilir. Token bütçeleri ile ajanın aşırı kaynak tüketmesi engellenir. Böylece birden fazla React Native görevini güvenle paralel yürütebilirsiniz.
Sonuç
GitHub Copilot CLI, React Native projelerinde planlama, kod üretme ve test çalıştırma döngüsünü hızlandıran güçlü bir araçtır. Başarılı kullanım, net talimat dosyaları, küçük adımlı çalışma ve her adımda diff incelemesi ile mümkündür. Native tarafta manuel doğrulamayı asla atlamayın; ajanın önerilerini kendi deneyiminizle süzün. Bu yaklaşımla React Native geliştirme süreciniz daha öngörülebilir ve verimli hale gelir.