# Gemini CLI React Native projesinde nasıl kullanılır

Adres: https://agentvera.dev/blog/gemini-cli-ile-react-native/ · Yayın: 2026-11-01

Gemini CLI ile React Native projelerinde terminalden kod yazmayı, GEMINI.md ile proje bağlamı kurmayı, test ve doğrulama adımlarını öğrenin.

**Kısaca:**

- Gemini CLI, React Native projesinde terminalden gemini komutu ile çalışır ve GEMINI.md dosyasından proje komutlarını öğrenir.
- React Navigation, Jest ve Metro hatalarında küçük adımlarla plan yapıp her turda git diff incelemesi gerekir.
- Native klasörler ve pod kurulumu gibi işleri ajana bırakırken test ve manuel doğrulama zorunludur.

Gemini CLI, React Native proje klasöründe terminalde `gemini` komutuyla başlatılır; GEMINI.md dosyasıyla proje komutlarını ve kurallarını bildiğinizde navigasyon, native modül, Metro ve Jest işlerini doğrudan yönetebilir. Bu rehber, mevcut React Native bilginizi ajanla verimli kullanmanız için pratik bir çalışma düzeni sunar.

## Gemini CLI React Native işlerine neden uygun?
React Native projeleri genellikle çok katmanlıdır: JavaScript/TypeScript mantığı, platforma özel dosyalar, Metro yapılandırması, native modüller ve Jest testleri. [Gemini CLI](/ajanlar/gemini-cli/) tüm repo’yu okuyup değişiklikleri dosya bazında uygulayabildiği için bu katmanlar arasında tutarlı düzenlemeler yapabilir. Örneğin bir ekran eklerken hem bileşeni oluşturur, hem React Navigation navigatörünü günceller, hem de route tipini düzeltir. Aynı şekilde Jest’te çıkan native modül hatasını `jest.setup.js` içine mock ekleyerek çözer.

Ajanın en büyük avantajı, React Native’in platforma özel dosya yapısını bilmesidir: `Button.ios.tsx` ve `Button.android.tsx` gibi ayrım gerektiren durumlarda uygun dosyaları oluşturup import’ları otomatik yönetebilir. Expo managed workflow’da native klasörlerin olmadığını anlar ve `expo install` gibi komutları önerebilir; bare workflow’da ise `pod install` ve `gradle` senkronizasyonu gerektiğini bilir. Yine de bu bilgiye körü körüne güvenilmemeli; çünkü ajanın eğitim verisi belirli bir sürüme göre olabilir ve projenizdeki gerçek yapılandırma farklılık gösterebilir. Bu yüzden GEMINI.md ile projenin gerçek durumunu aktarmak kritiktir.

## Projeyi ajan için hazırlama ve GEMINI.md
En önemli adım proje köküne GEMINI.md eklemektir. Ajan bu dosyayı her oturumda okur; komutları bilmeden tahmin yürütmesini önler. React Native projesi için şunları yazın: kullanılan paket yöneticisi, Expo mu bare mi, geliştirme/test/lint komutları, klasör yapısı, native klasörler için kurallar, Jest mock stratejisi, TypeScript durumu. Ayrıca `npx expo start --clear` gibi Metro önbellek temizleme komutunu belirtin; ajan bu komutu kendiliğinden bilmeyebilir. [Gemini CLI nasıl kullanılır](/blog/gemini-cli-nasil-kullanilir/) rehberindeki genel kurulum adımlarını uyguladıktan sonra aşağıdaki gibi bir GEMINI.md başlangıç noktası yeterlidir.

```markdown
# GEMINI.md

## Komutlar
- Bağımlılık: `npm ci`
- Geliştirme: `npx expo start` (Expo) veya `npx react-native start` (bare)
- Test: `npx jest --runInBand`
- Lint: `npx eslint .`
- Tip: `npx tsc --noEmit`
- Native rebuild: `npx expo run:ios` / `npx expo run:android`

## Klasörler
- `src/` uygulama kodu; `src/navigation/` React Navigation; `src/screens/`, `src/components/`
- `__tests__/` Jest testleri
- `android/` ve `ios/` native klasörler: sadece açık istek varsa düzenle.

## Kurallar
- React Native 0.7x, React Navigation 7.x, TypeScript strict.
- Yeni ekran `src/screens/` altına, navigatörde kayıt etmeden olmaz.
- Native modül ya da pod gerektiren değişiklikte `pod install` çalıştır ve bunu commit mesajında belirt.
- Jest mock'ları için `jest.setup.js` kullan; native modülleri mocklamadan test yazma.
- Metro önbellek hatası varsa `npx expo start --clear` öner.
```

