週次リリースを実現するための グローバルアプリ開発
by
Haruta Yamada
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
© 2024 Cookpad Inc. Tech Kitchen #29 Mobile App One Experience 週次リリースを実現するための グローバルアプリ開発 Haruta Yamada
Slide 2
Slide 2 text
© 2024 Cookpad Inc. 2 山田 陽大(Haruta Yamada) ● 2024/04 新卒入社 ○ 2019/06~ 就業型インターン ● 役職: iOSエンジニア ● 趣味: 🍳, ☕ 自己紹介
Slide 3
Slide 3 text
● レシピ事業部の開発サイクルについて ○ リリースを跨いだ開発 ○ 翻訳(多言語対応) 話したいこと © 2024 Cookpad Inc. 3
Slide 4
Slide 4 text
OneExperience前からスクラム開発を採用 レシピ事業部の開発サイクルについて © 2024 Cookpad Inc. 4
Slide 5
Slide 5 text
1スプリントを1週間で回している スクラム開発 © 2024 Cookpad Inc. 5 月 火 水 木 金 プランニング レビュー Start → → End
Slide 6
Slide 6 text
1スプリントに1リリース(週次リリース) スクラム開発 © 2024 Cookpad Inc. 6 月 火 水 木 金 プランニング レビュー コードフリーズ サブミット リリース
Slide 7
Slide 7 text
© 2024 Cookpad Inc. 7 1週間毎に機能を完成させている? そんな事はない
Slide 8
Slide 8 text
様々な要因によって1スプリントで実装しきれない ● バックログの優先順位 ● リソースが工数に対して不足している ● 突発的な不具合対応 © 2024 Cookpad Inc. 8 スクラム開発 スプリント (リリース)を跨いだ開発が必要
Slide 9
Slide 9 text
FeatureToggle(FT) ● ログインの有無 ● リージョン ● 課金の有無 ● プラットフォーム(iOS, Android, Web) etc.. © 2024 Cookpad Inc. 9 スプリントを跨いだ開発をするには? APIレスポンスの一例
Slide 10
Slide 10 text
© 2024 Cookpad Inc. 10 FTを利用した機能開発
Slide 11
Slide 11 text
© 2024 Cookpad Inc. 11 FTを利用した機能開発 (フラグが無効化されていれば) mainブランチに機能を追加できる 🎉
Slide 12
Slide 12 text
スクラム開発 © 2024 Cookpad Inc. 12 月 火 水 木 金 コードフリーズ サブミット リリース 機能公開 🎉
Slide 13
Slide 13 text
© 2024 Cookpad Inc. 13 FTを利用した機能開発 管理コストの増加に繋がる サーバーサイド: 200のFT - Rollout: 179 - Experiment(期限付きFT): 21 iOS アプリ: 74のFT - Remote FT(global-webで制御する): 67 - Local FT: 7
Slide 14
Slide 14 text
© 2024 Cookpad Inc. 14 FTを利用した機能開発 FT Off FT On
Slide 15
Slide 15 text
© 2024 Cookpad Inc. 15 FTを利用した機能開発
Slide 16
Slide 16 text
© 2024 Cookpad Inc. 16 FTを利用した機能開発 機能が公開されたら消して良い、、?
Slide 17
Slide 17 text
© 2024 Cookpad Inc. 17 FTを利用した機能開発 FTが放置されてしまう問題 ● 明確な対応方針みたいなものはない ● ロールバックするかもしれない ● 特定のユーザー限定公開 ● 削除自体が少なくない工数を消費する
Slide 18
Slide 18 text
© 2024 Cookpad Inc. 18 FTを利用した機能開発 用法を守って使う ● FTを使わないパターンも模索する ○ region == .jp / user.isPremium ● 影響範囲を最小限に止める ○ 遷移先の切り替え / Interactor, ViewModelBuilderでのみ...
Slide 19
Slide 19 text
翻訳(多言語対応 )について © 2024 Cookpad Inc. 19
Slide 20
Slide 20 text
© 2024 Cookpad Inc. 20 翻訳(多言語対応) GitHub OneSky フレーズの追加、削除 翻訳の追加、削除 コンポーネントの変更による フレーズの追加、削除 Bitrise(CI/CD) 各リージョン向けの 翻訳を追加 エンジニア 各リージョンの翻訳者
Slide 21
Slide 21 text
1スプリントに1リリース(週次リリース) スクラム開発 © 2024 Cookpad Inc. 21 月 火 水 木 金 プランニング レビュー コードフリーズ サブミット リリース
Slide 22
Slide 22 text
© 2024 Cookpad Inc. 22 翻訳(多言語対応) GitHub コンポーネントの変更による フレーズの追加、削除 エンジニア デザイナー 確定した仕様で依頼 UKリージョンの翻訳者 確認、修正 英訳チェック依頼
Slide 23
Slide 23 text
© 2024 Cookpad Inc. 23 翻訳(多言語対応) Cooksnap つくれぽ Today CookingToday 今日つくる 殿堂入りレシピ Top Cooksnapped Recipes
Slide 24
Slide 24 text
1スプリントに1リリース(週次リリース) スクラム開発 © 2024 Cookpad Inc. 24 月 火 水 木 金 依頼する フレーズ追加 翻訳取り込み コードフリーズ
Slide 25
Slide 25 text
© 2024 Cookpad Inc. 25 翻訳(多言語対応) GitHub OneSky フレーズの追加、削除 翻訳の追加、削除 コンポーネントの変更による フレーズの追加、削除 Bitrise(CI/CD) 各リージョン向けの 翻訳を追加 エンジニア 各リージョンの翻訳者 補足情報を伝える
Slide 26
Slide 26 text
おまけ © 2024 Cookpad Inc. 26 オリジナルのフレーズ 補足情報、背景 スクリーンショット 翻訳後のフレーズ
Slide 27
Slide 27 text
© 2024 Cookpad Inc. 27