Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Firebase Remote Config を利用した Feature Flags の導入
Search
Akifumi Tominaga
July 21, 2024
280
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Firebase Remote Config を利用した Feature Flags の導入
Akifumi Tominaga
July 21, 2024
More Decks by Akifumi Tominaga
See All by Akifumi Tominaga
Firebase Performance を利用したアプリの起動時間高速化
decoch
0
200
依存関係を静的解析しよう
decoch
2
450
CircleCIを使って 「完全サーバーレス運用」を 実現した話
decoch
2
520
GOで作るCLIツール
decoch
1
400
DBFlute Introで 気軽にDBコメント変更
decoch
0
150
DBFlute-intro
decoch
0
81
Featured
See All Featured
Site-Speed That Sticks
csswizardry
13
1.2k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
2.9k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.2k
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
380
Crafting Experiences
bethany
1
170
WCS-LA-2024
lcolladotor
0
620
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
0
1.6k
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
570
Designing for Performance
lara
611
70k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
2k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
Navigating Team Friction
lara
192
16k
Transcript
SODA Dev Talk #2 12:00開場のため今しばらくお待ち下さい ハッシュタグ: #SODADev
SODA Dev Talk とは SODA Flutter Talk は株式会社SODAが主催すエンジニア勉強会です SODA所属のエンジニアが、社内での技術の導入・活用事例や、個人開発で得た知見、 最近のトレンドなど、技術に関するいろいろな事をお話しします!
発表への質問は Xに #SODADev のハッシュタグをつけてポストをお願いします
Timeline 12:00~: Opening 12:05~: Firebase Remote Config を利用した Feature Flag
の導入 (冨永) 12:30~: Vue2からVue3へのアップデートをどのように行っていったかの話 (青木) 12:45~: フロントエンドチームでリアーキテクチャを行っています (伊藤) 13:00~: Closing
Firebase Remote Config を利⽤した Feature Flags の導⼊ SODA Dev Talk
#2 #SODADev
Agenda • 自己紹介 • SODAについて • Feature Flags とは何か •
なぜ導入したいのか • Firebase Remote Config について • 運用方法 • まとめ
株式会社SODA • 2022年1月~ アプリエンジニア • 2022年8月~ エンジニアリングマネージャー 個人事業主 •
Angular 10 株式会社Brhino 株式会社ビズリーチ • React, Redux 冨永 晃史
SODAについて
鑑定付き 利用者数 No.1 スニーカー‧トレカ フリマアプリ
正規品を安心して購入できるC2Cマーケットプレイス スニダンが取引の間で真贋鑑定をすることで、偽造品の心配をすること なく取引ができる Product スニーカーダンク C2Cマーケットプレイス ブランド公式取扱アイテムやここでしか入手できない Exclusiveなアイテムを取り揃えるファッション・コレクティブ
オンラインストア
スニーカー、トレカの新作がどこで・いつ・いくらで発売するのかを毎日発 信。全情報をまとめることで、スニダンさえ見ていれば、新作情報を漏れ なく確認することができる コレクティブルなカルチャーに特化した国内最大級のSNS X(旧Twitter)やInstagramなど他SNSにはない深くニッチな情報が飛び 交っている Product スニーカーダンク コミュニティ
メディア
Product スニーカーダンク 海外の市場環境に合わせて ローカライズしたグローバル向けのアプリを展開中 海外版アプリをリリース 北米・アジア圏を中心に16カ国で展開中
Business Model ビジネスモデル
プロダクト開発組織について
Teams プロダクト開発組織 Team A Team B Team C Team D
Web 🙋🙋🙋🙋🙋 | WebFE 🙋| Flutter 🙋🙋 | QAE 🙋 | Design 🙋 | PdM 🙋 EM 🙋🙋🙋🙋🙋 Web 🙋🙋🙋🙋 | WebFE 🙋🙋 | Flutter 🙋🙋🙋 | QAE 🙋 | Design 🙋 | PdM 🙋 Web 🙋🙋🙋🙋 | QAE 🙋🙋 | PdM 🙋 Web 🙋🙋🙋🙋 | WebFE 🙋| QAE 🙋 | Design 🙋 | PdM 🙋 SREs 🙋🙋🙋 Team EM Team SRE Team E Web 🙋🙋🙋🙋 | QAE 🙋 | Design 🙋 | PdM 🙋 Team G Web 🙋🙋🙋 | Flutter 🙋 | Design 🙋 | PdM 🙋 総勢60名
MAU ソースコード 組織規模 プロダクト・組織の成長過程
Active Users アクティブユーザー 600万人を突破 月間利用者数 * *2023年12月Google Analytics実績
フロントエンドのコード行数とファイル数 コード行数12万行、ファイル数1,600の規模まで拡大
プロダクト開発組織の規模 2024/06現在では60名の組織規模に
募集職種や詳細情報は採用ページをご覧ください We Are Hiring 採用サイト 募集職種や詳細情報は 採用サイトをご覧ください note 社員インタビューをはじめ、業
務や組織の詳細はnoteをご覧 ください 開発ノウハウなど技術的なト ピックはエンジニアブログをご 覧ください エンジニアブログ
Firebase Remote Config を利⽤した Feature Flags の導⼊ SODA Dev Talk
#2 #SODADev
Feature Flags とは何か
Feature Flags とは、プロダクト開発時に新機能の公開(リリース)や変更を簡単に制御 できるようにする仕組み。 コード内にフラグを埋め込むことで機能のオン/オフをすることが簡単にできる。 よくある実装例 Feature Flags とは何か
• 開発中の機能をマージすることができる。 ◦ 開発中でも細かい単位で PRを出しマージすることができる。 ◦ コンフリクトを抑えられる。コンフリクト解消時の考慮を最小化できる。 •
リリース影響範囲をコントロールすることができる。 ◦ 小さい単位でマージできるため、切り戻しも簡単。 ◦ 一部顧客だけの先行公開など、段階的にリリースできる。 ◦ コードのマージ・デプロイタイミングと、公開(リリース)タイミングを分けることができ、公開時の作業 を減らすことができる。 • 上記を総合して、小さな変更を入れやすくなり開発生産性が向上する Feature Flags のメリット
なぜ導⼊したいのか
なぜ導入したいのか 開発中の機能を細かくマージしたい モバイルアプリと同じタイミングでリリースをしたい
Firebase Remote Config について
Firebase Remote Config は、ユーザーにアプリのアップデートをダウンロードしてもら わなくても、アプリの動作や外観を変更できるクラウドサービス。 アプリはアップデートの有無を頻繁にチェックし、パフォーマンスにほとんど影響をおよぼ すことなくアップデートを適用できる。 https://firebase.google.com/docs/remote-config?hl=ja Firebase
Remote Config について
Firebase Remote Config の実装例
Firebase Remote Config について すでにモバイルアプリで導入済みだった。 同じ条件で機能の出し分けをするためにフロントエンドでも導入をしたい。
運⽤⽅法 (モバイルアプリ)
1. Toggleのオーナーを決める 2. 命名ルール 3. 管理表 運用方法
Toggleのライフサイクル(登録から設定の削除まで)に責任を負う人。 オーナーはToggleを追加し、機能の公開を終え役割を終えたと判断した時にToggleの 設定および関連実装を削除する必要がある。 Toggleのオーナーを決める
スニダンではToggleのsuffixだけ決めていて、機能公開を制御するものに関しては release_toggle がつくようにしている。 過去に使ったことのある名前については再利用しないこともルールにしている。 命名ルール
1. Toggle名 2. 用途(Toggleの設定値を切り替えた際の挙動の変化) 3. App version(Toggleの実装を追加したバージョン) 4. オーナー 5.
削除可能なタイミング 管理表 (Notionのテーブルで管理)
機能をこまめにリリースしたり事前の確認のために即時かつ柔軟な条件で機能の出し 分けをしたい。 Firebase Remote Config を使えば、柔軟な機能のオン/オフの切り替え、段階的な公 開、A/Bテストなど、アプリとWebで同じ条件で実現できる。 まとめ
質問は Xに #SODADev のハッシュタグをつけてポストをお願いします 質疑応答
ご清聴ありがとうございました
今日はイベントにお越しいただきありがとうございました! 今後SODAではエンジニア向けの勉強会を定期的に開催していこうと考えているのでま た参加していただけると嬉しいです 勉強会に関するアンケートがあるのでご回答をお願いします https://forms.gle/YJ1Ev75jTvYY2m9G6 最後に
SODA Dev Talk #2 #SODADev