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
Motoki Narita
May 01, 2018
Technology
11
3k
iOSの自動化と仕組み化 ~コードと設計に集中する~
Mercari Meetup for Mobile App Engineer in Fukuoka
https://mercari.connpass.com/event/83957/
Motoki Narita
May 01, 2018
Tweet
Share
More Decks by Motoki Narita
See All by Motoki Narita
Mercari 10years iOS Development
motokiee
5
4k
Alexa, Swiftで スマートスピーカーは実装できる?
motokiee
0
1.6k
入力を型で表現する
motokiee
2
3.9k
Move Fast iOS Development
motokiee
4
3.8k
結婚式を支えた技術 Firebaseを活用したサーバレスiOSアプリケーション開発
motokiee
33
25k
Vision Framework 入門
motokiee
2
1.8k
Lightweight Dependency Injection tips
motokiee
10
3k
Hello React Native
motokiee
8
610
RxSwift in Practice
motokiee
11
5.9k
Other Decks in Technology
See All in Technology
Wasm元年
askua
0
110
25分で解説する「最小権限の原則」を実現するための AWS「ポリシー」大全
opelab
9
2.2k
(非公式) AWS Summit Japan と 海浜幕張 の歩き方 2025年版
coosuke
PRO
1
340
Microsoft Build 2025 技術/製品動向 for Microsoft Startup Tech Community
torumakabe
1
210
TechLION vol.41~MySQLユーザ会のほうから来ました / techlion41_mysql
sakaik
0
160
Create a Rails8 responsive app with Gemini and RubyLLM
palladius
0
140
米国国防総省のDevSecOpsライフサイクルをAWSのセキュリティサービスとOSSで実現
syoshie
2
820
VISITS_AIIoTビジネス共創ラボ登壇資料.pdf
iotcomjpadmin
0
150
強化されたAmazon Location Serviceによる新機能と開発者体験
dayjournal
2
160
“社内”だけで完結していた私が、AWS Community Builder になるまで
nagisa53
1
240
Welcome to the LLM Club
koic
0
140
BrainPadプログラミングコンテスト記念LT会2025_社内イベント&問題解説
brainpadpr
0
160
Featured
See All Featured
The World Runs on Bad Software
bkeepers
PRO
69
11k
GitHub's CSS Performance
jonrohan
1031
460k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
233
17k
Thoughts on Productivity
jonyablonski
69
4.7k
A designer walks into a library…
pauljervisheath
206
24k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
790
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
48
2.8k
Optimising Largest Contentful Paint
csswizardry
37
3.3k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.8k
Facilitating Awesome Meetings
lara
54
6.4k
Designing for humans not robots
tammielis
253
25k
The Cult of Friendly URLs
andyhume
79
6.4k
Transcript
iOSͷࣗಈԽͱΈԽ ~ίʔυͱઃܭʹूத͢Δ~ Mercari Drink Meetup for Mobile App Engineer in
Fukuoka
ࣗݾհ • GitHub: motokiee • twitter: @motokiee • ικ →
ϝϧΧϦ • iOSΤϯδχΞ • Ϗʔϧ͕͖ • iOSDC Japan 2016 / 2017 / 2018 ίΞελοϑ
ࣗݾհ • GitHub: motokiee • twitter: @motokiee • ικ →
ϝϧΧϦ • iOSΤϯδχΞ • Ϗʔϧ͕͖ • iOSDC Japan 2016 / 2017 / 2018 ίΞελοϑ
෭ୂͬͨΓɺΦʔϓχϯάϜʔϏʔ࡞ͬͨΓɺެࣜΞϓϦ࡞ͬͨΓɺϊϕϧςΟ࡞ͬͨΓɻ ࠷ߴͷΧϯϑΝϨϯεΛ࡞ΔͨΊʹελοϑͱҰॹʹؤு͍ͬͯ·͢ʂ
iOSDC Japan 2018 ࢝ಈ͠·ͨ͠! ͪΖΜϝϧΧϦεϙϯαʔΓ·͢!! ୈҰճ͔Β3࿈ଓ!!
ࣗݾհ • GitHub: motokiee • twitter: @motokiee • ικ →
ϝϧΧϦ • iOSΤϯδχΞ • Ϗʔϧ͕͖ • iOSDC Japan 2016 / 2017 / 2018 ίΞελοϑ
͕͖ ຊͷBrewdogͱ͍͏ΫϥϑτϏΞ όʔʹि2͘Β͍Ͱߦͬͯ·͢ʢiOSDC ͰBrewdogʹग़ձ͍ࠍΕͨʣ ౦ژʹདྷͨͱ͖ͥͻʂ
͖ΐ͏ͷ
ίʔυΛॻ͘͜ͱʹूத͢Δ
Ͳ͏ͬͯʁ
ίʔυΛॻ͘͜ͱʹूத͢Δํ๏ • ϛʔςΟϯάΛݮΒ͢ • ܦඅਃͱ͔׳Εͯͳͯ࣌ؒ͘ͷ͔͔Δ࡞ۀΛݮΒ͢ • ੩͔ͳڥͰूத͢Δ • υϦϯΫങ͍ʹߦͬͨϦ͢ΔҠಈ࣌ؒΛݮΒ͢
ϝϧΧϦͩͱ ͍͍ͩͨڥ͍ͬͯΔ
ίʔυΛॻ͘͜ͱʹूத͢Δํ๏ • ϛʔςΟϯάΛݮΒ͢ → ϛʔςΟϯάܾΊΔɻ͍ͨͣΒʹਓΛݺͳ͍ • ܦඅਃͱ͔׳Εͯͳͯ࣌ؒ͘ͷ͔͔Δ࡞ۀΛݮΒ͢ → ࣾ৯ΞϓϦಋೖͳͲ࠷খݶʹͳΔΑ͏ྀ͞Ε͍ͯΔ •
੩͔ͳڥͰूத͢Δ → ूதBOXϧʔϜ͕͋Δ • υϦϯΫങ͍ʹߦͬͨϦ͢ΔҠಈ࣌ؒΛݮΒ͢ → υϦϯΫແྉ
ͰΤϯδχΞԿΛ͢Δ͔ʁ
Automation, Karakuri
͢ͳΘͪ
ࣗಈԽͱΈԽ
ίʔυΛॻ͘Ҏ֎ͷ͜ͱΛͳΔࣗ͘ಈԽ • Ϗϧυͷ • ϦϦʔε࡞ۀ • αϒϛοτ • ϨϏϡʔ
※ ϝϧΧϦ ΧϧνʔϜͰͷऔΓΈʹ͍ͭͯઆ໌͍ͯ͠ ·͕͢ɺϝϧΧϦ΄΅ಉ͜͡ͱΛ͍ͯ͠·͢
ίʔσΟϯάͷޮͱΈԽ
swiftlint autocorrect
• ΤϥʔϫʔχϯάΛࣗಈͰमਖ਼͢ΔίϚϯυ • ίʔσΟϯάنࡉ͔ܾ͘ΊͣʹσϑΥϧτઃఆ ◦ ͔ͳΓࡉ͔ܾ͘Ίͨ͜ͱ͕͋ͬͨσϑΥϧτͰ େ͖ͳ͕ى͖ͨ͜ͱͳ͍
Danger
• ίʔυϨϏϡʔͷࣗಈԽπʔϧ • DangerfileͰઃఆΛهड़ • ϦϦʔεϊʔτͷߋ৽(ޙड़)Εɺιʔε ίʔυͷมߋͱυΩϡϝϯτԽ͕࿈ಈ͢Δ ͷɺTODO:FIXME:͕͍ͬͯͳ͍͔ࢹ
None
ϑΥʔϚοτɺίʔσΟϯά͔Βੜ͢Δ࡞ۀͳͲ Ε͕ͪͳ͜ͱΛޮԽ → ઃܭͱίʔυͷ࣭ʹूத
Ϗϧυͷ
αϒϛοτલQAظؒͰ Δ͜ͱҙ֎ͱଟ͍
σβΠφʔͷUIνΣοΫ ʮ͋ͷػೳͷσβΠϯͬͯ͏ݟΒΕΔʁʯ
όοΫΤϯυνʔϜͱͷ࿈ܞ ʮ͋ͷAPIͬͯ͏ݕূ։࢝Ͱ͖·͢ʁ xxϦϦʔεͳΜͰ͚͢Ͳʯ
QAνʔϜͷ࿈བྷ
CIͷઃఆ(Bitrise) • Unit Testpush͝ͱʹ → յΕͨ߹ʹ͙͢ݕ • masterϒϥϯνʹpush/mergeͰFabricΞοϓϩʔυ → ଞͷ։ൃϝϯόʔ͕͙͢ʹ৽͍͠ػೳΛࢼ͢͜ͱ͕Ͱ͖Δ
• release/* ͷpush/mergeͰFabricͷΞοϓϩʔυˍiTunes Connect ͷΞοϓϩʔυ → ϦϦʔεީิQAऴྃΛͨͣʹiTCʹΞοϓϩʔυ
ϦϦʔεީิ͕Ξοϓϩʔυ͞Εͨ͜ͱΛSlackͰ௨ɺQAνʔϜ ϏϧυΛ͙͢ʹ৮ΕΔˍ։ൃϝϯόʔαϒϛοτ͕͍͍ۙͮͯΔ͜ ͱ͕͔Δ
“ਖੵΕࢁͱͳΔ” • खಈͰ͑ͳ͍ͱ͍͚ͳ͍ͷͰϦϦʔε༻Ϗϧυ͕ऴΘ͔ͬͨͲ͏͔Λ ؾʹ͍ͯ͠ͳ͍ͱ͍͚ͳ͍ = ूதͰ͖ͳ͍ • ผͷ͜ͱʹूதͯ͠Ε͍ͯͨΓ͢ΔͱQAνʔϜ࿈བྷΛͭ͜ͱʹͳ Δ •
ΤϯδχΞɺQAΤϯδχΞͱʹଟ͘ͷ࣌ؒΛແବʹ͍ͯͨ͠ʢͣʣ
ϦϦʔεؔ࿈࡞ۀ
iTunes Connectؔ࿈ͷ࡞ۀ • ϦϦʔεϊʔτͳͲͷϝλσʔλߋ৽ • αϒϛοτ • ϦδΣΫτରԠ • ϦϦʔε࡞ۀ
iTunes Connectͷϝλσʔλཧ
Pull RequestϕʔεͰࠩཧ
iTunesConnectͷ εςʔλεࢹ
iTunesConnectͷεςʔλεࢹ • ੵΈॏͳΔͱෛ୲ʹͳΔ • αϒϛοτޙͷ৹ࠪঢ়گΤϯδχΞҎ֎ؾʹͳΔ • αϒϛοτޙΤϯδχΞ͕εςʔλεʹ͍ͭͯ࿈བྷ͢Δ • ʮreject͞Ε·ͨ͠ʯʮ৹ࠪ௨ͬͨͷͰϦϦʔε͠·͢ʯͳͲ •
ؾʹͳΔΜ͚ͩͲɺiOSΤϯδχΞҎ֎ͦ͜·Ͱதࢭͯ͠ͳ͍
͜Μͳײ͡ͷը૾ΛSlackʹషͬͯप͍ͯͨ͠
ΊͪΌͪ͘Ό໘
Google Apps ScriptͰiTunes ConnectͷϝʔϧνΣοΫ & Slackߘ
ਓؒͷΔ͜ͱͰͳ͔ͬͨ ※ϝϧνϟϦνʔϜಉ༷ͷεΫϦϓτͬͯ·͢
GASͰ͑ΔscriptΛgistͰެ։ͯ͠·͢ https://gist.github.com/motokiee/39a875e97349fe9325314bdae9d3af2a
࠷ऴతʹiTunes ConnectΛ։͘ͷ
1.৹ࠪʹఏग़͢Δͱ͖ a.ఏग़͢ΔϏϧυΛઃఆ͢Δͱ͖ 2.ϦϦʔε͢Δͱ͖ ͚ͩʂ
େࣄͳϘλϯΛϙνΔ͜ͱ͚ͩ
·ͱΊ • ೋΔ͜ͱࣗಈԽɺΈԽ͢Δ • ίʔυͷ࣭Λ্͛ΔͨΊʹɺίʔυઃܭʹूத͢ΔͨΊʹ༨ ܭͳ͜ͱΛߟ͑ͳ͍Α͏ʹࣗಈԽɾΈԽ͢Δ