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
新卒のiOSエンジニアが”クックパッドの今”を紹介!
Search
Haruta Yamada
August 23, 2024
Technology
0
880
新卒のiOSエンジニアが”クックパッドの今”を紹介!
Haruta Yamada
August 23, 2024
Tweet
Share
More Decks by Haruta Yamada
See All by Haruta Yamada
週次リリースを実現するための グローバルアプリ開発
tera_ny
1
5.4k
Other Decks in Technology
See All in Technology
研究開発部メンバーの働き⽅ / Sansan R&D Profile
sansan33
PRO
4
21k
Node vs Deno vs Bun 〜推しランタイムを見つけよう〜
kamekyame
1
220
投資戦略を量産せよ 2 - マケデコセミナー(2025/12/26)
gamella
1
610
AI時代のアジャイルチームを目指して ー スクラムというコンフォートゾーンからの脱却 ー / Toward Agile Teams in the Age of AI
takaking22
10
4.1k
_第4回__AIxIoTビジネス共創ラボ紹介資料_20251203.pdf
iotcomjpadmin
0
170
「アウトプット脳からユーザー価値脳へ」がそんなに簡単にできたら苦労しない #RSGT2026
aki_iinuma
7
3.8k
2025-12-27 Claude CodeでPRレビュー対応を効率化する@機械学習社会実装勉強会第54回
nakamasato
4
1.4k
SES向け、生成AI時代におけるエンジニアリングとセキュリティ
longbowxxx
0
300
AI駆動開発ライフサイクル(AI-DLC)の始め方
ryansbcho79
0
290
ハッカソンから社内プロダクトへ AIエージェント ko☆shi 開発で学んだ4つの重要要素
leveragestech
0
560
Sansan Engineering Unit 紹介資料
sansan33
PRO
1
3.6k
BidiAgent と Nova 2 Sonic から考える音声 AI について
yama3133
2
140
Featured
See All Featured
Ruling the World: When Life Gets Gamed
codingconduct
0
120
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.3k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
1.8k
Git: the NoSQL Database
bkeepers
PRO
432
66k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
132
19k
Learning to Love Humans: Emotional Interface Design
aarron
274
41k
The World Runs on Bad Software
bkeepers
PRO
72
12k
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
110
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.2k
AI Search: Where Are We & What Can We Do About It?
aleyda
0
6.8k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
9
1k
The Curious Case for Waylosing
cassininazir
0
200
Transcript
© 2024 Cookpad Inc. iOSDC 2024 スポンサーセッション 新卒のiOSエンジニアが "クックパッドの今"を紹介! Haruta
Yamada
© 2024 Cookpad Inc. 2 プロフィール Haruta Yamada (paruru) -
2024/04~ 新卒入社 (レシピ事業部) - 2019/06~ 就業型インターン - 領域: iOS, Webfrontend - 趣味: ☕ 🍳
クックパッド (レシピ事業部 )が今取り組んでいること © 2024 Cookpad Inc. 3
© 2024 Cookpad Inc. 4 One Experience
© 2024 Cookpad Inc. 5 日本と海外向けレシピサービスの統合 🎉
© 2024 Cookpad Inc. 6 アジェンダ • OneExperienceとは? • Globalでの開発について紹介
◦ 開発環境の違い ◦ 多言語対応 ◦ デザインシステム
© 2024 Cookpad Inc. 7 クックパッド Global Cookpad
© 2024 Cookpad Inc. 8 • ユーザー体験を統一するプロジェクトが始動(2023/10~) • 日本のシステムをグローバルのシステムへ移行(iOS, Android,
Web) ◦ 日本のプロジェクト、リポジトリはコードフリーズ予定 ◦ 多言語対応やレシピを取り込む仕組みが整っている 統合プロジェクト(One Experience)
© 2024 Cookpad Inc. 9 見た目や機能も かなり違う e.g. • 食べ方提案(日本)
• 今日作る(日本) • コメントでのやりとり(海外) • リアクション(海外)
ブラッシュアップして アプリを統合する © 2024 Cookpad Inc. 10 新アプリ クックパッド Cookpad
8/21~ 新アプリがリリース開始 🎉 ※新規インストール+一部ユーザーのみ © 2024 Cookpad Inc. 11 ブースにて触れます
!!
© 2024 Cookpad Inc. 12 Globalでの開発について紹介 (苦労話)
ios-cookpad (日本) - VIPER - SwiftUIの導入 - GraphQL(一部) - モバ基による
開発環境の整備 © 2024 Cookpad Inc. 13 https://techconf.cookpad.com/2019/kohki_miki.html 開発環境の違い
Domain, Data Layer Presentation Layer Flow Logic global-ios (海外) -
MVVM-C - UIKit - OpenAPI © 2024 Cookpad Inc. 14 ViewModel Interactor Model ViewController View Coordinator Datastore Model Repository Service Service Service 開発環境の違い
多言語対応 © 2024 Cookpad Inc. 15
© 2024 Cookpad Inc. 16 多言語対応(翻訳) - OneSkyでフレーズと翻訳を管理(iOS, Android, Web)
- 英語でフレーズを追加し、後から日本語などの翻訳を取り込む - 日本限定の機能でも翻訳対象 (あとから他の国に展開することもあるため ) https://www.oneskyapp.com/ 33個のLocalizable.stringsが存在(被り有り) 日本語、英語、スペイン語、ドイツ語、アラビア語、ウクライナ語、、
© 2024 Cookpad Inc. 17 多言語対応 (翻訳) Github OneSky フレーズの追加、削除
翻訳の追加、削除 コンポーネントの変更による フレーズの追加、削除 Bitrise(CI/CD) 各リージョン向けの 翻訳を追加 エンジニア 各リージョンの翻訳者
© 2024 Cookpad Inc. 18 多言語対応 (翻訳) Cooksnap つくれぽ Today
今日つくる 人気のキーワード Today’s popular searches
© 2024 Cookpad Inc. 19 RTL(Right to Left)対応
© 2024 Cookpad Inc. 20 RTL(Right to Left)対応
© 2024 Cookpad Inc. 21 RTL対応
© 2024 Cookpad Inc. 22 多言語対応 スペース区切りで単語を分割したい “鶏胸肉 牛乳” -> “鶏胸肉”,
“牛乳” スペース区切りで単語を分割できない “鶏胸肉” -> “鳥”, “胸” 言語や商習慣によってコンテンツや動作に違いが出る
© 2024 Cookpad Inc. 23 機能出し分け A/B Testing ios-cookpad: -
user-features(feature flag) - パターンにマッチしたユーザーに機能を提供可能 - Redshiftで抽出したユーザーグループに対して提供可能 global-ios: - FeatureToggle - アプリのバージョンやリージョンに絞って提供 - APIの1機能として柔軟に変更ができる Picture 画像の最大幅はガイド線に準じて配置してください Picture 画像の最大幅はガイド線に準じて配置してください ※どちらもローカルのフラグをコード上で定義可能
© 2024 Cookpad Inc. 24 多言語対応•品質管理
© 2024 Cookpad Inc. 25 多言語対応•品質管理
デザインシステムへの対応 © 2024 Cookpad Inc. 26
© 2024 Cookpad Inc. 27 デザインシステムへの対応 Apron (日本) Mise (Global)
© 2024 Cookpad Inc. 28 デザインシステムへの対応 https://note.com/fjkn/n/nf73742ec925a
© 2024 Cookpad Inc. 29 デザインシステムへの対応
© 2024 Cookpad Inc. 30 ダークモード • ハイコントラストモードへの対応
© 2024 Cookpad Inc. 31 ダークモード • ハイコントラストモードへの対応 ※実際にはマークダウンからカラーセットを作る仕組みが整備されている
© 2024 Cookpad Inc. 32 ダークモード • ハイコントラストモードへの対応
© 2024 Cookpad Inc. 33 ダークモード • ハイコントラストモードへの対応 デザインシステムから逸脱した 色指定が増加
ライトモードの色指定はそのままに、このコンポーネントだけ変えたい、、、
© 2024 Cookpad Inc. 34 OneExperienceを進めてみて • これからは海外にいるユーザーにも向き合っていく ◦ ローカライズが前提の開発になっていく
• 移行により負債を生み出してしまった ◦ リリース後の課題 • 今が一番面白いタイミング ◦ 新卒関係なく様々な挑戦できる • iOSDCに間に合ってよかった 移行後初めてのレシピ投稿
© 2024 Cookpad Inc. 35