Bu dosyadaki `Komutlar` bölümü, ajanın test veya lint çalıştırması gerektiğinde doğru komutu seçmesini sağlar; `Klasörler` bölümü yanlış dosyaya dokunmayı engeller; `Kurallar` ise React Native’e özgü tuzakları önceden haber verir. GEMINI.md’yi proje geliştikçe güncelleyin; özellikle yeni bir native modül eklendiğinde veya test stratejisi değiştiğinde dosyayı güncellemezseniz ajan eski varsayımlarla çalışır. Ajanın GEMINI.md’yi kendiliğinden değiştirmesine izin vermeyin; bu dosya sizin kontrolünüzde kalmalıdır.

## Çalışma döngüsü: plan, küçük adım, test, diff
Terminalde proje klasöründeyken `gemini` yazıp Enter’a basın. Ajan açıldığında önce kısa ve net bir görev verin; tüm projeyi baştan yazmasını istemeyin. Her turdan sonra `git diff` ile değişiklikleri inceleyin, ajanın çalıştırdığı komutların çıktısına bakın. Eğer testler kırılırsa hatayı ajanla paylaşın. [Kodlama ajanları için prompt nasıl yazılır](/blog/kodlama-ajanlari-icin-prompt-yazmak/) yazısındaki ilkeleri React Native bağlamına uyarlayın.

Pratik döngü şöyle işler: önce ajanın plan önermesini isteyin, örneğin "React Navigation’a `Profil` ekranı eklemeden önce adımlarını listele". Ajan; bileşen oluşturma, navigatöre kayıt, route tipini güncelleme, test yazma gibi adımları sıralayacaktır. Bu planı inceleyin; eksik veya riskli gördüğünüz adımları düzeltmesini isteyin. Onayladıktan sonra uygulamasını söyleyin. Ajan değişiklikleri yaptıktan sonra siz `npx jest --runInBand` komutunu kendiniz çalıştırın (veya ajanın çalıştırmasını isteyin) ve `git diff` ile tam olarak ne değiştiğini görün. Bu döngüyü her görev için tekrarlayın; asla birden fazla büyük değişikliği tek turda yapmasına izin vermeyin.

Örnek promptlar:

- React Navigation 7’de `Profil` ekranını ekle; `src/navigation/AppNavigator.tsx` içine kaydet, route parametrelerini tiplendir ve mevcut testleri çalıştır.
- Jest’te `@react-native-async-storage/async-storage` native modül hatası veriyor; `jest.setup.js` içine gerekli mock’u ekle ve `npm test -- --runInBand` çalıştır.
- `FlatList` render performansını iyileştir; `renderItem` fonksiyonunu `useCallback` ile sarmala, `keyExtractor` ekle ve değişiklikleri göster.
- Metro `ENOENT` hatası döndürüyor; log dosyasını incele, muhtemel önbellek sorununu `npx expo start --clear` ile çöz ve doğrula.
- Derin bağlantı için mevcut `Linking` API’sini kullan; navigasyon konfigürasyonunu güncelle, ekranı test et ve commit mesajı öner.

## Tipik görevler ve dikkat edilecek noktalar
Gemini CLI şu React Native görevlerinde iyi çalışır: TypeScript tip hatalarını düzeltme, React Navigation ekran ekleme, Jest mock ve testlerini yazma, platforma özel dosyalar oluşturma, StyleSheet düzenleme, bağımlılık sürümlerini güncelleme. Ancak şu alanlarda sıkı denetim gerekir: native klasör düzenlemeleri (`ios/`, `android/`), pod kurulumu ve gradle senkronizasyonu, Expo managed ile bare workflow arasındaki farklar, Metro önbellek sorunları, React Hooks kuralları ve native modüllerin gerçek cihazda davranışı. Ajan bazen doğrudan `ios/` altında değişiklik yapmaya çalışabilir; bunu yalnızca açıkça istediğinizde yapmasını GEMINI.md’ye yazın.

| Görev | İyi prompt | Ajanın tipik hatası |
|-------|------------|---------------------|
| Yeni ekran | React Navigation’a `Ayarlar` ekranını ekle, route tipini güncelle, test yaz. | Navigatör tipini güncellemeden ekran ekleme |
| Native modül mock | Jest’te bu native modülü `jest.setup.js` içinde mockla, hatayı göster. | Gerçek native çağrıyı test ortamında taklit etmeden düzeltmeye çalışma |
| Metro hatası | Metro logunu incele, önbellek temizleme komutunu çalıştır, doğrula. | `--clear` gibi gerçek komutları kullanmak yerine varsayımsal çözüm üretme |
| Platforma özel bileşen | Android için ayrı bileşen yaz, `.android.tsx` dosyası oluştur, import’u güncelle. | Ortak dosyaya `Platform.OS` koşulu ekleyip dosya yapısını bozma |

