Nativeを使ったアプリの作成と実行までの流れを解説します。Nativeの仕組みはよくできたものですが、そのまま扱おうとすると必要な知識が多岐にわたってしまい大変です。Nativeを簡単に扱えるように抽象化されたツール「Expo」を使います。ReactやJavaScriptによるWebアプリ開発では、よくある形でのセットアップになります。検証環境は以下の通りです。2.6.14Node.js環境が準備できていない方は別途インストールしてください。Mac環境であればnvmやnodebrew、Windows環境であればnvm-windows等のバージョン管理ツールの利用をおすすめします。Nativeがブラウザの方法論でUIを実装しつつも、UI以外の構造としてはモバイルアプリに近いものであると説明しました。実際にJavaScriptで利用できる道具としては、何が用意されているのでしょうか。こちらの公式ドキュメントを見てみましょう。NativeがJavaScriptに対して提供している機能は、大きく分けて、コンポーネントとモジュールに分類されます。代表的なコンポーネントとして、表1などがあります。あらゆるビューにタップイベントとフィードバックを持たせるモバイルアプリを作る上では最低限必要な部品が、ちょうどいい粒度で提供されています。同様に、代表的なモジュールとしては表2などがあります。NPMモジュールや別のファイルとして定義されたCommonJSモジュールを取り込む(window.requireとして提供)こちらは、コンポーネントとは少し毛色が違っています。緯度経度情報の取得や、インターネットとの通信、ログといった、ブラウザでも提供されている機能については、グローバルスコープの関数として定義され、ブラウザと似た感覚で使うことができます。一方で、Webとは互換性のない機能が、importやrequireを要する、一般的なJavaScriptのモジュールとして提供されている形です。Nativeによるモバイルアプリ開発では、NPMによるJavaScriptアプリケーションの開発と同様に、NPMを使ってサードパーティーのライブラリを取り込むことができます。Native向けのライブラリは、lodashやmomentといったJavaScript製のライブラリを扱えるだけではなく、JavaやObjective-Cによる実装を持つことができます。Nativeの機能を強力に拡張します。Native向けライブラリの一例を表3に挙げます。Nativeらしい機能を提供しているライブラリです。react-native-mapsも、ブラウザ版に比べて高機能なモバイルアプリ版のSDKを利用できるため、ユーザビリティが大きく向上します。react-native-svgはSVGファイルを読み込めるわけではありませんが、SVGのタグと同じ名前のコンポーネントを提供しています。Native製のアプリに取り込む場合に、重宝しています。これらのライブラリを導入する際には、NPMのインストールだけではなく、AndroidやiOSのプロジェクトに対しても設定を行う必要があります。幸いにも、その方法は通常のAndroidアプリ開発でGradleを使う場合や、通常のiOSアプリ開発でXcodeやCocoaPodsを使う場合と、かなり近いやり方になっています。Nativeの機能を拡張することができるでしょう。