Skip to content

React Native'de Yeni Architechture (Fabric) ile Performans Optimizasyonu

React Native'de Yeni Architecture (Fabric) ile Performans Optimizasyonu React Native ekosistemi, kullanıcı deneyimini ve uygulama performansını artırmak için sürekli olarak gelişiyor. Bu gelişmelerden en önemlisi, yeni **Fabric Architecture**'ın t...

Published by Adem Hatay on

AI ile Üretilmiştir

📝 Bu blog yazısı yapay zeka tarafından oluşturulmuş, güncel teknoloji bilgileri ve best practices içerir.

- React Native'de Yeni Architechture (Fabric) ile Performans Optimizasyonu

React Native’de Yeni Architecture (Fabric) ile Performans Optimizasyonu

React Native ekosistemi, kullanıcı deneyimini ve uygulama performansını artırmak için sürekli olarak gelişiyor. Bu gelişmelerden en önemlisi, yeni Fabric Architecture’ın tanıtılması oldu. Bu yazıda, Fabric’in ne olduğunu, nasıl çalıştığını ve React Native uygulamalarınızın performansını nasıl optimize edebileceğinizi detaylı bir şekilde inceleyeceğiz.

Fabric Architecture Nedir?

Fabric, React Native’in yeni renderer mimarisidir. Eski mimariye göre birçok iyileştirme sunar:

  • Daha hızlı render süreleri
  • Daha az bellek kullanımı
  • Daha iyi thread yönetimi
  • JavaScript ve native kod arasında daha verimli iletişim

Fabric’in temel amacı, UI işlemlerini daha verimli hale getirmek ve kullanıcı etkileşimlerine daha hızlı yanıt vermektir.

Fabric’in Temel Avantajları

1. Thread Modeli İyileştirmeleri

Eski mimaride, UI güncellemeleri sadece main thread üzerinde çalışıyordu. Fabric ile birlikte:

  • JavaScript thread’i ağır hesaplamaları yapar
  • Background thread’ler UI güncellemelerini hazırlar
  • Main thread sadece son render işlemlerini yapar

Bu da ana thread’in tıkanmasını önler ve daha akıcı bir kullanıcı deneyimi sağlar.

2. Synchronous Layout Calculation

Fabric, layout hesaplamalarını senkron olarak yapabilir. Bu özellikle animasyonlar ve hızlı etkileşimler için büyük bir avantaj sağlar.

// Fabric ile senkron layout örneği
function MyComponent() {
  const [width, setWidth] = useState(0);

  const onLayout = (event) => {
    // Senkron olarak layout bilgisi alınır
    setWidth(event.nativeEvent.layout.width);
  };

  return <View onLayout={onLayout} />;
}

3. Daha Verimli Shadow Tree

Fabric, bileşen ağacını (shadow tree) daha verimli bir şekilde yönetir. Bu sayede gereksiz render işlemleri önlenir ve performans artar.

Fabric ile Performans Optimizasyon Teknikleri

1. Bileşenleri Doğru Şekilde Optimize Edin

Fabric’in sunduğu avantajlardan tam olarak yararlanmak için bileşenlerinizi optimize etmelisiniz:

// Optimize edilmiş bileşen örneği
import React, { memo } from 'react';
import { View, Text } from 'react-native';

const OptimizedComponent = memo(({ title, count }) => {
  console.log('Render:', title);
  return (
    <View>
      <Text>{title}</Text>
      <Text>Count: {count}</Text>
    </View>
  );
});

export default OptimizedComponent;

2. Layout Animasyonları için Reanimated 2 Kullanın

Fabric ile birlikte Reanimated 2 kütüphanesi daha da güçlendi. Animasyonlarınızı main thread dışında çalıştırabilirsiniz:

import Animated, {
  useSharedValue,
  useAnimatedStyle,
  withSpring,
} from 'react-native-reanimated';

function AnimatedBox() {
  const offset = useSharedValue(0);

  const animatedStyles = useAnimatedStyle(() => {
    return {
      transform: [{ translateX: offset.value * 255 }],
    };
  });

  return (
    <>
      <Animated.View style={[styles.box, animatedStyles]} />
      <Button
        onPress={() => {
          offset.value = withSpring(Math.random());
        }}
        title="Move"
      />
    </>
  );
}

3. Listeler için Optimize Edilmiş Bileşenler Kullanın

Büyük listeler için FlatList yerine FlashList gibi Fabric-optimize kütüphaneleri tercih edin:

import { FlashList } from '@shopify/flash-list';

function LargeList() {
  const data = Array.from({ length: 1000 }, (_, i) => ({ id: i, title: `Item ${i}` }));

  return (
    <FlashList
      data={data}
      renderItem={({ item }) => <Text>{item.title}</Text>}
      estimatedItemSize={200}
      keyExtractor={(item) => item.id.toString()}
    />
  );
}

Fabric’e Geçiş Süreci

1. React Native Sürümünüzü Güncelleyin

Fabric’i kullanabilmek için React Native 0.68 veya üzeri bir sürüm kullanmalısınız.

2. Gradle ve CocoaPods Ayarlarını Güncelleyin

Android için (gradle.properties):

android.useAndroidX=true
android.enableJetifier=true

iOS için (Podfile):

platform :ios, '12.4'
install! 'cocoapods', :deterministic_uuids => false

3. Yeni Architecture Flag’ini Aktif Edin

iOS için (Podfile):

use_react_native!(
  :path => config[:reactNativePath],
  :fabric_enabled => true
)

Android için (gradle.properties):

newArchEnabled=true

Önemli İpuçları ve Tavsiyeler

  1. Yavaş Geçiş Yapın: Uygulamanızı parça parça Fabric’e geçirin. Önce küçük bileşenlerle başlayın.

  2. Performans Testleri Yapın: Her değişiklik sonrası performansı ölçün. Flipper veya React Native


💡 Hızlı Özet

Bu yazıda - React Native’de Yeni Architechture (Fabric) ile Performans Optimizasyonu konusunu detaylı olarak ele aldık. Öğrendiklerinizi projelerinizde uygulayarak deneyim kazanmayı unutmayın!

🔗 Faydalı Kaynaklar:

📱 Beni Takip Edin:

⭐ Bu yazı faydalı olduysa, projenizde kullanmaya başladığınızda deneyimlerinizi benimle paylaşmayı unutmayın!