対象読者
- モバイルアプリを作ってみたいReactエンジニア
- モバイルアプリのリリース作業を手軽に行いたい方
前提環境
筆者の検証環境は以下の通りです。
- macOS Sequoia 15.2
- Node.js 23.6.0
- npm 10.9.2
- Expo 52.0.25
- React Native 0.76.6
React Nativeはプラットフォームに対して「ネイティブ」なツール
本連載は、React Nativeを生かしたモバイルアプリ開発フレームワークであるExpoと、そのアプリ開発を支援するSaaSであるExpo Application Service(EAS)を中心に解説しています。先日、Expoのためのアプリケーションサーバーを構築できるEAS Hostingが登場し、今後もExpoを中心としたエコシステムには大きな進化が期待できます。
本連載の後半では、EASおよびEAS Hostingについても解説する予定なのでご期待ください。
さて、後々の話はさておき、今回はReact NativeやExpoを通じてプラットフォームの機能を扱う観点から、各種モジュールを解説します。
プラットフォーム本来の機能≒ネイティブな機能
Kotlin+Android SDKやSwift+iOS SDKなどの、各プラットフォームで本来用意されている開発ツールを使って開発すると、より細やかにプラットフォームの機能を扱うことができ、実行時により高いパフォーマンスを得られる傾向があります。React Nativeのように、JavaScriptなどの別の言語で開発するケースは、経済合理性などの他の理由が総合的に考慮された結果であることが多いです。どちらがいいという話ではありませんが、プラットフォーム本来の開発ツールには、そういった特性があるという認識を持つべきです。
「本来の」という言い回しをしましたが、同様の意味で「ネイティブな」という表現を使うこともあります。実は、React Nativeという名前に含まれる「Native」は、このニュアンスで命名されており、「Reactを通じてプラットフォーム本来のUIを扱えるツール」という意味を持っています。実際にはUI以外にも、プラットフォーム側のAPIを扱えるので、React Nativeのエコシステムの中で「ネイティブ」という言葉が出てきたときは、概ね「Android SDK」や「iOS SDK」の機能を指していると思ってよいでしょう。
本記事では、React NativeやExpo SDKの中でも、プラットフォームの機能を便利に扱うためのモジュールを中心に解説していきます。