React Nativeで開発しているモバイルアプリのモニタリングをどうするかなってところで簡単に調べたのでまとめ。
選択肢としては概ねFirebase CrashlyticsとSentryの2種類。どちらもこれまでモバイルアプリを主戦場としてこなかった僕でも知ってるレベルの有名サービスだ。というわけで実際には同様のサービス、ソフトウェアが他にもあるのは知ってるけどこの二つのどちらにするかを考える。
さて、今回はモバイルアプリといってもReact Nativeで開発しているってのが選択の上で1つのポイントかと思われれる。
というわけで簡単に両者の特徴を。
Firebase Crashlytics
- 皆さんご存知、Firebaseのエラーモニタリングサービス
- ネイティブアプリだともはや定番って感じらしい
- 一方でJSは公式にはサポートしておらず、ラッパーライブラリが必要だったりする。つまり
react-native-firebase
使う - Firebase使ってる人ならすぐ使える
- 料金はなんと無料だ。無料プランがあるとかではなく無料プランしかない
- チーム内に経験者いない
- Source Mapに未対応
Sentry
- エラーモニタリングの専業サービス
- JS、というかReact Nativeを公式にサポートしておりSDKも提供されている
- もちろん新たに使うにはサインアップが必要
- 料金は無料プランもあるが、Teamプランで$25/monthとかそのくらい。さらに上位のプランもある。
- 無料のDeveloperプランとTeamプランで大きく違うのはトランザクション量と追加データ分を前払いできるか、あとは3rd party integrationとMetricsアラートあたり
- Sentryでいうところのトランザクションってのがどういう単位なのかわからない
- チーム内に経験者いる(というか2人いるうちの2人ともこちらしか使ったことない)
- Source MapももちろんOK
どっち使うの?
ぶっちゃけた話、これと言った強い思いがないのも事実。
だからこそ、当初は普段Firebase使ってることもあってCrashlyticsにしようかなーとぼんやり思ってた程度。
だがしかし、無料なのは魅力的なものの公式ではReact Nativeをサポートしてなかったり、チーム内で誰も経験者いなかったりするので今回はひとまずSentryにしようかと考えている。
Sentry自体は定評あるサービスだし、ネガティブなのはTeamプランだとお金かかるくらいしか今のところわかってない。むしろ導入の観点では公式にサポートされていること、手順も用意されている上にその手順自体が簡易かつウィザードも用意されており非常に容易だ。
本当はもっと検討したいところだけどここにあまり時間かけたくもないのでひとまずみんな知ってるSentryを無料プランで入れて様子見して、致命的な問題が発生し、かつそれがCrashlyticsで解決できる場合のみCrashlyticsへと移行しよう。
キャパ不足が発生したらお金払う感じで💰