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アプリの技術的負債をどう返済したか / How to repay the technic...
Search
Keisuke Kobayashi
September 11, 2018
Programming
2
930
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
今日から始める依存性の注入 / First Time Dependency Injection
kobakei
26
7.4k
iOSアプリ内で不正なSSL証明書を検知する / SSL Pinning for iOS apps
kobakei
34
11k
Kyashアプリ開発の現場
kobakei
4
2.7k
Review of Google I/O 2017 & Prepare for Google I/O 2018
kobakei
0
310
APIクライアントをCodableで置き換えた話
kobakei
0
1.5k
開発者が知っておきたい通知の歴史
kobakei
9
7.5k
mockito-kotlin
kobakei
1
510
2017年に新規アプリを立ち上げた話
kobakei
2
1.1k
Everything of CI/CD in Kyash Android
kobakei
0
1.6k
Other Decks in Programming
See All in Programming
AIプログラミング雑キャッチアップ
yuheinakasaka
14
3.6k
データベースのオペレーターであるCloudNativePGがStatefulSetを使わない理由に迫る
nnaka2992
0
230
『品質』という言葉が嫌いな理由
korimu
0
180
CI改善もDatadogとともに
taumu
0
180
昭和の職場からアジャイルの世界へ
kumagoro95
1
420
もう少しテストを書きたいんじゃ〜 #phpstudy
o0h
PRO
4
250
密集、ドキュメントのコロケーション with AWS Lambda
satoshi256kbyte
1
210
color-scheme: light dark; を完全に理解する
uhyo
7
480
たのしいSocketのしくみ / Socket Under a Microscope
coe401_
1
360
CloudNativePGを布教したい
nnaka2992
0
110
ソフトウェアエンジニアの成長
masuda220
PRO
12
2.1k
Ruby on cygwin 2025-02
fd0
0
170
Featured
See All Featured
GraphQLとの向き合い方2022年版
quramy
44
13k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
27
1.6k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
12
980
Building Flexible Design Systems
yeseniaperezcruz
328
38k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
7k
How STYLIGHT went responsive
nonsquared
98
5.4k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
It's Worth the Effort
3n
184
28k
Intergalactic Javascript Robots from Outer Space
tanoku
270
27k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
4
430
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
100
18k
Rebuilding a faster, lazier Slack
samanthasiow
80
8.8k
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!!!