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
Mobile First Development at COOKPAD #deploygate
Search
FUJI Goro
May 29, 2014
Programming
27
12k
Mobile First Development at COOKPAD #deploygate
Bakusoku Iterations Tokyo at mixi (2014/5/29) の発表資料です
http://deploygate.doorkeeper.jp/events/11579
FUJI Goro
May 29, 2014
Tweet
Share
More Decks by FUJI Goro
See All by FUJI Goro
ステートレスなLLMでステートフルなAI agentを作る - YAPC::Fukuoka 2025
gfx
7
1.9k
How to Boost Your Code with WebAssembly
gfx
2
3.1k
AssemblyScriptでライブラリコードの高速化をしてみる
gfx
5
3.3k
実践TypeScriptトークバトル
gfx
1
1.2k
歴史的経緯の説明 as code
gfx
7
2.9k
Elasticsearchによる 全文検索の実装 in Rails
gfx
6
9.7k
すばらしきGraphQLのSEKAIへようこそ
gfx
20
9.8k
マルチテナント・ウェブアプリケーションの実践
gfx
14
9.7k
How to choose the ORM on Android
gfx
1
4.4k
Other Decks in Programming
See All in Programming
AI Assistants for Your Angular Solutions
manfredsteyer
PRO
0
150
へんな働き方
yusukebe
5
2.8k
『Kubernetes ☸️ で実践する Platform Engineering 』を最高速度で読み抜いたる!!👊🏻
hiroki_hasegawa
0
100
GoのDB アクセスにおける 「型安全」と「柔軟性」の両立 - Bob という選択肢
tak848
0
260
「接続」—パフォーマンスチューニングの最後の一手 〜点と点を結ぶ、その一瞬のために〜
kentaroutakeda
3
1.5k
車輪の再発明をしよう!PHP で実装して学ぶ、Web サーバーの仕組みと HTTP の正体
h1r0
2
240
Rで始めるML・LLM活用入門
wakamatsu_takumu
0
190
米国のサイバーセキュリティタイムラインと見る Goの暗号パッケージの進化
tomtwinkle
2
630
Fundamentals of Software Engineering In the Age of AI
therealdanvega
2
280
Claude Code Skill入門
mayahoney
0
410
Claude Codeログ基盤の構築
giginet
PRO
7
3.5k
野球解説AI Agentを開発してみた - 2026/02/27 LayerX社内LT会資料
shinyorke
PRO
0
350
Featured
See All Featured
A better future with KSS
kneath
240
18k
How to Think Like a Performance Engineer
csswizardry
28
2.5k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
55k
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
150
The #1 spot is gone: here's how to win anyway
tamaranovitovic
2
990
HDC tutorial
michielstock
1
570
We Have a Design System, Now What?
morganepeng
55
8k
Music & Morning Musume
bryan
47
7.1k
Agile that works and the tools we love
rasmusluckow
331
21k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
122
21k
GraphQLの誤解/rethinking-graphql
sonatard
75
11k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
140
Transcript
Mobile First Development at COOKPAD Bakusoku Iterations Tokyo #Deploygate 2014/5/29
by FUJI Goro
ࣗݾհ - FUJI Goro (gfx) • Software Engineer at COOKPAD
• iOS/Android྆ํΔ • ϞόΠϧΞϓϦͷ։ൃޮΛ্͛Δͷ͕ओͳࣄ • ۙͩͱϥΠϒϥϦͷ։ൃ͕ϝΠϯ • ੜ࢈ੑ͋͛ͯ͜ˢˢ
None
COOKPADͷϞόΠϧΞϓϦ
None
ͦͷଞ • μΠΤοτࢧԉΞϓϦ͕͍͔ͭ͘ • μΠΤοτ 80 / μΠΤοτͻͱΓͿΜ • ݕࡧʹಛԽͨ͠ΞϓϦ͕͍͔ͭ͘
• ುύου / Ωϟϕπύου • ͞Βʹଟ͘ͷΞϓϦΛϦϦʔε༧ఆ
Mobile First Development
ϢʔβʔϑΝʔετͳ։ൃ • ϢʔβʔʹͱͬͯͷՁΛ࠷େʹ͍ͨ͠ • ΞϓϦͷվળΛߴʹਐΊΔ • ػೳΛ͑ͳ͍࣌ؒΛݮΒ͢ • ҆ఆͨ͠։ൃαΠΫϧͷཱ͕֬ෆՄܽ
։ൃମ੍
։ൃମ੍ɿશମߏ • COOKPADΞϓϦ • iOS: 3ਓ • Android: 4~6ਓ •
ͦͷଞͷΞϓϦ • جຊ1ਓʴඞཁʹԠͯ͡αϙʔτ
։ൃମ੍ɿνʔϜମ੍ • ϞόΠϧϑΝʔετࣨɿίΞνʔϜਓ • ֤αʔϏεͷ෦ॺͰ৽ػೳͷ࣮ɿ1ਓ~ • e.g. ϓϨϛΞϜαʔϏε, ಛചใ •
ҰͭͷΞϓϦΛෳͷ෦ॺͰڠௐͯ͠։ൃ
։ൃڥ • Android • Android Studio & Gradle • iOS
• Xcode • AppCode (3.0 supports Storyboard!)
Mobile Apps vs. Web Apps • cookpad.comΣϒΞϓϦ • ҰʹճσϓϩΠΛߦ͏ •
සൟʹσϓϩΠ͕͋͠ΕϩʔϧόοΫ͢Δ • masterৗʹdeployՄೳͳঢ়ଶʹ͓ͯ͘͠ • ҰํMobile AppؾܰʹϩʔϧόοΫͰ͖ͳ͍
Mobile AppsͷϦϦʔεαΠΫϧ • ϩʔϧόοΫͰ͖ͳ͍ͷͰ৻ॏʹ͍ͯ͠Δ • ϦϦʔε͝ͱͷ։ൃظؒ2~3िؒ • ৽ػೳϚʔδલʹಈ࡞֬ೝ͢Δ • QAظؒ3ؒ
VCSͱͷ͖߹͍ํ
VCSͱͷ͖߹͍ํ • GitHub EnterpriseΛར༻ • masterʹೖΕΔίʔυඞͣPull RequestΛ ͠ɺνʔϜϝϯόʔʹΑΔϨϏϡʔΛඞਢʹ ͍ͯ͠Δ •
UIʹؔΘΔมߋσβΠφʔʹΑΔϨϏϡʔ ඞਢʹ͍ͯ͠Δ
gitͷϒϥϯνϯάϞσϧ • ࠷ॳwebͱಉ͡ελΠϧͰӡ༻͍ͯͨ͠ • ͍ΘΏΔgithub flow • P-RΛϚʔδ͢Δ·͑ʹݕূΛ͢·ͤΔ • ඞཁͳػೳΛ࣮͓͑ͨ͠ΒϦϦʔε
ࠒ͔Β։ൃ൛Λ͍ͬͯΔ͠ɺϚʔδલ ʹݕূ͍ͯ͠Δ͔Β͜ΕͰେৎ…ʂ
ʊਓਓਓਓਓਓਓʊ ʼɹಥવͷোɹʻ ʉY^Y^Y^Y^Y^Yʉ
ͦͯ࣌͠ྲྀΕ…
ݱࡏͷϒϥϯνϯάεϞσϧ • ίʔυϑϦʔζˍQAظؒΛઃ͚ͨ • “A successful git branching model” (git-flow)
ʹ͍ۙϒϥϯνϯάϞσϧʹͳͬͨ • ͨͩ͠git-flowͱҟͳΓdevelopΘͳ͍
$PEF 'SFF[F 3$ 'FBUVSF GPS NBTUFS GFBUVSF SFMFBTF
ݱࡏͷworkflow • ඞཁͳػೳΛ࣮͓͑ͨ͠ΒίʔυϑϦʔζʢCFʣͱ͢Δ • CFͨ͠ΒϦϦʔεީิʢRCʣϒϥϯνΛͭ͘Δ • RC͕ผΕͨΒmasterߋʹ࣍ͷόʔδϣϯͷͨΊͷम ਖ਼͕Ϛʔδ͞Ε͏Δ • RCϒϥϯνʹඞཁͳόάमਖ਼ΛೖΕΔ
• ϦϦʔεͨ͠ΒRCϒϥϯνΛmasterʹϚʔδ͢Δ
՝ • iOS/AndroidνʔϜ֎ͱͷڠௐ͕͍͠ • ϒϥϯνϯάϞσϧͷڞ༗ෆे
։ൃ൛ΞϓϦͷ TestFlight
جຊతʹJenkinsͰࣗಈԽ
TestFlight for iOS • AutoFlight ʹΑΔࣗಈΛߦ͍ͬͯΔ • GitHub͔ΒͷWebHook௨ΛAutoFlightProxy͕ड͚ Δ •
AutoFlightProxy͕JenkinsΛΩοΫ • Jenkins͕Ϗϧυͯ͠TestFlightʹΞοϓϩʔυ • ϒϥϯνʹΑͬͯઌͷνʔϜΛࣗಈతʹબͿ
deploygate for Android • masterʹίϛοτ͕͋ͬͨΒJenkinsΛΩοΫ • Ϗϧυˍςετ • ςετGenyMotionͰߦ͍ͬͯΔ •
deploygateʹ৴͢Δ • deploygateΞΧϯτGoogleεϓϨουγʔ
-PDBM.BDIJOF QVTI LJDL UFTU CVJME VQMPBE
iOS/Androidڞ௨ • masterʹ͋ΔίϛοτΛࣗಈ৴ • ։ൃ൛ΞΠίϯΛϦϦʔε൛ͱม͑ͯΘ͔Γ͘͢ • ։ൃ൛ID(bundle id / package
name)Λม͑ͯϦ Ϧʔε൛ͱڞଘͰ͖ΔΑ͏ʹ • ৴͞ΕΔ։ൃ൛production serverʹͭͳ͕Δ ͷͰνʔϜϝϯόʔҎ֎ීஈ͍Ͱ͖Δ
՝ • υοάϑʔσΟϯάΉ͔͍ͣ͠ • ։ൃ൛Λ࠷৽ʹอͭͷ໘͍͘͞ • ։ൃ൛ݻ༗ͷ͕Ͳ͏ͯ͠ଘࡏ͢Δ • ContentProvider/AccountManager·ΘΓͰτϥϒ ϧ͕͓͖͕ͪʢAndroidʣ
• Push௨͕͑ͳ͍ʢiOSʣ
՝ • ։ൃ൛ͷϑΟʔυόοΫ͕͍͠ • εΫϦʔϯΩϟϓνϟΛࣾνϟοτͳͲʹ؆୯ ʹΞοϓϩʔυ͢ΔΈͱ͔ʁ • ࣮ݧతػೳΛϢʔβʔʹͬͯΒ͍͍ͨ • PlayͷβػೳͰ͢Δʁ
• Chrome CanaryΈ͍ͨʹผΞϓϦʹ͢Δʁ
ࠓͨ͜͠ͱ ! • ։ൃମ੍ • git workflowͷ • ։ൃ൛ΛࣾͰ͢ΔΈ
͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