Expoを使うべきか?私の5年間の開発経験からの洞察

私はReactNativeに触れてから5年が経ちます。個人開発とクライアントの受託を合わせて10個以上アプリをリリースしてきました。Expoを使うプロジェクトや使わないプロジェクト、Ejectしたプロジェクトにも参画しました。そんな私がExpoを使うべきかどうかについてお話ししていきます。

結論

Expoは使ったほうがいい。

理由1:初回のリリースが楽

アプリを初めてリリースするとき、iOS、Android共に設定することがいっぱいあります。ただExpo使っていると大半の作業を省略できます。大体1/3くらいの作業量になります。過去にアプリリリース経験がない人は特にExpo使うことをおすすめします。

理由2:2回目以降のリリースも楽

EAS Buildという神機能がExpoにはあります。これを使うと試験用アプリを対象ユーザに配布、本番リリースといった作業がすごく楽になります。今まで無料だったのですが、最近こちらがiOS、Android共に15回までしか無料で出来なくなりました。以降は1回ごとに2ドルかかります。ただし、週に3回リリースしても無料でできるのでそんなに問題でないでしょう。

理由3:パッケージのメンテナンスが楽

Expoは年に4回メジャーアップデートを行います。Expoのアップデートを行うと、そのタイミングでreactやreact-nativeのバージョンや主要パッケージのアップデートを一緒に行なってくれます。

Expoを使っていないとそれらを個別でアップデートしていかなければなりません。また個別アップデートだと、バージョンの互換性も確認取れていないので、厄介です。

理由4:途中でやめれる

Expoは途中でやめることができます。Ejectという機能があり、途中から通常のreact-nativeの開発に戻ることができます。なので、辞める必要が出るまでは、Expoでやってみればいいと思います。

理由5:過去にExpoではできなかったものが、現在ではだいぶできるようになっている

私は過去にExpoの導入を見送ったり、Ejectしたりしたプロジェクトがあります。一つはアプリ外課金です。Expoで課金が実装できないため見送りました。しかし、現在はStripeをExpoで使えるため、問題ないです。

もう一つは動画再生です。こちらも以前はYouTube動画を正常に流すことができませんでした。こちらも現在はExpoで実装できます。

逆にどんな時にExpoが使えないの?

ここまでメリットをたくさん書きましたが、デメリットをいくつか書いていきます。

デメリット1:最新のReactNativeのバージョンを使えない

Expoは少し古いバージョンのReactNativeのバージョンを採用します。そのため、最新のバージョンが使えません。

例えば本日(2023年12月)の最新のExpoは49です。このExpo49で採用しているreact-nativeのバージョンは0.70.8です。ReactNativeの最新は0.73です。(ただ、そんなに最新のバージョンを使うケースがあるかどうかは不明です)

デメリット2:ネイティブコードを触れない

これが一番の欠点です。ガッツリ開発する時はNativeコードに触れる時がでます。そんな時はExpoをEjectする必要があります。具体例としては、

アプリに広告を出したい!react-native-admobを出したけど、他の広告も出したいな〜。他社のSDKも入れてみよう!

上記のようにSDKを導入したい!系は大体Eject必要になります。

まとめ

まずはExpoでできるところまで進めましょう。どうしても詰まったらEjectすればいいだけなので!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です