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