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
4.3k
Alexa, Swiftで スマートスピーカーは実装できる?
motokiee
0
1.8k
入力を型で表現する
motokiee
2
3.9k
Move Fast iOS Development
motokiee
4
3.9k
結婚式を支えた技術 Firebaseを活用したサーバレスiOSアプリケーション開発
motokiee
33
26k
Vision Framework 入門
motokiee
2
1.9k
Lightweight Dependency Injection tips
motokiee
10
3.1k
Hello React Native
motokiee
8
620
RxSwift in Practice
motokiee
11
5.9k
Other Decks in Technology
See All in Technology
AI時代の発信活動 ~技術者として認知してもらうための発信法~ / 20251028 Masaki Okuda
shift_evolve
PRO
1
140
AWS DMS で SQL Server を移行してみた/aws-dms-sql-server-migration
emiki
0
280
猫でもわかるAmazon Q Developer CLI 解体新書
kentapapa
1
270
CloudComposerによる大規模ETL 「制御と実行の分離」の実践
leveragestech
0
120
GPUをつかってベクトル検索を扱う手法のお話し~NVIDIA cuVSとCAGRA~
fshuhe
0
350
累計5000万DLサービスの裏側 – LINEマンガのKotlinで挑む大規模 Server-side ETLの最適化
ldf_tech
0
130
AIエージェントによる業務効率化への飽くなき挑戦-AWS上の実開発事例から学んだ効果、現実そしてギャップ-
nasuvitz
5
1.6k
AIとの協業で実現!レガシーコードをKotlinらしく生まれ変わらせる実践ガイド
zozotech
PRO
2
260
短期間でRAGシステムを実現 お客様と歩んだ生成AI内製化への道のり
taka0709
1
150
251029 JAWS-UG AI/ML 退屈なことはQDevにやらせよう
otakensh
0
160
LLM APIを2年間本番運用して苦労した話
ivry_presentationmaterials
4
730
.NET 10のBlazorの期待の新機能
htkym
0
180
Featured
See All Featured
Agile that works and the tools we love
rasmusluckow
331
21k
Reflections from 52 weeks, 52 projects
jeffersonlam
355
21k
Building Flexible Design Systems
yeseniaperezcruz
329
39k
Typedesign – Prime Four
hannesfritz
42
2.8k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.7k
Automating Front-end Workflow
addyosmani
1371
200k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1k
Stop Working from a Prison Cell
hatefulcrawdad
272
21k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3k
Rebuilding a faster, lazier Slack
samanthasiow
84
9.2k
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.ϦϦʔε͢Δͱ͖ ͚ͩʂ
େࣄͳϘλϯΛϙνΔ͜ͱ͚ͩ
·ͱΊ • ೋΔ͜ͱࣗಈԽɺΈԽ͢Δ • ίʔυͷ࣭Λ্͛ΔͨΊʹɺίʔυઃܭʹूத͢ΔͨΊʹ༨ ܭͳ͜ͱΛߟ͑ͳ͍Α͏ʹࣗಈԽɾΈԽ͢Δ