Flipper uzun süre React Native’in “her şey dahil” debug cebiydi: network, layout, crash plugin’leri — tek pencerede. Bakım maliyeti, New Architecture uyum zorluğu ve resmi yön değişikliği onu varsayılandan çıkardı.
Tek bir “Flipper 2” yok; best-of-breed birleşimi var. Senior debug: plugin aramaktan çok — JS mi native mi, dev mi release mi, Hermes source map var mı — sorularını hızlı cevaplamaktır.
Ne değişti ve neden?
- New Architecture: Fabric, Turbo Modules ve JSI, Flipper’ın hook noktalarını değiştirdi
- Hermes varsayılanı: Chrome Remote Debugging (eski JSC dönemi) kırılgan hale geldi
- Bakım yükü: Plugin ekosistemi RN sürüm hızına yetişemedi
- Resmi yön: React Native DevTools (CDP tabanlı), LogBox, platform profiler’ları
Chrome’da “Debug JS Remotely” New Arch projelerinde önerilmez — farklı motor, yanıltıcı stack. Hermes ile debug RN DevTools veya platform araçları üzerinden yapılmalı.
Eski Flipper plugin’lerinizi envanterleyin. Her RN minor’da uyumsuzluk riski birikir — geçiş planını backlog’a yazın.
Modern JavaScript debugging
RN DevTools, Chrome DevTools Protocol (CDP) üzerinden Hermes’e bağlanır. Breakpoint, call stack, console, scope — web’e yakın deneyim.
DevTools’u açmak için:
npx react-native start
# Cihazda Dev Menu → Open DevTools (sürüme göre menü metni değişir)
React DevTools ile component tree ve Profiler ayrı çalışır. JS logic hatası → RN DevTools; render patolojisi → React DevTools Profiler.
LogBox disiplini
Ignore list ile uyarıları “süslemeyin” — her ignore teknik borçtur. Haftalık review yapın. console.log spam’i JS thread’i yer; production’da verbose log kapalı olsun.
Network inspect: Flipper Network yerine
Alternatifler:
- Proxyman / Charles / mitmproxy: sistem proxy, HTTPS decrypt (debug build’de cert pinning gevşetilmeli)
- Backend correlation: request-id ile client ↔ server log
- Thin fetch wrapper: kendi logger — PII redaction zorunlu
Production’da full body log yasak; breadcrumb + status + latency yeterli. Cert pinning’i yalnızca internal debug flavor’da kapatın.
Native crash, ANR ve JS error ayrımı
| Belirti | Katman | Araç |
|---|---|---|
| Redbox, JS stack | JavaScript | RN DevTools, LogBox |
| App kapanması, native stack | Native | Logcat, Console.app, Crashlytics |
| Donma, “App not responding” | ANR (Android) | ANR trace, Perfetto |
| Sessiz crash (release) | Native + obfuscation | dSYM, mapping.txt, source map |
JS redbox production’da yoktur. Source map + native symbol olmadan stack anlamsızdır.
Zincir: Metro bundle → Hermes bytecode → Sentry/Crashlytics upload. Her release’de üç artifact: JS source map, Android mapping.txt, iOS dSYM.
Native modül debug
Turbo Module / JSI hataları JS’te şöyle görünür:
TurboModuleRegistry.getEnforcing(...): 'X' could not be foundNativeModule X is null- Fabric “View config not found for component X”
JS stack’e bakıp bitirmeyin. Android Studio veya Xcode’da native breakpoint koyun. Generated kodu okuyun, init order’ı takip edin.
Fabric layout debug
React DevTools yetmez. Android Layout Inspector ve iOS View Hierarchy Debugger native view tree’yi gösterir. Overdraw GPU profiler ile; layout native hierarchy ile triage edin.
Önerilen toolkit (2026)
- RN DevTools + React DevTools — JS debug ve render
- Proxyman veya Charles — network (debug flavor)
- Sentry / Crashlytics — production crash
- Perfetto / Instruments — performans
- Maestro / Detox — repro otomasyonu
- Logcat / Console.app — native log
- (Opsiyonel) Flipper — yalnızca kritik plugin varsa, izole debug build’de
Toolkit’i ekip runbook’una yazın. Yeni gelen “Flipper nerede?” diye sormasın.
Triage ağacı: ilk 60 saniye
Crash/bug raporu geldi
├─ Repro dev build'de var mı?
│ ├─ Evet → RN DevTools / React DevTools
│ └─ Hayır → Release build + symbolicated stack
├─ Stack JS mi native mi?
│ ├─ JS → Source map doğru release'e mi bağlı?
│ └─ Native → dSYM / mapping.txt var mı?
├─ Network involved mi?
│ ├─ Evet → Proxyman + backend correlation
│ └─ Hayır → UI/perf trace
└─ Native modül involved mi?
└─ Evet → Native breakpoint + codegen review
Production checklist
- Ekip “Flipper yok” runbook’unu biliyor
- Source map upload CI’da otomatik
- dSYM + mapping.txt upload otomatik
- Network inspect için debug-only cert stratejisi dokümante
- Native vs JS triage ağacı wiki’de
- LogBox ignore list review periyodu tanımlı
- Low-end cihazda repro alışkanlığı
- PII redaction debug logger’larda aktif
Özet
Flipper’ın geri çekilmesi tooling’in bitişi değil; dağınık ama daha doğru araçlara geçiştir. RN DevTools Hermes ile uyumlu JS debug sunar; network için proxy; crash için Sentry + symbol; native için platform IDE. Katmanı doğru tespit et, doğru build’de repro al, doğru symbol’le stack’i oku.