Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
iOSアプリの技術的負債をどう返済したか / How to repay the technic...
Search
Keisuke Kobayashi
September 11, 2018
Programming
2
990
iOSアプリの技術的負債をどう返済したか / How to repay the technical debt of iOS app
【ヒカ☆ラボ】【Kyash、Coiney、PAY】新しい支払いの形を作る、モバイル決済サービスの開発の裏側とは
Keisuke Kobayashi
September 11, 2018
Tweet
Share
More Decks by Keisuke Kobayashi
See All by Keisuke Kobayashi
プロダクト開発をAI 1stに変革する〜SaaS is dead時代で生き残るために〜 / AI 1st Product Development
kobakei
0
1.8k
今日から始める依存性の注入 / First Time Dependency Injection
kobakei
26
7.6k
iOSアプリ内で不正なSSL証明書を検知する / SSL Pinning for iOS apps
kobakei
34
12k
Kyashアプリ開発の現場
kobakei
4
2.9k
Review of Google I/O 2017 & Prepare for Google I/O 2018
kobakei
0
330
APIクライアントをCodableで置き換えた話
kobakei
0
1.6k
開発者が知っておきたい通知の歴史
kobakei
9
7.7k
mockito-kotlin
kobakei
1
530
2017年に新規アプリを立ち上げた話
kobakei
2
1.1k
Other Decks in Programming
See All in Programming
モデル駆動設計をやってみようワークショップ開催報告(Modeling Forum2025) / model driven design workshop report
haru860
0
240
20251127_ぼっちのための懇親会対策会議
kokamoto01_metaps
2
420
LLMで複雑な検索条件アセットから脱却する!! 生成的検索インタフェースの設計論
po3rin
1
480
TypeScriptで設計する 堅牢さとUXを両立した非同期ワークフローの実現
moeka__c
6
3k
TypeScript 5.9 で使えるようになった import defer でパフォーマンス最適化を実現する
bicstone
1
1.2k
251126 TestState APIってなんだっけ?Step Functionsテストどう変わる?
east_takumi
0
300
無秩序からの脱却 / Emergence from chaos
nrslib
2
12k
複数人でのCLI/Infrastructure as Codeの暮らしを良くする
shmokmt
5
2.2k
関数の挙動書き換える
takatofukui
4
770
AIコーディングエージェント(skywork)
kondai24
0
130
AWS CDKの推しポイントN選
akihisaikeda
1
240
AIエージェントを活かすPM術 AI駆動開発の現場から
gyuta
0
310
Featured
See All Featured
Building an army of robots
kneath
306
46k
jQuery: Nuts, Bolts and Bling
dougneiner
65
8.1k
Rebuilding a faster, lazier Slack
samanthasiow
84
9.3k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
Into the Great Unknown - MozCon
thekraken
40
2.2k
What's in a price? How to price your products and services
michaelherold
246
12k
Visualization
eitanlees
150
16k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
Build The Right Thing And Hit Your Dates
maggiecrowley
38
3k
Agile that works and the tools we love
rasmusluckow
331
21k
Java REST API Framework Comparison - PWX 2021
mraible
34
9k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
51k
Transcript
iOSΞϓϦͷٕज़తෛ࠴Λ Ͳ͏ฦࡁ͔ͨ͠ Keisuke Kobayashi ʲώΧˑϥϘʳʲKyashɺCoineyɺPAYʳ৽͍͠ࢧ͍ͷܗΛ࡞ΔɺϞόΠϧܾ ࡁαʔϏεͷ։ൃͷཪଆͱ
ࣗݾհ • Keisuke Kobayashi • Twitter: kobakei122 • GitHub: kobakei
• Kyash, Inc • Android / iOS / Engineering Manager
ٕज़తෛ࠴ͷΛ͠·͢
͔ͭͯͷKyash iOS൛ • ͳ͔ͥ1ਓͰ࡞ͬͯΔAndroid൛ΑΓɺ 3ਓͰ࡞ͬͯΔiOS൛ͷํ͕։ൃ͕͍ • ͔͠όά͕ଟ͍ • ͦͯ͠3ਓͷ͏ͪ2ਓ͕ࣙΊͨ
͜ΕϠόΠ
ମ੍มߋ • @konifar ͕ೖࣾ͠AndroidνʔϜ • @kobakei122 ͕AndroidνʔϜ͔Β iOSνʔϜ • ·ͣணखͨ͠ͷ͕ٕज़తෛ࠴ͷฦࡁ
ٕज़తෛ࠴Λฦࡁ͍ͯ͘͠ • ιʔείʔυͷ࣭վળ • ϦιʔεपΓͷվળ • ϏϧυߴԽ
ιʔείʔυͷ࣭վળ
ະ༻ίʔυͷআ • ͱʹ͔͘ফ͢ • Find Selected Symbol in Workspace •
Androidͷ࣮Λݟͭͭɺ͢Ͱʹଘࡏ͠ͳ͍ ػೳը໘Λফ͍ͯ͘͠
ΞʔΩςΫνϟݟ͠ • MVVM + ϨΠϠʔυΞʔΩςΫνϟͷ࠾༻
MVVM • UIςετ͠ʹ͍͘ • UIͷϩδοΫΛViewController͔Βണ͕͢͜ ͱͰɺςετΛॻ͖͘͢͢Δ 7JFX 6*7JFX$POUSPMMFS 7JFX.PEFM .PEFM
ϨΠϠʔυΞʔΩςΫνϟ • ؔݺͼग़͠Λ1ํʹ౷Ұ͢Δ • ಉ͡֊ͷݺͼग़͠ېࢭ$ • ΫϥεؒͷґଘؔΛγϯϓϧʹอͭ • ֤ϨΠϠʔͷΛ໌֬ʹ͢Δ •
ΫϥεංେԽͷࢭ
·ͱΊΔͱ͜Μͳઃܭ 7JFX 7JFX.PEFM 3FQPTJUPSZ "1*$MJFOU ,FZDIBJO
·ͱΊΔͱ͜Μͳઃܭ 7JFX 7JFX.PEFM 3FQPTJUPSZ "1*$MJFOU ,FZDIBJO 6*7JFX$POUSPMMFS 5BCMF7JFX$FMMͳͲ
·ͱΊΔͱ͜Μͳઃܭ 7JFX 7JFX.PEFM 3FQPTJUPSZ "1*$MJFOU ,FZDIBJO 6*ʹؔ͢ΔϩδοΫ
·ͱΊΔͱ͜Μͳઃܭ 7JFX 7JFX.PEFM 3FQPTJUPSZ "1*$MJFOU ,FZDIBJO ֤&OUJUZͷ$36%
·ͱΊΔͱ͜Μͳઃܭ 7JFX 7JFX.PEFM 3FQPTJUPSZ "1*$MJFOU ,FZDIBJO ֤छ σʔλιʔεͷ ΛಡΈॻ͖
RxSwiftͷಋೖ • DispatchQueueͰඇಉظॲཧਏ͍ • ͲΜͲΜਂ͘ͳΔωετ • leave࿙ΕʹΑΔόά • RxSwiftͳΒඇಉظॲཧͷྻɾฒྻ࣮ߦ͕؆୯ •
ྫ: APIΛ2ͭݺͼग़ͯ͠ɺ݁Ռ͕ἧ͔ͬͯΒ ը໘ߋ৽
ϦιʔεपΓͷվળ
Storyboardͷׂ • ෳը໘Λ࣋ͭStoryboardΛಉ࣌ʹฤूͯ͠ ίϯϑϦΫτ͢Δࣄނ͕ଟൃ • 1ը໘1StoryboardʹͳΔ·Ͱׂ • ͦΕͰͨ·ʹࣄނΔͷͰνʔϜͰͷֻ͚ େࣄ
Segueېࢭ • Storyboardׂͷ͍ͭͰʹېࢭ • ը໘ભҠͰΛ͢ͱ͖ʹɺભҠϩδοΫ͕ Storyboardͱίʔυʹࢄͯ͠͠·͏ • ΘΓʹίʔυʹू͢Δ • ը໘ભҠ༻ͷstaticؔΛ༻ҙͯ͠ɺͷܕݻఆ
͢Δ
SwiftGen • ֤छϦιʔεͷఆΛࣗಈੜ͢ΔϥΠϒϥϦ • จࣈྻ • ը૾ • ৭ •
Storyboard • ଘࡏ͠ͳ͍จࣈྻը૾ΛͬͨΒϏϧυ࣌ʹΤϥʔʹͳΔ
ΧϥʔύϨοτ • όʔδϣϯཧ͢ΔΑ͏ʹ • ~/Library/Colors/ʹίϐʔ͢Δ͜ͱͰɺνʔϜ ͷશһ͕ಉ͡ύϨοτΛ༻Ͱ͖Δ • SwiftGenͱͷ૬ੑ
ϏϧυߴԽ
Embedded Framework • UIͷमਖ਼͕΄ͱΜͲͳͷͰɺModelͰ͖Δ͚ͩϏϧυͨ͠ ͘ͳ͍ • ModelΛϨΠϠʔ͝ͱʹϑϨʔϜϫʔΫԽ • Repository •
Infrastructure • Entity • Utility
CocoaPods -> CarthageҠߦ • ϥΠϒϥϦͷϏϧυ͕͍ • Carthage/Build/ҎԼgitʹίϛοτ • ͱݴ͑શͯͷϥΠϒϥϦΛҠߦͰ͖ΔΘ͚ Ͱͳ͍
• ྫ: Firebase
MBPങ͍ସ͑ • ͏ҰਓͷiOSΤϯδχΞ͕MBP 13ΠϯνΛ͍ͬͯ ͨ • MBP 15ΠϯνΛࢧڅ • ΫΞουίΞCPUiOSΤϯδχΞͷ
جຊతਓݖ • iMac Proཉ͍͠
3͔݄ޙ…
ͦ͜ʹݩؾʹΓճΔ iOSνʔϜͷ͕࢟ʂ • ։ൃͷ্ • Androidʹ͍͍ͭͨʂ • ࣭ͷ্ • Crash
Free Rate
ࠓޙͷ༧ఆ • ςετΛ͝Γ͝Γॻ͍͍ͯ͘ • ·ͩςετΛॻ͚Δঢ়ଶʹͳ͚ͬͨͩ • ViewModelத৺ʹॻ͘ํ • UIΛࡉ͔͘ϑϨʔϜϫʔΫԽ •
·ͣڞ௨Ͱ͏ΧελϜϏϡʔͳͲ • υϝΠϯ͋ͬͨ΄͏͕͍͍͔
Thanks!!!