New Architecture

New Architecture Migrasyon Rehberi

New ArchitectureMigration

newArchEnabled kararından bağımlılık matrisine, interop borcundan staged rollout ve rollback binary’ye kadar sahada işe yarayan migrasyon sırası.

EG

Emre Gürbüz

25 Temmuz 2026 · 4 dk okuma

New Architecture; Fabric (yeni renderer) + Turbo Modules (yeni native API) + Bridgeless / JSI (doğrudan JS↔native çağrı) birleşimidir. Tek bir Gradle flag’i değildir — sözleşme modernizasyonudur: Spec, codegen, C++ shadow tree, lazy native init.

Orta/büyük uygulamalarda önce envanter, sonra kademeli açılış, sonra metrik gerekir. Acele eden ekipler “New Arch’ı kapattık” post-mortem’i yazar.

Migrasyona kod yazarak başlamayın: envanter

İlk sprint envanter sprint’i olmalı:

  1. Bağımlılıklar: Her native lib için New Arch / Fabric / Turbo notu
  2. İç native modüller: NativeModules kullanan JS import’ları
  3. Custom view’lar: requireNativeComponent ve eski ViewManager
  4. Kritik journey: Auth, ödeme, kamera, harita, push, deep link

Kırmızı lib varsa: upgrade, fork, replace veya New Arch’ı ertele. “Belki çalışır” production stratejisi değildir.

Bağımlılık matrisi şablonu

KütüphaneSürümFabricTurboIssueAksiyon
reanimated3.xN/AUpgrade
eski-maps1.x#123Replace veya ertele

Matris yeşil olunca “New Arch açalım” kararı verilir.

Açma sırası

1) Toolchain baseline

Hermes varsayılan olmalı. Eski JSC + New Arch = debug/release tutarsızlığı. RN sürümü maintainer’ın önerdiği minimumda olsun.

2) Android önce (sık tercih)

# android/gradle.properties
newArchEnabled=true

Android iterasyonu genelde daha hızlıdır. Önemli olan tek platformda stabilize edip diğerine geçmek.

3) iOS ikinci dalga

Pod install, clean build, codegen çıktısının Xcode target’ına girdiğini doğrulayın.

4) Bridgeless

RN sürümüne göre ayrı flag veya New Arch ile birlikte gelir. “Fabric açık ama bridge hâlâ ortada” hibrit dönemleri vardır — interop uyarılarını izleyin.

Interop: dost ve tuzak

Interop (eski modüllerin New Arch altında geçici çalışması) geçişi hızlandırır; üçüncü parti henüz Spec’e geçmemişse uygulama ayakta kalır.

Tuzaklar:

  • “Tamam migrate olduk” illüzyonu
  • Performans beklentisi — interop bridge’e yakın maliyet taşıyabilir
  • Yeni kod interop’a eklenmemeli

Strateji: Interop’u ölçülen borç sayın. Her sprint N modül Spec’e; sayı azalmalı, artmamalı.

İç modül migrasyon sırası

  1. En az bağımlı, en çok test edilenle başlayın
  2. Spec → codegen → Android/iOS implement → JS import
  3. Feature flag ile eski/yeni paralel (yüksek risk)
  4. E2E smoke her migrasyonda
  5. ProGuard keep güncelle

Custom view migrasyonu genelde daha pahalıdır — kritik olmayanları sona bırakın.

Test matrisi

KatmanNe test edilirAraç
UnitSpec tipleri, JS logicJest
Native smokeTurbo Module metotlarıIntegration
UIFabric custom viewSnapshot
E2EKritik journeyDetox / Maestro
PerfTTI, JS/UI FPSPerf Monitor, systrace
ReleaseR8 minify açıkCI release

Debug yeşil, release kırmızı — New Arch + R8’de klasik.

Rollback: OTA yetmez

New Arch OTA ile kapanmaz. Yanlış Fabric bug’ı store binary ister.

  • newArchEnabled=false artifact’ını aynı commit’ten üretebilecek CI
  • Staged rollout: %5 → %25 → %100; crash-free karşılaştırması
  • Rollback eşiği önceden tanımlı
  • Feature flag yalnızca JS davranışını keser — native renderer değil

Metrikler

  • Crash-free sessions: New Arch cohort vs kontrol
  • ANR rate (Android)
  • Cold start p50/p95
  • Checkout / signup conversion
  • Support ticket trend
  • JS FPS / UI FPS

En az iki haftalık production verisi — bir gün yeşil yetmez.

Sık başarısızlık nedenleri

  • Reanimated / Gesture Handler major upgrade atlamak
  • Monorepo codegen path hataları
  • ProGuard’ın generated sınıfları yemesi
  • Release minify farkını test etmemek
  • Tek QA cihazı (yalnızca flagship)
  • Third-party Fabric desteği varsayımı
  • Interop borcunu sıfır sanmak

Production checklist

  1. Bağımlılık matrisi tamam — kırmızı lib aksiyonu net
  2. İç modüller Spec planı backlog’da
  3. newArchEnabled tek platformda açıldı, stabilize
  4. E2E smoke yeşil (auth, pay, kamera, push)
  5. İkinci platform açıldı
  6. Release minify smoke geçti
  7. Staged store rollout başladı (%5)
  8. Interop borç backlog’u azalıyor
  9. Rollback binary hazır ve test edildi
  10. Metrik dashboard New Arch cohort izliyor

Özet

New Architecture migrasyonu bir bayrak değil, sözleşme modernizasyonudur. Başarı; lib envanteri, kademeli açılış, interop’u borç sayma, release smoke ve store metrikleriyle ölçülür. Turbo, Fabric ve bridgeless’i birlikte planlayın.


Diğer yazılar