本セッションの登壇者
セッション動画(YouTubeチャンネル登録もお願いします。)
はじめまして。今回は「Webエンジニアがモバイルアプリを作る」と題しまして、トレンドを押さえた爆速アプリ開発というお話をさせていただきたいと思います。
はじめに軽く自己紹介をさせてください。株式会社FUNEEというスタートアップで、CEO、CTO、そして私どんちゃんの3名でCONCRUというプロダクトを開発しています。では、よろしくお願いします。
今回は、時間がないので「Expoはいいぞ」という話一本でお送りしたいと思います。
我々は、もともとTypescriptでWebもモバイルも開発するという方針だったので、ReactNativeで開発していました。しかし、環境構築が大変だったり、POへのレビューは面倒だったり、なんだかんだネイティブの知見が必要だったりということで、良いソリューションを探していました。
そこで今回導入したのがExpoです。私たちにとってExpoは、モバイルアプリをWebっぽく開発させてくれるプラットフォームライブラリ群だと思っています。ではその所以を紹介していきます。
具体的にどんなところがWebっぽく開発できるのかということについてなんですが、「APIが豊富」「Hot Reloadが実機でも簡単に可能」あとは「OTAアップデート」、この3つかなと思っています。
Expoのいいところその1 - APIが豊富
「APIが豊富」についてです。ExpoはネイティブAPIの機能を使いやすくラップしてくれてます。このスクショの通り、たくさんあります。Firebaseだったり、最近ちょっと話題のAmplitudeも標準でサポートしているのが驚きでした。
Expoのいいところその2 - Hot Reloadが実機でも簡単
続いて「Hot Reloadが実機でも簡単に可能」です。Expoのクライアントアプリを実証端末にインストールし、ローカルでServe時に表示されるQRコードを読み込むだけで実機で実行可能です。
その様子を動画で撮ってみました。
尺の関係でビルドはスキップしてるんですけど、QKコードを読み込んで…いまコメントアウトしているものを元に戻して保存しますと、「ホットリロードしたよ」と表示されますね。これで快適な開発ができています。
実は、ReactNativeでもFastRefreshという機能でできるのですが、実機で手軽にデバッグできるのはExpoのいいところだなと思ってます。
Expoのいいところその3 - OTAアップデート機能
続いて「OTAアップデート機能」についてです。
通常、モバイルアプリの更新時には、AppStoreだったり、GooglePlayへの審査の提出が必要になってきますよね。Expoであれば、コマンドひとつでユーザーが各ストアからアプリをアップデートするのを待たずに、小さな更新を配信することができます。
一番シンプルなコマンドがexpo publishというコマンドです。このコマンドだけでExpoサーバにBundleをデプロイしてServeしてくれます。ローカル環境を動かしていなくてもアプリを起動できるようになるので、これでPOや顧客にレビューしてもらったりテストも可能になります。とても便利に使わせていただいてます。
しかし、これも万能なわけではなく、アイコンやライブラリの更新や導入時には反映されません。その場合はストアにリリースしてください。また、iOSではAppleの証明書の関係でこの手法は使えません。Androidでのみ可能です(制限についてのドキュメントはこちら)。
Expo SDK 45でのアップデート
つい先日リリースされたExpo SDK 45では、GithubActionsを使ったCI/CDが容易になります。現在は有料ユーザーのみですが、今年中に無料ユーザーにも開放されるとのことで楽しみにしています。
あと、こんな方いらっしゃいませんか?
- FastImageが使えない
- Realmが使えない
そういった理由でExpoを使うのをやめた人とか避けていた人、いらっしゃいませんか?
これも「Expo EAS Build」という仕組みでできるようになりました。先ほど紹介したクライアントアプリを、自前でビルドすることができます。話すと長くなるので、ドキュメントを読んでみてください。
ぜひ、進化を続けるExpoを使ってみてください!
ありがとうございました。採用も受付中です。