自己紹介
エンジニアインターンをしています。エンジニア歴は1年。
主にアプリを担当。
はじめに
最近行ったexpoの「eject」をテーマに記事を書きます。
今回はそもそもexpoとは?という話から書きました。
expoとは(超簡単に)🤔
ReactNativeアプリの開発やビルドを支援してくれるサービス。
様々なライブラリを提供しており、とても便利。
expoを使うと
開発が楽になる
webアプリと同じような開発体験
QRコードをかざすだけで実機での開発ができる
push通知や認証ライブラリ、カメラ機能などのexpoが提供している優秀なライブラリを使用できる。
ネイティブの知識がほとんど不要
ios/androidの設定についてはexpo側でやってくれるので、swiftやjavaの知識はほとんど必要ない。
reactに慣れている人であればかなり学習コストが低い
ビルドが簡単
ios/androidのそれぞれのビルド設定を共通のjsonファイルに記述できる。
コマンド一つでビルド可能
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年末から開始されたのでまだまだ発展途上。
EAS Build
コマンド一つでビルドできる
ネイティブコードの変更を含んでいてもビルドできる。
eas.josnで環境ごとにテスト用のビルド、ストア用のビルドなど環境を分けて設定ができる。
Expo development client
今年の7月にリリースされた
manageのExpoGoとほぼ同じような開発体験
ネイティブレイヤーに変更がない場合は、今まで通りjavascriptレイヤーの開発に集中できる
開発するのに毎回xcodeやandroidstudioを起動しなくていいので非常に楽。
今までネイティブレイヤーをカスタムしたExpoGoアプリを作成するイメージ。
最後に
EASは発展途上なので今後が楽しみ!!✨
近いうちにEAS submitというOTAupdateが可能になるサービスがリリースされるらしい。
ejectからdeployするまでの間にたくさんの壁にぶち当たったのでちょっとずつ記事にしていこうとおもっています!
▼複業でスキルを活かしてみませんか?複業クラウドの登録はこちら!
https://talent.aw-anotherworks.com/?login_type=none