Bu tabloda görülen hataların çoğu, ajanın React Native projesinin çalışma bağlamını tam anlamadan hızlı çözüm üretmesinden kaynaklanır. Özellikle native modül eklerken sadece JavaScript tarafını değiştirip `pod install` veya `gradle` senkronizasyonunu atlayabilir; bu durumda build hatası alırsınız. Aynı şekilde React Navigation’da ekran eklerken `RootStackParamList` tipini güncellemeyi unutabilir, bu da tip hatalarına yol açar. Metro hatalarında ise gerçek log çıktısını okumadan varsayımsal çözümler önerebilir; bu yüzden ajanın her zaman terminal çıktısını paylaşmasını isteyin.

## React Native’de test ve doğrulama
Ajan her değişiklikten sonra testleri çalıştırmalıdır; GEMINI.md’de `npm test -- --runInBand` veya `npx jest --runInBand` komutunu tanımlayın. React Native projelerinde Jest testleri bazen native modül ve ESM dönüşüm hataları verir; ajanın önce `jest.setup.js` dosyasını kontrol etmesini isteyin. Ayrıca `npx tsc --noEmit` ile tip kontrolü yapın; ajanın eklediği yeni ekranların route tiplerini güncellemediği durumları yakalar. Birim testler geçse bile UI davranışını simülatörde veya cihazda siz doğrulayın; ajanın çalıştırdığı komutlar yalnızca terminal çıktısı üretir, dokunma ve animasyonları göremez. Son olarak `git diff --stat` ile ajanın hangi dosyalara dokunduğunu özetleyin.

Doğrulama için şu sırayı izleyin: önce `npx tsc --noEmit` çalıştırın; tip hatası yoksa `npx eslint .` ile statik kontrol yapın; ardından `npx jest --runInBand` ile testleri koşun. Testler geçerse uygulamayı başlatıp ilgili ekranı manuel test edin. Native modül değişikliği varsa `pod install` veya `gradle sync` yapıldığından emin olun; ajan bunu atlamış olabilir. Özellikle iOS’ta yeni bir pod eklendiyse projeyi yeniden derleyin ve cihazda çalıştığını doğrulayın.

## Birden fazla ajanı tek React Native projesinde çalıştırmak: AgentVera
AgentVera, Gemini CLI dahil birçok terminal ajanını tek pencerede yan yana çalıştırır. React Native projesinde aynı anda navigasyon, Jest mock’ları ve native yapılandırma üzerinde çalışan ajanlar için en kritik özellik ayrı git worktree desteğidir: her ajan kendi çalışma kopyasında değişiklik yapar, böylece birbirlerinin dosyalarını ezmez. Tur bittiğinde ikinci bir model kod incelemesi yapar ve bulguları file:line olarak işaretler; Metro veya pod kurulum hatalarını yakalamak için değerlidir. Ayrıca her turun anlık görüntüsü tek tıkla geri alınabilir ve token bütçeleri günlük maliyeti sınırlar.

## Sonuç
Gemini CLI, React Native projelerinde doğru GEMINI.md ve küçük adımlı çalışma döngüsüyle ciddi zaman kazandırır; ancak native katman, Metro ve test mocks konularında sizin gözetiminiz şarttır. Ajanın ürettiği her diff’i inceleyin, testleri çalıştırın ve UI’ı manuel doğrulayın. Paralel çalışma ihtiyacınız varsa AgentVera’nın worktree ve checkpoint özellikleri işleri güvenli tutar.

## Sık sorulanlar

**Gemini CLI React Native projesinde nasıl başlatılır?** Proje klasöründe terminali açıp gemini yazmanız yeterlidir. Ajan repo’yu okur, GEMINI.md dosyanız varsa proje komutlarını ve kurallarını öğrenir; ardından görev vermeye başlayabilirsiniz.

**GEMINI.md dosyasına React Native için neler yazılmalı?** Paket yöneticisi, geliştirme/test/lint komutları, klasör yapısı, Expo veya bare workflow bilgisi, native klasörler için kurallar ve Jest mock talimatlarını yazın. Bu, ajanın komutları tahmin etmesini engeller ve React Native’e özgü hataları azaltır.

**Gemini CLI native modül ekleyebilir mi?** Evet, ancak pod kurulumu, gradle senkronizasyonu ve manifest değişiklikleri gerekebilir. Ajanın bu değişiklikleri yapmasına izin verin ancak her diff’i dikkatle inceleyin; yanlış native düzenleme build’i bozabilir.

**Gemini CLI ile React Native testleri nasıl çalıştırılır?** GEMINI.md içinde npx jest --runInBand komutunu tanımlayın ve her değişiklikten sonra ajanın bu komutu çalıştırmasını isteyin. Native modül hataları için jest.setup.js içine mock ekletmek genellikle ilk adım olmalıdır.

---

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