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 technical debt of iOS app
Search
Keisuke Kobayashi
September 11, 2018
Programming
2
870
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.1k
iOSアプリ内で不正なSSL証明書を検知する / SSL Pinning for iOS apps
kobakei
34
11k
Kyashアプリ開発の現場
kobakei
4
2.6k
Review of Google I/O 2017 & Prepare for Google I/O 2018
kobakei
0
300
APIクライアントをCodableで置き換えた話
kobakei
0
1.4k
開発者が知っておきたい通知の歴史
kobakei
10
7.3k
mockito-kotlin
kobakei
1
490
2017年に新規アプリを立ち上げた話
kobakei
2
1k
Everything of CI/CD in Kyash Android
kobakei
0
1.5k
Other Decks in Programming
See All in Programming
Trial
cairolibrary720
1
130
Play Billing Library 7.0.0 変更点まとめ@potatotips#88
kako351
0
160
Microservices rules (July 2024) : what good looks like
cer
PRO
0
1.6k
最古の関数型言語「Lisp」ことはじめ / lisp_in_kamiyama
uhooi
1
190
DMMプラットフォームにおけるTiDBの導入から運用まで
pospome
7
3k
Prompt FlowによるLLMアプリケーション開発
yuto2000
1
1k
入社1ヶ月でここまでやった!Findy Toolsインフラ支援の最適化
rvirus0817
6
1.4k
OpenAI/Gemini APIを使って EPUBを翻訳するCLIツールをつくってみた
tomiyan
0
790
GraphQL はいいぞ! ~Laravel で学ぶ GraphQL 入門~
azuki
1
160
Webエディタライブラリ 「CodeMirror」から学ぶ Webアプリ開発のテクニック
ryosukeigarashi
0
250
開発部に不満を持っていたCSがエンジニアにジョブチェンしてわかった「勝手に諦めない」ことの大切さ
sakuraikotone
28
16k
Rust.Nagoya #1
codemountains
0
170
Featured
See All Featured
Atom: Resistance is Futile
akmur
261
25k
Creatively Recalculating Your Daily Design Routine
revolveconf
214
11k
Agile that works and the tools we love
rasmusluckow
325
20k
Infographics Made Easy
chrislema
238
18k
What's new in Ruby 2.0
geeforr
338
31k
A Tale of Four Properties
chriscoyier
155
22k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
245
1.2M
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
35
6.3k
Bootstrapping a Software Product
garrettdimon
PRO
304
110k
Building Flexible Design Systems
yeseniaperezcruz
323
37k
StorybookのUI Testing Handbookを読んだ
zakiyama
15
4.9k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
24
1.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!!!