Mercari Engineering Blog

We're the software engineers behind Mercari. Check out our blog to see the tech that powers our marketplace.

Firebase Summit 2018に参加してきました #FirebaseSummit

こんにちは、エンジニアの@sota1235です。

先日、チェコのプラハにて行われたFirebase Summit 2018に参加してきたのでその様子をお伝えします。

写真には筆者が写っていませんがメルカリからは自分含め、4人が参加しました。

f:id:sota1235:20181102141959j:plain

firebase.google.com

カンファレンスのセッション内容や新しいアップデートは動画や公式サイトを見ればすべてわかるので、この記事ではその中でも個人的に注目しているものや現地の様子、温度感をお伝えしたいと思います。

最近のFirebaseについて

カンファレンスの内容に触れる前に、去年から今年までの情報を踏まえてFirebaseがどのようなことを目指しているのか考えてみます。

昨年のFirebase Dev SummitではKeynoteで3つの新機能が新発表されたり、数多くの機能のドラスティックなアップデートがありました。

その際の様子はこちらの記事で紹介しています。

tech.mercari.com

それと比べて今年のカンファレンスは「Firebaseの機能をどのようにサービスに活用するか」にフォーカスしています。

これはGoogle I/OでのFirebaseに関するセッションでも同じ傾向でした。

これまでのFirebaseは主にモバイル開発を促進するために3つの軸を据えて様々な機能を提供してきました。アプリケーションの開発(Build better apps)、アプリケーションの品質向上(Improve app quality)、そしてサービスのグロース(Grow your business)です。

f:id:sota1235:20181102171053p:plain

https://www.youtube.com/watch?v=lIzQJC21uus&index=2&list=PLl-K7zZEsYLnqdlmz7iFe9Lb6cRU3Nv4R より引用

現在はこの3軸を実現するために必要な機能がほぼ揃っていると言えます。

例えばBackendであればCloud FirestoreCloud Functions for Firebaseを使えばGeneralなREST API相当のものは実現できますし、Firebase Performance MonitoringFirebase Crashlyticsを使えば非機能要件的な顧客体験を改善できます。そしてGoogle Analytics for FirebaseFirebase A/B Testing等を使って機能改善を行い、様々な数値を改善することができます。

この1年間のFirebaseの動きを見ていると、今後もこの動きは続いていくのではないかなと思います。

主なアップデート

とはいえ、Firebaseは確実に進化を続けています。このカンファレンスで紹介された新機能のうち、いくつかピックアップしてご紹介します。

全容をチェックしたい方は下記のBlog Postをご覧ください。

firebase.googleblog.com

また、セッションを見たい方はこちらから見ることができます。

www.youtube.com

BigQuery Export

Firebase PredictionsCloud Functions for FirebaseFirebase A/B TestingのデータをBigQueryにexportできるようになりました。

これにより自社で持っているデータとFirebaseの各機能を使って得られたデータを合わせて分析等に使用することができるようになります。

Android SDK became OSS

Android向けのFirebase SDKがOSSになりました。

github.com

iOSは以前からOSSだったのでこれでNative Client向けのSDKはすべてOSS化されたことになります。

これにより、例えば今まではIn-App Messagingの画面が用意されてるものからしか選べなかったものが自分たちでカスタマイズできるようになります。

Traced session of Firebase Performance Monitoring

Firebase Performance Monitoringでセッション単位でのMonitoringができるようになりました。

今までは「iOSのこのバージョンでの描画速度」や「この地域でのパフォーマンス」といった括りでのMonitoringは可能でしたが端末1台1台で何が起きてるかを追うことはできませんでした。

今回のアップデートでは任意の端末で何が起きているのか、CPUやメモリ使用率等を含めて見られるようになります。

Local rule emulator Cloud Firestore/Realtime Databae

Cloud FirestoreRealtime DatabaseにはデータのNode単位で権限制御やValidationを行うためのRuleという仕組みがあります。

このRuleはRealtime DatabaseではJSONファイル、Cloud FirestoreではDSLで定義することができますがこのRuleの正当性を検査するにはFirebaseのコンソール上でチェックするしか方法がありませんでした。

今回のアップデートではこのRuleの検証をローカル環境で行えるようになります。

RuleのアップデートはREST APIでサポートされてるので、この変更によってデプロイ時にCI環境でRuleのユニットテストを実行テストが通ったら本番環境に反映というところまで自動化が可能になります。

カンファレンスのコンテンツ

#AskFirebase

昨年と同じく、FirebaseのDeveloperに質問ができるコーナーが用意してありました。

昨年と比べて規模が拡大しているらしく、質問したいことに関して詳しいスタッフを見つけるのが大変でしたが公式アプリで特定の分野に詳しい人を探すことができたので便利でした。

firebase.events

ちなみにこのアプリはPWAになっていて、対応端末であればインストールして使用することが可能です。

私もこのブースでいくつか質問をしましたがFirebaseに直結しない技術的問題でも親身になって相談に乗ってくれるし、Firebaseへのリクエストがあったらその場でメモしたり、実装したら連絡するのでアドレスを教えて欲しいと言われたり、開発者に寄り添ったアドバイスをもらうことができました。

Workshop

こちらも昨年に行き続きのコンテンツです。Firebase Developerのアドバイスを受けながらCode LabのFirebaseにまつわるものを実装していくコンテンツです。

Code Labの内容はカンファレンスに参加していなくても見ることができますが、わからない場所があったときにその場でFirebaseの開発者に質問ができる貴重な場所です。

その他コンテンツ

その他にもいくつかコンテンツがありました。例えば質問しつつCodeLabに取り組むための#HackFirebaseやFirebaseのスライドに出てくるイラストを書いてる人による似顔絵作成、プリクラのようにその場で写真を撮って印刷できるコンテンツやFirebaseを利用したゲームアプリの展示などがありました。

全体的な雰囲気としては、Firebaseを始めとした技術への熱量が高いのは当然のこと、国境を超えて様々なエンジニアと交流しようという気概の人が多かったです。

筆者も「日本のDroidKaigiに参加したいんだがどうすればいい?」と話しかけられたり、海外の企業でFirebaseをどのように使っているかをいろんな人に聞くことができました。

まとめ

昨年に引き続きの参加でしたが、FirebaseチームやFirebaseのユーザの熱は高まっていると感じました。

また、規模や機能数が増えていきながらも現場の開発者が直面している問題を拾い集め、プロダクトを改善しようという意思も引き続き強く感じることができました。

メルカリ、メルペイでもすべてのチームでは無いですが、少しずつFirebaseの採用事例が増えているので引き続き最新情報をキャッチアップしつつ、存分に活かしていければと思います。

最後に

メルカリ、メルペイではFirebaseを始めとした様々な技術を駆使してプロダクトを作っていきたいエンジニアを募集しています。

ご興味のある方はぜひ。

careers.mercari.com

jp.merpay.com