4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

ReactNativeでのアプリ開発、ExpoSDKがいい感じになってきたようなので試してみた:その2

Posted at

次は・・・の、その前に

その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で乗り切れるのではないでしょうか。

つづく

4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?