以前React Nativeに触れたのは作りながら学ぶ React入門を書いていた2017年春ころでした。
おもしろい技術だと思いましたが、私自身はSwiftでiOSアプリを作れるので、その後React Nativeに触れる事はありませんでした。
しかし、久しぶりに触れてみると大きく進歩していることに驚きました。
Expoという新しい開発環境
開発環境が2つに増えていました! React Native CLIとExpoです。
React Native CLIが昔から在った開発環境の延長でiOSアプリを開発するにはMac(Xcode)が必要です。従来のスマオフォ開発の延長上にあるものだと思います。
それに対してExpoは、制限がありますがWindows上でもiOSアプリの開発も行えます!
React NativeはiOS、Androidに加え、Webもサポートしています。
Expoでは開発は基本Webで行い、スマフォでの確認は専用アプリ(iOSではExpo Client、AndroidはExpo)をスマフォにインストールする事で動作・確認する事ができます。
当然App Store、Google Playで公開できるオブジェクトも作成できます(App Storeに公開するにはApple Developer Program、Mac等が必要になります)。
Expoの制限は、Swift等で作ったネイティブ・ライブラリーを組み込む事が出来ない点です。ただし、React NativeからカメラなどスマフォのハードウェアやOSにアクセスするためのライブラーは多数あるので特殊な事を行わないかぎりは問題なと思われます。
Core Componentsの進化
React NativeはiOS, Androidをサポートしていますが、iOSとAndroidではUIは違います。3年前にReact Nativeを使った時点ではiOS専用、Android専用のUIコンポーネントが多数ありましたが、現在はiOS/Android専用のコンポーネントは僅かになっています。
iOS, Androidの違いを内包した抽象的なコンポーネントが増えたようです。これらに付いては現在のReact Nativeでのプログラミングを行いながら学んで行こうと思います。
React Native for Windows + macOS
2019年にMicrosoftがWindows,Xbox等に対応したReact Native for Windowsを発表しましたが、2020年にはmacOSのサポートも加えたReact Native for Windows + macOSを発表しました。
ひょっとすると1つのコードでiOS, Android, Windows, macOSに対応したアプリを作る事ができるのでしょうか 😀
つづく…
次回は昔作ったReact Nativeアプリを最新のReact Nativeで動かしてみたいと思います。