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
攻めのモバイルアプリ開発
Search
FUJI Goro
August 23, 2014
Technology
22
3k
攻めのモバイルアプリ開発
DevLOVE現場甲子園2014 東日本大会
http://devlove.doorkeeper.jp/events/11792
の発表資料です。
FUJI Goro
August 23, 2014
Tweet
Share
More Decks by FUJI Goro
See All by FUJI Goro
How to Boost Your Code with WebAssembly
gfx
2
2.6k
AssemblyScriptでライブラリコードの高速化をしてみる
gfx
5
2.7k
実践TypeScriptトークバトル
gfx
1
960
歴史的経緯の説明 as code
gfx
7
2.5k
Elasticsearchによる 全文検索の実装 in Rails
gfx
5
9.1k
すばらしきGraphQLのSEKAIへようこそ
gfx
20
8.9k
マルチテナント・ウェブアプリケーションの実践
gfx
14
9.2k
How to choose the ORM on Android
gfx
1
4k
How Do We Get Along With Static Types
gfx
5
3.2k
Other Decks in Technology
See All in Technology
Observabilityジャーニーを実現するためのAWSサービス:CloudWatch編
o11yfes2023
0
140
社内での継続的な機械学習勉強会の開催のコツ
yudai00
2
380
QAエンジニアが伝えたい品質保証の羅針盤 / Compass for Quality Assurance
mii3king
1
320
QA経験のないエンジニアリング マネージャーがQAのカジュアル面談に出て 苦労していること・気づいたこと / scrum fest niigata 2024
yoshikiiida
2
640
DevRelによる信頼構築とデータ駆動で変わるエンジニア採用 / DevRel Trust Building to Data Driven Engineering Hiring
bobtani
1
120
エムスリーQAチーム紹介資料 / Introduction of M3 QA Team
m3_engineering
1
280
RailsConf 2024 Keynote "Startups on Rails in 2024"
irinanazarova
0
730
AWS Observability ベストプラクティス 大紹介
o11yfes2023
0
150
【リラン】AIの光と闇?失敗しないために知っておきたいAIリスクとその対応 ①政府の動き編
tkhresk
0
130
Databricksの生成AI戦略
taka_aki
1
350
サイボウズ 開発本部採用ピッチ / Cybozu Engineer Recruit
cybozuinsideout
PRO
9
37k
TypeScript の抽象構文木を用いた、数百を超える API の大規模リファクタリング戦略
yanaemon
6
1.2k
Featured
See All Featured
Optimising Largest Contentful Paint
csswizardry
13
2.4k
Put a Button on it: Removing Barriers to Going Fast.
kastner
58
3.1k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
275
13k
The Invisible Customer
myddelton
114
12k
Automating Front-end Workflow
addyosmani
1357
200k
Testing 201, or: Great Expectations
jmmastey
30
6.4k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
245
20k
Build The Right Thing And Hit Your Dates
maggiecrowley
25
2k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
226
51k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
21
1.6k
KATA
mclloyd
16
12k
A better future with KSS
kneath
231
16k
Transcript
߈ΊͷϞόΠϧΞϓϦ։ൃ Fuji, Goro (@__gfx__) #devloveٕ 4ճද ʢඈͼೖΓࢀՃʣ 2014/08/23
ࣗݾհ • ౻ ޗ (gfx) • CookpadͷϞόΠϧΤϯδχΞ(iOS/Android) • ϥΠϒϥϦ։ൃ։ൃڥඋɾࣗಈԽͳͲ •
background: C/C++, Perl, JavaScript (LLଟΊ) • ߈Ίͷ։ൃڥɾମ੍ͮ͘ΓΛ͍͖͍ͯͨ͠
– Fuji, Goro (#devloveٕ, 2014) “ʮ߈Ίʯͱɺݱঢ়ҡ࣋ʹྲྀ͞ΕΔؾ࣋ ͪʹཱ͔ͪ͏ҙࢤͰ͋Δ”
߈Ίͷ։ൃϫʔΫϑϩʔ
Web։ൃݱͷ͋Δ1γʔϯ • ܧଓతσϦόϦʔ࠷ߴʂCI͋Δ͔Β࠷ݶͷ ࣭อূͰ͖Δ͠ɺ͋ͬͨΒϩʔϧόο Ϋ͢Ε͍ΑͶʂ • ϦʔϯελʔτΞοϓ࠷ߴʂMVP͔Βͷվྑ ͰάΠάΠՁΛ͔ͨΊͯ͜㽉㽉
Q. ϞόΠϧΞϓϦಉ͡ϊϦͰ࡞ΕΔʁ
A. ແཧ
ܧଓσϦόϦʔͰ͖ͳ͍ • ςετ͕WebΞϓϦͱൺֱͯ͘͠͠CIͰࣗಈͰς ετͰ͖Δൣғ͕ڱ͍ • Ξοϓσʔτͷڧ੍͕͍͠ɻ͋ΒΏΔόʔδϣϯ ࢢʹΓଓ͚ΔʢϢʔβʔͷυϩοϓΛ֮ޛ͢ ΔͳΒڧ੍ΞοϓσʔτΛଅ͢͜ͱͰ͖Δ͕…ʣ • submit͔Β৴·Ͱ࣌ؒ(Play)͔Βिؒ
(AppStore)͔͔Δ
MVP͔ΒҭͯΔͷ͍͠ • ϚʔέςΟϯάతʹϓϥοτϑΥʔϜετΞͷϨϏϡʔ ͕ͱͯॏཁͰɺΫΦϦςΟͷ͍όʔδϣϯ͕ΞϓϦ ࣗମͷΛҾͬுΔʢGoogle Playʣ • Πϯετʔϧͷϋʔυϧ͕ߴ͍ͨΊɺ࠷ॳͷҹ͕ѱ͘ ͯΞϯΠϯετʔϧ͞ΕΔͱɺ͋ͱ͔ΒͦͷҹΛ෴͠ ͯ࠶Πϯετʔϧͯ͠Β͏ͷ͕͍͠
• ࠷ॳͷόʔδϣϯͷΫΦϦςΟ͔ͳΓେࣄʢPlayͷβ ৴DeployGateͰϦʔϯ։ൃ͢Δʹෆेʣ
WebͱൺֱʹͳΒͳ͍ଟ༷ੑ • ϒϥβͷଟ༷ੑ: platform x software • platform: Windows, MacOSX
• software: IE7/8/9/10, Safari, Chrome • IEͰ͑͞ยखͰ͑ΒΕΔఔͷ • ͷଟ༷ੑ: platform x OS ver. x device • ͷछྨ͕ଟ͗ͯ͢ɺϦϦʔεલʹͯ͢ͷڥͰಈ࡞ ֬ೝ͢ΔͷෆՄೳ
! ͕͋ͬͨΒ ߈Ί͍͔ͯ͘͠ͳ͍
ϞόΠϧ։ൃϑϩʔͷ • ͍͍ͩͨʮߴ࣭ͳΞϓϦέʔγϣϯΛϦϦʔε͢Δ ͠͞ʯʹ͖ͭΔ • ܧଓతσϦόϦʔͳڥͰଘࡏ͠ͳ͍ɺ໌֬ͳίʔυϑ ϦʔζͱQAظؒΛઃ͚ͨ • AndroidΞϓϦͷ߹ݶఆެ։ػೳΛར༻ͯ͠க໋తͳ ͷ͋ΔόʔδϣϯͷΛ࠷ݶʹ͢Δ
• iOSΞϓϦͷ߹ϓϩϞίʔυʹΑΔલͷࢼݧͰக໋తͳ όʔδϣϯͷͷՄೳੑΛݮΒ͢
ίʔυϑϦʔζ • Web։ൃ: github-flow • ։ൃϒϥϯν(master)ΛৗʹσϓϩΠՄೳʹอͭ • ΞϓϦ։ൃ: git-flow (a
successful git branching model) • ։ൃϒϥϯν͔Βϒϥϯνϯάͯ͠CFͯ͠ϦϦʔεϒϥϯ νΛͭ͘ΓɺϦϦʔεϒϥϯνͰඞཁෆՄܽͳόάϑΟ ΫεҎ֎ҰߦΘͳ͍ • ͳ͓developϒϥϯνͭ͘Βͳ͍
$PEF 'SFF[F 3$ 'FBUVSF GPS NBTUFS GFBUVSF SFMFBTF
JNQPSUBOU CVHpY OFX GFBUVSF USJWJBM CVHpY
ݶఆެ։ • Google PlayͷػೳͰɺҰఆͷׂ߹ͷϢʔβʔ ʹ͚ͩΞοϓσʔτΛ৴Ͱ͖Δ • ࠷ॳʹ5%ϦϦʔε͢Δ͜ͱͰ • ͪ͜Βʹͱͬͯ5%ͰʮͨΓʯΛҾ͍ͨ ϢʔβʹͱͬͯͦΕ͕શͯͳͷͰɺ࠷ऴόʔ
δϣϯͷͭΓͰग़͢ͷલఏ
ϓϩϞίʔυ • ΞϓϦͷϨϏϡʔ͕௨ͬͨΒiTune connectͰ ϓϩϞίʔυΛͰ͖Δ • ެ։લʹɺެ։൛ͷΞϓϦΛҙͷʹΠ ϯετʔϧͰ͖Δ • ࠷ऴνΣοΫͰ͕͓͖ͨΒ༰ࣻͳ͘ϦϦʔ
εதࢭ
߈Ίͷ։ൃڥ
߈Ίͷ։ൃڥͮ͘Γ • ΞϓϦ։ൃ͕δϦශʹͳΔύλʔϯ • ΞϓϦ։ൃͰ͖Δϝϯόʔ͕গͳ͍ • ΞϓϦ։ൃνʔϜ͕ɺαʔϏε։ൃΛ͍ͯ͠Δ෦ ॺ͔ΒҎདྷΛ͏͚ͯΞϓϦΛͭ͘Δडୗ։ൃ৫ ʹͳͬͯ͠·͏ •
ࣗಈԽ͕͍͠Օॴ͕ଟ͍ • ؾ߹Ͱख࡞ۀ͢Δ͜ͱʹ׳Εͯ͠·͏
औΓΈ • ϞόΠϧΤϯδχΞΛ૿ͦ͏ʂ • ։ൃͷϊϋΛڞ༗͠Α͏ʂ • ࣗಈԽ͠Α͏ʂ
ϞόΠϧΤϯδχΞΛ૿ͦ͏ʂ • τοϓμϯͷϞόΠϧϑΝʔετએݴ • ੵۃతʹϖΞϓϩ͠ͳ͕Βͷ৽ػೳ։ൃ • ϞόΠϧ։ൃWeb։ൃͱ͔ͳΓҧ͏ • ࠷ॳͷนΛ͑Δ·Ͱͱ͜ͱΜ͖߹͏ •
͜ͷͰϞόΠϧ։ൃΛܦݧͨ͠ΤϯδχΞ ͍ͩͿ૿͑ͨ
։ൃϊϋΛڞ༗͠Α͏ʂ • ڞ௨ϥΠϒϥϦΛඋͯ͠ϋΠεΩϧͳΤϯδχΞͷՌʹ͋ ͔ͣΔ • ࣾʹmaven repositorycocoapods repositoryΛઃఆͯ͠ ϥΠϒϥϦΛཧ •
ใൃ৴ΛΈԽ͢Δ • potatotipsͱ͍͏ษڧձΛ࣮ࢪ • WEB+DB PRESS Vol81ʮAndroidΞϓϦ։ൃ࠷લઢʯΛدߘ
ࣗಈԽ͠Α͏ʂ • ϦϦʔεΤϯδχΞϦϯά࡞ۀྔ͕ଟ͍ • ଐਓԽμϝɺઈର • ϦϦʔεϏϧυJenkinsͰߦ͏ • Google Play
Developer APIʢ·ͩಋೖͯ͠ͳ͍ʣ • apkΛplayʹΞοϓϩʔυ͢Δ • ΞϓϦͷઆ໌จεΫγϣΛgitཧ͢Δ
Q & A (1) • Q. ࣗಈςετͲ͏ͯ͠Δʁ • A. ϞσϧͱϢʔςΟϦςΟଟগɻUIͷࣗಈς
ετ͍ͯ͠ͳ͍͕ɺCIͰओཁͳը໘ͷεΫγϣ ΛࡱΔͷΓ࢝Ί͍ͯΔ • Q. ϦϦʔεαΠΫϧʁ • A. iOS/Androidͱʹ2िؒʹҰͷϦϦʔε
Q & A (2) • Q. ίϛϡχέʔγϣϯͲ͏ͯ͠Δʁ • A. HipChat
+ github issuesɻgithub webhookͰrepo ͷมߋΛHipChatʹ௨͢ΔʢॹͰforce pushͰ ͖ͳ͍ʂʣ • Q. CIʁ • A. JenkinsΛͬͯίϛοτ͝ͱʹjobΛΒͤɺՌΛ DeployGate/TestFlightͰ։ൃ൛Λ͍ͯ͠Δ
Q & A (3) • Q. υοάϑʔσΟϯάͲ͏ͯ͠Δʁ • A. Ͱ͖͍ͯͳ͍ɻ͍͍ํ๏͕͋ͬͨΒڭ͑ͯ΄
͍͠ • Q. ͦΕͰɺࣾडୗମ੍ղফͰ͖ͨͷ͔ • A. ·ͩશʹղফͰ͖͍ͯͳ͍ɻ͍͍ํ๏͕ ͋ͬͨΒڭ͑ͯ΄͍͠
ؔ࿈ࢿྉ • Mobile First Development at COOKPAD (2014/5/29) •
rebuild.fm/45 (podcast) (2014/5/30) • AndroidΞϓϦͷϦϦʔεͯ͠·͔͢ (2014/8/20)