ネイティブモジュール入門
ネイティブモジュールとネイティブコンポーネントは、レガシーアーキテクチャで使用される安定した技術です。新しいアーキテクチャが安定した際には、将来的に非推奨になる予定です。新しいアーキテクチャでは、同様の結果を得るためにTurbo ネイティブモジュールとFabric ネイティブコンポーネントを使用します。
React Native アプリケーションが、JavaScript でデフォルトで利用できないネイティブプラットフォーム API (例えば、Apple Pay や Google Pay にアクセスするためのネイティブ API) にアクセスする必要がある場合があります。既存の Objective-C、Swift、Java、または C++ ライブラリを JavaScript で再実装することなく再利用したり、画像処理などのために高性能なマルチスレッドコードを記述したりしたい場合もあるでしょう。
NativeModule システムは、Java/Objective-C/C++ (ネイティブ) クラスのインスタンスを JS オブジェクトとして JavaScript (JS) に公開し、それにより JS 内から任意のネイティブコードを実行できるようにします。この機能は通常の開発プロセスの一部になるとは考えていませんが、存在することは不可欠です。React Native が JS アプリケーションに必要なネイティブ API を公開していない場合は、自分で公開できる必要があります。
ネイティブモジュールのセットアップ
React Native アプリケーション用のネイティブモジュールを作成するには、さまざまな方法があります。
- React Native アプリケーションにインポートできるローカルライブラリを作成する。詳細については、ローカルライブラリの作成ガイドをご覧ください。
- React Native アプリケーションの iOS/Android プロジェクト内で直接作成する
- 自分や他の React Native アプリケーションで依存関係としてインストールできる NPM パッケージとして作成する。
このガイドでは、まず React Native アプリケーション内で直接ネイティブモジュールを実装する方法を説明します。ただし、次のガイドで作成するネイティブモジュールは NPM パッケージとして配布できます。関心がある場合は、ネイティブモジュールを NPM パッケージとして設定するガイドをご覧ください。
はじめに
次のセクションでは、React Native アプリケーション内で直接ネイティブモジュールを構築する方法に関するガイドを説明します。前提条件として、作業する React Native アプリケーションが必要です。まだお持ちでない場合は、こちらの手順に従って React Native アプリケーションを設定してください。
React Native アプリケーション内の JavaScript から iOS/Android ネイティブカレンダー API にアクセスして、カレンダーイベントを作成したいと想像してください。React Native は、ネイティブカレンダーライブラリと通信するための JavaScript API を公開していません。ただし、ネイティブモジュールを使用すると、ネイティブカレンダー API と通信するネイティブコードを記述できます。その後、React Native アプリケーションで JavaScript を介してそのネイティブコードを呼び出すことができます。