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
メンテが命: PHPフレームワークのコンテナ化とアップグレード戦略
shunta27
0
300
『テスト書いた方が開発が早いじゃん』を解き明かす #phpcon_nagoya
o0h
PRO
8
2.4k
機能が複雑化しても 頼りになる FactoryBotの話
tamikof
0
140
Generating OpenAPI schema from serializers throughout the Rails stack - Kyobashi.rb #5
envek
1
380
Boos Performance and Developer Productivity with Jakarta EE 11
ivargrimstad
0
310
CDK開発におけるコーディング規約の運用
yamanashi_ren01
2
250
Honoとフロントエンドの 型安全性について
yodaka
7
1.5k
ファインディLT_ポケモン対戦の定量的分析
fufufukakaka
0
920
5分で理解する SOLID 原則 #phpcon_nagoya
shogogg
1
300
PHPカンファレンス名古屋2025 タスク分解の試行錯誤〜レビュー負荷を下げるために〜
soichi
1
680
Datadog DBMでなにができる? JDDUG Meetup#7
nealle
0
140
DRFを少しずつ オニオンアーキテクチャに寄せていく DjangoCongress JP 2025
nealle
2
270
Featured
See All Featured
Scaling GitHub
holman
459
140k
A Modern Web Designer's Workflow
chriscoyier
693
190k
Navigating Team Friction
lara
183
15k
Why You Should Never Use an ORM
jnunemaker
PRO
55
9.2k
Building a Scalable Design System with Sketch
lauravandoore
461
33k
Building an army of robots
kneath
303
45k
Writing Fast Ruby
sferik
628
61k
Docker and Python
trallard
44
3.3k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
120k
Side Projects
sachag
452
42k
How to Think Like a Performance Engineer
csswizardry
22
1.4k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
30
2.2k
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!!!