週次リリースを実現するための グローバルアプリ開発
by
Haruta Yamada
×
Copy
Open
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
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