TECH STAND #5にてReact NativeとFirebaseを使ったアプリ開発について発表しました
TECH STAND #5にて、オンラインで登壇させていただきました。
発表した内容は、現在行っているReact Nativeのモバイルアプリ開発で、どのようにFirebaseを活用しているのか紹介しました。
こちらが登壇の資料です。
また、YouTubeにて当日の動画がアップロードされています
発表の補足
この記事では、こちらの発表を補足したいと思います。
Firebaseを利用してアプリ開発行ってきた感想ですが、Firebaseを使うとかなり手早く機能を実現できる実感があります。React NativeでiOSもAndroidも開発を共通化し、Firebaseでバックエンドの開発や運用を抑え、プロジェクト全体をTypeScriptで統一するのは、個人開発者や人的リソースの少ないスタートアップにおすすめの選択肢です。
発表で紹介したシステムでは、React NativeとFunctionsのコードはTypeScriptを使って書いています。そのため、例えばアプリ上で書いていたビジネスロジックをサーバーサイドに移動したくなった場合も、比較的簡単に移植を行うことができます。個人的にReact Nativeを使っていて一番嬉しいポイントはプロジェクト全体で言語を統一できるというところかもしれないです。
普段はバックエンドエンジニアとして、Kubernetesを使ってバックエンドサービスを開発、運用していますが、やはり学習コストは高く、費用の面でも高くつくため、実用最小限の製品を作るような新規サービスの立ち上げにはやりすぎになってしまうと思います。今まで関わってきたシステムと比較するとFirebaseはコストも安く、気軽に手軽に使えています。
また、システムは作って終わりではなく、継続的に分析して改善を行っていく必要がありますが、Firebaseは分析のためのBigQueryやGoogle Analyticsと連携するのも簡単です。サービス運営に必要になりそうな機能が一通り揃っているのが嬉しいところです。
ただ、Firebaseは便利な一方で、Firestoreを使ったデータモデル設計は、リレーショナルデータベースを使った設計方法と異なっていて少々取っ付きにくいのは事実だと思います。私たちのサービスでは、Firstoreのデータ設計は実装する前に、whimisicalというサービスで実際にデータモデルの図を書き、色々と議論しながらデータモデルの設計を行いました。データモデルの設計は時間をかけるべきポイントと言えると思います。
また、Firestoreのセキュリティルールも他にはない概念のため、何も調べずに雰囲気で使い始めると、うっかりセキュリティがノーガードになってしまうかもしれないです。公式ドキュメントなどをしっかり読んだ上で利用しましょう。
おわりに
今回のイベントのテーマはReact & React Nativeだったのですが、気づいたら発表内容がどちらかというと、Firebaseのバックエンド寄りの話になってしまってまいました・・・。若干軌道修正して、React Nativeのアプリと関連付けてみたのですが、もし参考になれば幸いです。
Tech Standの運営者様、今回のイベントにお呼びしていただきありがとうございました。大変良い機会となりました!