💡

expo eject後のビルド・開発をどうするか(EAS build, expo-dev-client)

2021/09/29に公開

はじめに

株式会社Another woksでエンジニアインターンをしています。
主にReactNative, TypeScriptでアプリ開発をしています。
最近行ったexpoの「eject」をテーマに記事を書きます。

expoにおける2種類の開発アプローチ

Managed workflow

expoがネイティブ開発の複雑な部分を管理してくれるので「managed」
nativeを意識せずにjavascriptのような開発体験ができる
コマンド一つでOTAupdateが可能 (一部の変更を審査なしで無線更新できる)

Bare workflow

expoの管理から外れたworkflowなので「bare(裸)」
ネイティブレイヤーのコードを自由に変更することが可能。
管理から外れた代償として、ネイティブ関連の設定を自分で行わなければならない。

ejectとは?

Managed workflowからBare workflowに移行すること

つまり、expoの管理から外れて、自由にネイティブのコードを変更できるようにすること。
ネイティブレイヤーに依存しているライブラリやプラグインを使用したいときにejectすることになる。

ejectしたいけど、今までexpoに頼っていた開発やビルドはどうすればいいのか

救世主🦸

Expo Application Services (EAS) 🌟

EASとは

Expo Application Services
アプリと開発プロセスを改善するための新しい機会を開拓する次世代のサービス(expo公式引用)
2020年末から開始されたのでまだまだ発展途上。

https://expo.dev/pricing

EAS Build

コマンド一つでビルドできる
ネイティブコードの変更を含んでいてもビルドできる。
eas.josnで環境ごとにテスト用のビルド、ストア用のビルドなど環境を分けて設定ができる。

https://docs.expo.dev/build/introduction/

Expo development client

今年の7月にリリースされた
managed workflowとほぼ同じような開発体験
ネイティブレイヤーに変更がない場合は、今まで通りjavascriptレイヤーの開発に集中できる
開発するのに毎回XcodeやAndroid Studioを起動しなくていい。

https://docs.expo.dev/clients/getting-started/

最後に

EASは発展途上なので今後が楽しみ。
近いうちにEAS updateというOTAupdateが可能になるサービスがリリースされるらしい。
ejectからdeployするまでの間にたくさんの壁にぶち当たったのでちょっとずつ記事にしていこうとおもっています!

▼複業でスキルを活かしてみませんか?複業クラウドの登録はこちら
https://talent.aw-anotherworks.com/?login_type=none

Discussion