Expo ile Native Modüller Kullanmanın Yolları
Expo ile Native Modüller Kullanmanın Yolları
Expo, React Native ile uygulama geliştirmeyi kolaylaştıran bir araçtır. Ancak, bazen özel işlevsellikler için native modüller kullanmak gerekebilir. Bu makalede, bare workflow kullanarak Expo ile native modüllerin nasıl kullanılacağını öğreneceğiz. Bu, daha özel işlevsellikler ve platforma özgü API'lere erişim sağlamak için oldukça önemlidir.
Bare Workflow Nedir?
Bare workflow, Expo uygulamanızı sıfırdan ayarlamanıza olanak tanır. Bu yöntem, uygulamanız üzerinde daha fazla kontrol sahibi olmanızı sağlar. Native modülleri kullanmak istediğinizde, bare workflow'a geçmeniz genellikle gereklidir. Bu noktada, iOS ve Android projelerinizi manuel olarak yönetmeniz gerekecektir.
Bare Workflow'a Geçiş
Expo uygulamanızın bare workflow'a geçiş yapması için aşağıdaki komutu çalıştırmalısınız:
npx expo prebuild
Bunu yaptıktan sonra, projeyi Xcode veya Android Studio kullanarak açabilir ve native modülleri eklemeye başlayabilirsiniz.
Native Modül Örneği
iOS İçin Native Modül
Bir native modül oluşturmak için önce iOS klasöründe aşağıdaki kodu ekleyebilirsiniz. Bu örnek, cihazın pil seviyesini alacak bir modületir.
#import <React/RCTBridgeModule.h>
@interface BatteryModule : NSObject <RCTBridgeModule>
@end
@implementation BatteryModule
RCT_EXPORT_MODULE();
RCT_EXPORT_METHOD(getBatteryLevel:(RCTResponseSenderBlock)callback) {
UIDevice *device = [UIDevice currentDevice];
[device setBatteryMonitoringEnabled:YES];
float batteryLevel = device.batteryLevel;
callback(@[@(batteryLevel)]);
}
@end
Android İçin Native Modül
Native modülü Android tarafında oluşturmak için MainActivity.java dosyasına aşağıdaki kodu ekleyin:
public class BatteryModule extends ReactContextBaseJavaModule {
public BatteryModule(ReactApplicationContext reactContext) {
super(reactContext);
}
@Override
public String getName() {
return "BatteryModule";
}
@ReactMethod
public void getBatteryLevel(Promise promise) {
BatteryManager batteryManager = (BatteryManager) getReactApplicationContext().getSystemService(Context.BATTERY_SERVICE);
int batteryLevel = batteryManager.getIntProperty(BatteryManager.BATTERY_PROPERTY_CAPACITY);
promise.resolve(batteryLevel);
}
}
Yukarıdaki örneklerde görüldüğü gibi, iOS ve Android için özel işlevsellikler eklemek oldukça basittir. Modülünüzü kullanmak için React Native komponentinizden çağrıda bulunabilirsiniz.
Sonuç
Expo ile native modüller kullanmak, uygulamanıza daha fazla işlevsellik katmanın harika bir yoludur. Bare workflow'a geçiş yaparak ve doğru native modülleri oluşturarak, ihtiyaç duyduğunuz özel fonksiyonları Projenize ekleyebilirsiniz. Bu makalede oluşturduğumuz örnekler, bare workflow kullanarak nasıl daha geniş bir işlevsellik elde edebileceğinizi göstermektedir. Uygulama geliştirme sürecinde başarılı olmanızı dileriz!

Yorum Gönder