CodeBlanks Logo Icon CodeBlanks

Yeni mimari nedir?

React Native yeni mimarisini öğrenirsin.

Yeni mimari nedir?

React Native 0.68'den itibaren yeni mimari kullanıma sunuldu. Eski köprü (bridge) yerine doğrudan JSI tabanlı iletişim gelir. İki ana parça var: Fabric (yeni UI render) ve TurboModules (yeni native modül sistemi).

Yeni mimari daha hızlı render, daha az bellek kullanımı ve senkron native çağrıları mümkün kılar. React Native 0.74'ten itibaren varsayılan olarak açıktır.

Fabric ve TurboModules

Fabric render katmanıdır. Eski UI manager yerine geçer; bileşen ağacını daha verimli çizer, eşzamanlı (concurrent) render desteği verir. TurboModules ise native modüllerin JS tarafına JSI üzerinden bağlanmasıdır; eski NativeModules yerini alır.

Eski requireNativeComponent yerine Fabric'in codegenNativeComponent kullanımı gelir. Native modüller TurboModuleRegistry ile kaydedilir. Bu sayede hem render hem de native çağrılar daha hızlı işler.

Yeni mimariyi açma

Yeni mimari android/gradle.properties ve iOS tarafında Podfile ayarları ile açılır. React Native 0.74+ projelerde varsayılan gelir; yine de newArchEnabled=true bayrağı eski projelerde elle eklenir.

Yeni bir Expo projesi bunu otomatik yapar. Mevcut kodda Interacitable gibi eski API'ler çalışmaz; yerine react-native-gesture-handler kullanılır.

Uygulama Yeni mimari bayrağını ekle

Android gradle.properties dosyasında yeni mimariyi açan bayrağı ekle. Değer true olsun.

Başlangıç kodu

App.js
# android/gradle.properties
# Yeni mimari bayrağını buraya ekle

android.useAndroidX=true

Örnek çözüm

App.js
# android/gradle.properties
newArchEnabled=true

android.useAndroidX=true

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Yeni mimari neyi kaldırır?

  • FlatList bileşenini
  • Köprüyü (bridge) Doğru cevap
  • useEffect hook'unu
  • StyleSheet API'sini

Açıklama: Yeni mimari köprüyü kaldırır, JSI ile doğrudan erişim verir.

2 Yeni render katmanını yaz

Soru
const Fabric = require('____');
Cevap
const Fabric = require('Fabric');

Açıklama: Fabric yeni render katmanıdır.

Uzman bölümündeki tüm dersler