Özet - Native modüller
- React Native kursu
- İleri seviye
- Ders 72/83
- 5 dk
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
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
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
import { useEffect } from 'react';
import { NativeEventEmitter, NativeModules } from 'react-native';
export function useBluetooth(handler) {
useEffect(() => {
// emitter oluştur ve 'stateChanged' dinle
}, []);
}Örnek çözüm
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ı
const emitter = new ____(NativeModules.Bluetooth);
const emitter = new NativeEventEmitter(NativeModules.Bluetooth);
Açıklama: NativeEventEmitter native event'leri dinler.