CodeBlanks Logo Icon CodeBlanks

Özet - Native modüller

NativeMethods, event ve TurboModules'ı birleştirerek bir native köprü yazarsın.

Özet - Native modüller

Bu grupta native modül, NativeMethods, platform-specific, native event ve TurboModules öğrendik. NativeModules tüm native modülleri taşır; NativeModules.Battery.getLevel() ile method çağrılır. Platform.OS ile platform ayrımı yapılır.

NativeEventEmitter ile native event'ler dinlenir; TurboModules ise yeni mimari ile JSI üzerinden hızlı çağrı sağlar. Şimdi bunları birleştirip basit bir native köprü iskeleti yazacağız.

Uygulama Özet - Battery seviyesi

getBattery işlevini tamamla. NativeModules'ü react-native'dan içe aktar. Platform.OS'yi de içe aktar. Platform.OS === 'android' ise NativeModules.Battery.getLevel() çağır ve döndür; değilse null döndür.

Başlangıç kodu

App.js
import { NativeModules, Platform } from 'react-native';

export async function getBattery() {
  // Android'de Battery modülünden seviye oku, değilse null döndür
}

Örnek çözüm

App.js
import { NativeModules, Platform } from 'react-native';

export async function getBattery() {
  if (Platform.OS === 'android') {
    return await NativeModules.Battery.getLevel();
  }
  return null;
}

Uygulama Özet - Event temizliği

useBluetooth hook'unu tamamla. NativeEventEmitter ile emitter oluştur. addListener('stateChanged', handler) ile dinle. useEffect dönüşünde sub.remove() çağır.

Başlangıç kodu

App.js
import { useEffect } from 'react';
import { NativeEventEmitter, NativeModules } from 'react-native';

export function useBluetooth(handler) {
  useEffect(() => {
    // emitter oluştur ve 'stateChanged' dinle
  }, []);
}

Örnek çözüm

App.js
import { useEffect } from 'react';
import { NativeEventEmitter, NativeModules } from 'react-native';

export function useBluetooth(handler) {
  useEffect(() => {
    const emitter = new NativeEventEmitter(NativeModules.Bluetooth);
    const sub = emitter.addListener('stateChanged', handler);
    return () => sub.remove();
  }, []);
}

Soru ve cevaplar

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

1 Akış parçalarını eşle

Kavram Anlamı
NativeModules Tüm modüller
Platform.OS İşletim sistemi
NativeEventEmitter Event dinler
TurboModules Yeni mimari

2 EventEmitter sınıfı

Soru
const emitter = new ____(NativeModules.Bluetooth);
Cevap
const emitter = new NativeEventEmitter(NativeModules.Bluetooth);

Açıklama: NativeEventEmitter native event'leri dinler.

İleri seviye bölümündeki tüm dersler