久々に Expo (React Native)
を触ると少し忘れていた部分があったので開発と同時に備忘録を書いていました。
ドキュメントに書いてるわけではないけど毎回やってることとかの雑多なメモです。
準備
とりあえずexpo
コマンドをインストール / 最新化します。
node
やnpm
のバージョンは新しい方がいいです。
-
https://nodejs.org/ja/download/
-
npm install -g npm
-
npm install -g expo-cli
プロジェクトの作成
expo init
コマンドでプロジェクトを作成します。
1 2 3 4 5 6 7 8 |
//アプリの作成 > expo init project-name ----- Managed workflow ----- > blank (TypeScript) same as blank but with TypeScript configuration ... > cd project-name |
expo
を使う以上 Managed workflow
を使うと思いますが、基本的にblank
のどちらかを使うことが多いと思います。今回は TypeScript
を選択。
作成し終わったら git
リポジトリの設定をします。
やっておけば便利くらいの感覚ですが、github
のプライベートリポジトリに突っ込んでおけば管理もしやすいです。
1 2 |
git remote add origin https://github.com/user-name/repo-name.git git push -u origin master |
ライブラリの追加
必要なライブラリをインストールします。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
//UI yarn add native-base or yarn add react-native-elements //値の保存 yarn add react-native-storage //モーダルウィンドウ yarn add react-native-modal //ネイティブな機能を使う //expo install xxxした方がバージョン的には安定 yarn add expo-sharing yarn add expo-media-library yarn add expo-camera yarn add expo-ads-admob |
React Native
のコンポーネントはそのままだと非常に使いにくいのでnative-base
かreact-native-elements
のようなUI
ライブラリはほぼ必須です。
他に基本コンポーネントの AsyncStorage
や Modal
は使いにくいので必要ならライブラリを使った方がいいです。
expo
ではネイティブな機能を簡単に使えるので使うものを追加する。
古いバージョンでは Expo
の1部だった機能が、いつの間にか切り離されたりするのでちゃんとドキュメントを読みましょう。
コーディング
好きなようにコーディングすればいいんですが、ルート直下にソースを置くのはちょっとどうかと思う。src
フォルダにまとめたいです。
/App.tsx
以外をスタートに設定することもできなくはないですが面倒です。
なのでApp.tsx
ファイルをこんな感じにします。
1 |
export { default } from "./src/pages/Main"; |
これであとは好きに書いていきます。
開発
yarn dev
か yarn android
で開発ページを開いて実際に動かしながら開発できます。
実機を使うのがストレスフリーでおすすめですが、エミュレータをなら Genymotion
が軽くて使いやすいです(Nox
はうまく動かないしAndroid Studio
のエミュレータは重すぎたので実質一択だった)。
ビルド
実機テスト用に普通に .apk
ファイルを作ったり、アップロード用に .aab
(app bundle
)を作ったりします。
package.json
に以下のように追記しておくと便利です。
1 2 3 4 |
"scripts": { ... "bundle": "expo build:android -t app-bundle" }, |