ExpoではじめるReactNative

「Expo」・・・簡単に扱えるように抽象化されたツール

 

ReactNativeでできること

 

ReactNativeがJavaScriptに対して提供している機能は、大きく分けて

コンポーネントモジュールに分類される

 

コンポーネント

・View レイアウトの基本単位

・Text     テキストを表示・装飾する

・Activitylndicator  処理待ちを表すインジケーター

・FlatList 配列データを省メモリで表示

・ScrollView  内側のコンテンツが画面をはみ出したらスクロールされる

・RefreshControl ScrollViewに「引っ張って更新」を付与する

・TouchableOpacity あらゆるビューにタップイベントとフィードバックを持たせる

 

<モジュール>

・Alert 簡易なダイアログを表示する

・Dimensions アプリのウィンドウやデバイスの画面サイズを取得する

・Keyboard キーボードの表示・非表示を検知する

・Animated ビューをアニメーションさせる

・StyleSheet コンポーネントに適用するスタイルをまとめて管理する

・Geolocation 現在地の経緯度情報を取得する

・Fetch インターネットと通信を行う

・Console デバッグログを表示する

・Require NPMモジュールや別のファイルとして定義されたCommonJSモジュールを取り込む

 

 

サードパーティーツールを取り込むことで豊富な機能が使える

NPMを使ってサードパーティーのライブラリを取り込むことができます。

よく使うライブラリ

・react-native-maps GoogleマップiOSマップを表示・操作する

・react-native-camera 写真の撮影やバーコードのスキャンを行う

・react-narive-svg SVGと互換性のあるAPIベクターイメージを描画する

 

□expoでビルド環境を抽象化する

「できればJavaScript文化圏でシングルページアプリケーションを作るときのような方法論だけでモバイルアプリを作りたい」→そんな希望を叶えるために

できる限りReactNativeの面倒な部分を抽象化して、頻出のReactNative向けのライブラリを設定済みのSDKを整備して、コマンドラインツールを使いやすくまとめたものが、Expoというツール群

 

<Expoが提供する便利なコンポーネントやモジュール>

・MapView react-native-mapsを取り込んだもの

・Camera react-native-cameraを取り込んだもの

Svg react-native-svgを取り込んだもの

・BarCodeScanner ANコードやQRコードなど、さまざまなバーコードを認識できるカメラプレビューのコーポーネント

・Permissions カメラやGPSを使う前にユーザーに使用許可を求めるダイアログを簡易に実装するモジュール

・Audio 音声の再生や録音を行うモジュール

 

Expoを使った環境開発の構築

 

①インストール

$ npm install -g expo-cli

※インストールする際の名前は expo-cli ですが、コマンドラインで扱う場合のコメンド名は expo になるので注意

 

②プロジェクトの作成

$ expo init my-first-react-native-app

 

blank tabs のどちらにするか質問される

 

blankを選択すると、とてもシンプルな構成でプロジェクトの初期化が行われる

tabsを選択すると、タブで画面の切り替えができるように画面推移ライブラリが導入済みの、少し複雑で実用的なプロジェクトとして初期化されます。

 

初回のnpm install が実行される

しばらく待つと、プロジェクトの作成が完了

<各ファイル・フォルダの役割>

・assets/ アプリアイコンやスプラッシュ画像等のリソースを配置するフォルダ

・.watchmanconfig デバッグ中の監視にwatchmanコマンドを利用する場合の設定ファイル

・App.js Reactアプリケーションとしてのエントリーポイント

・app.json アプリの設定を記述するファイル

・babel.config.js Babelの設定ファイル

 

参考:https://codezine.jp/article/detail/11384?p=3