次は・・・の、その前に
その1で書いた流れだと次はExpo Module作成なんですが、その前にWorkflowについて書いてみようと思います。
Workflowについて
以前
以前は、
- Managed workflow
→ 純Expo、カスタムネイティブ拡張不可 - Bare workflow
→ Managedから"eject"した状態、ネイティブ側も自力で面倒を見る必要あり - ReactNative
→ Expoなし、純ReactNative
という区分だったように思います(違ったらスミマセン)。
Managedで開発している途中でejectするのは崖から飛び降りるような感覚だったのかも知れないです。
最近
最近では、
- Managed workflow
→ ネイティブビルドをexpoに任せている状態 - Bare workflow
→ ネイティブビルドを自力で頑張る状態
素のReactNativeはBare workflowだ、という扱いのようです。
Managed workflowは、基本的にJS/TSで開発することになります。メタデータはJSONあるいはJSで記述します。
ネイティブコードを編集することはないです。そもそもios
ディレクトリもandroid
ディレクトリも存在しない。
ネイティブ機能を利用するには、Expoが公式に用意しているライブラリを利用するか、または、Expo Moduleを作成・利用することになります。
後者の場合、Expo Goには該当のネイティブ機能はないので利用できないですが、Development Buildを作成することで対応可能となります(次かその次ぐらいで書く予定)。
逆に言うと、これで対応できる範囲であれば、Managed workflowを利用することが可能です。
XcodeやGradleと格闘したくない人にとってはありがたい。
ManagedからBare workflowへ移行するには、expo prebuild
コマンドを実行します。
これにより、Managedではexpoによって隠されているios
およびandroid
ディレクトリが生成され、JSONで管理できていたメタデータもそれぞれのネイティブの作法での設定に変わります。
元(Managed)に戻すコマンドはないのですが、ios
およびandroid
ディレクトリ以下を変更していなければ戻すのは簡単です。
ここの表にあるように、以前よりManaged workflowで出来ないことが大幅に減っています。
よほどのことがなければManaged workflowで乗り切れるのではないでしょうか。
つづく