Mobile Act OSAKA #5 で「クラッシュレポートサービスのパンくず機能でクラッシュ対応を楽にする」という発表をしました

Mobile Act OSAKA #5 で発表をしてきました。もう1ヶ月も前の話になってしまった…。 mobileact.connpass.com

Sentry というクラッシュレポートサービスの Breadcrumbs (パンくず) 機能について紹介しました。
このパンくず機能は Sentry 固有のものではなく、Firebase CrashlyticsBugsnag などのサービスにも同様の機能があります。

Sentry のパンくず機能のドキュメントはこちら。 https://docs.sentry.io/clients/cocoa/advanced/#breadcrumbs

パンくず機能はクラッシュまでのユーザの操作をトラッキングできる機能です。どういう操作をしてクラッシュに至ったかを教えてくれるヒントになります。
発表内でも紹介しましたが、iOS ではコード1行でこのパンくずを自動で記録してくれる機能もあり、たいへん便利です。

Osaka Mix Leap Study #11 に参加しました #mixleap

かなり前ですが、参加して懇親会 LT してきました。

yahoo-osaka.connpass.com

普段 Kotlin はなかなか触らないので、Kotlin の話も一緒に聞けて勉強になりました。 Swift の ownership も把握しそこねていたので良い機会でした。

懇親会 LT 枠があったので発表してきました。
僕も場も 🍻 していたので、もっと勢い重視の方がよかったかもしれない。

Cocoa勉強会関西で「アプリのお問い合わせ機能をサーバーレスでつくる Firebase 編」を発表しました #cocoa_kansai

ずいぶんと時間が経ってしまいましたが…
第77回 Cocoa勉強会関西で、「アプリのお問い合わせ機能をサーバーレスでつくる Firebase 編」という発表をしました。

cocoa-kansai.connpass.com

内容

モバイルアプリにしばしばあるお問い合わせ機能 (フィードバックフォームなど) について、サーバレスで実現できないかと思い調べた内容を発表しました。
iOS だと通常は MFMailComposeViewController を使ったり、自サービスの Web API へポストしたりすると思います。

今回は Firebase での実現方法を検討しました。
Firestore と Cloud Functions for Firebase を利用しています。
(Firestore でなく Firebase Realtime Database でも実現できます)
雑ですがサンプルコードもあります。

github.com

この構成はまだプロダクションには乗せられていないので、しばらくやってみてからまたアウトプットしたいですね…

補足

いくつかご質問を頂きましたが、発表中にちゃんとフォローできなかったのでここで補足します。

インターネットにつながっていない場合はどうなる?

オフラインでの永続性を設定している場合は、オンラインになったときに自動的に送信されるようになります。

オフライン データを有効にする (Firestore)

端末がオンラインに戻ると、アプリがローカルで行った変更とリモートの Cloud Firestore に保存されたデータが同期されます。

Firestore ではデフォルトだとこの設定が有効なため、オンラインに戻ると自動的に送信されます。

iOS のオフライン機能 (Realtime Database)

Realtime Database では isPersistenceEnabled オプションを true に設定すると利用できます。

データの内容は管理画面で見れる?

f:id:urouro_n:20180423211245p:plain

Firebase のダッシュボードで、このような形で見ることができます。