Firebaseを使ったサーバーレスWebアプリケーション開発 (ServerlessConfセッション紹介)

セクションナイン吉田真吾@yoshidashingo)です。

第3弾はフロントエンド開発者であるきはるさんです。

プロフィール

  • 名前:佐々木季羽る Kiharu Sasaki
  • 会社名:freelance, Section-9
  • 職種:Frontend Developer

f:id:yoshidashingo:20160907073136j:plain

SIerで通信系システムの開発に携わった後、コンサルティング会社にて金融系エンタープライズシステムを担当。フリーランスとして独立後は、Webアプリケーション開発を中心に活動中。流しのフロントエンドエンジニア。Section-9メンバー。

Quick Chat

---- ServerlessConf Tokyoでのセッション概要を教えてください

Firebaseは、Googleが提供しているバックエンドサービスです。

アプリケーションに必要なサーバー、DBの構築や運用が不要なのはもちろん、データに連動してREST APIが自動で作成されるリアルタイム同期データベース、各種プロバイダでのユーザー認証、オフライン処理、画像や動画のアップロードが可能なストレージ、ホスティングまで、バックエンドに必要とされるほぼすべての機能を備えたFirebaseを使うことで、フロントエンドの開発に注力することが出来ます。

モバイルバックエンドサービス(MBaaS)として語られることが多いFirebaseですが、今回はWebアプリケーションにおける利用方法についてお話します。

---- 最近フロントエンドで使ってるのってどういったフレームワークですか?

最近のフロントエンド界隈では、Reactの人気の高さや、Angular2への期待感が何かと話題です。今後もしばらくはこの2つが話題の中心だと思います。また、「リアクティブ」「コンポーネント」といったキーワードも重要なので、フロントエンド以外の方も抑えておくと良いです。

私自身は、業務ではAngular1、Vue.jsを使っていて、過去にはBackboneも使っていました。Reactの導入も検討中です。(※個人的にはAngular2とVue.js推しです)

フロントエンドは移り変わりが激しいとよく言われますが、それはWeb標準の変化速度が早いせいでもあり、高レイヤーな技術ほど影響を受けるのは必然とも言えます。ですので、今後もWebが進化し続ける限り、どれか1つのフレームワークに落ち着くことはないだろうと思っています。

---- Firebaseがよい点は具体的にどういうところですか?

まず、とにかく簡単だという点です。DBのデータ取得がJSで1行で書けるくらいに簡単です。ソーシャルアカウントでのユーザ登録やログイン処理も、数行で実装出来てしまいます。

機能面で決定的なのは、オフライン処理とリアルタイムデータ同期です。昨今では、Webアプリケーションであってもネットワーク接続に依存せず、オフラインでもユーザが操作を続けられ、ネットワークが復帰した際にはスムーズにデータが同期されるといった、モバイルアプリに近いUXを求められる流れ(プログレッシブウェブアプリ)が来ています。実際これをWebで実現するのは容易ではありませんが、Firebaseを使えば開発者が意識することなく実現出来てしまいます。

---- Firebase以外によくバックエンドとして利用するサービスはどういうものがありますか?

業務ではBaaSを利用すること自体が稀で、機能ごとに外部サービスを組み合わせて利用することが多いです。モバイル(MBaaS)であれば国産も含めいくつかありますが、WebのBaaSは選択肢がかなり限られるかと思います。

---- フロント/バックエンド全部やってると実際のところ工数配分ってどのくらいですか?

SPA(シングルページアプリケーション)でない案件だと半々くらいです。デザインも担当している案件だと、UIに一番時間がかかっているかもしれません・・・(^^;

---- フロントエンドからインフラまでプロレベルで1人で見られる人って実際多くないと思うけど、きはるさんのような人がもっと増えて欲しいですか?

私自身はインフラ部分は必要最低限でしか関わらないようにしているので、フルスタックとは言えないのですが、フルスタックな人(またはそれを目指している人)は、CTOなどテクニカルのトップにでもならない限り、ただの器用貧乏で終わってしまうので勿体無いかな、と。なので増えなくてもいいと思います(笑)

ただし専門分野以外の知識がゼロなのは論外だし、最近ではフロントエンドとサーバーサイドの境界線も曖昧で、兼務している人も多いので、関連性が強い領域についてはある程度守備範囲を広げていく必要もあり、そのためには日々の情報収集や学習が大切だと思っています。

---- ありがとうございました、当日はもっと突っ込んだ話を楽しみにしています。

ありがとうございました。

まとめ

フロントからバックエンドまですべて面倒を見る場合に、すべてを自前で準備するのは限界があります。そのためにフレームワークやBaaSのサービスを使うほうが開発生産性の面で有用なのは明らかです。重要なのはキャッチアップし続ける姿勢ということでしょう。

開発体制やFirebaseの運用上の注意点などについては今回お聞きしませんでしたので、興味のある方はServerlessConfに参加してください。

tokyo.serverlessconf.io