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
各OS1人ずつ開発の辛みあるあるは アーキテクチャで解決出来そう
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
ぎーにょ
January 22, 2019
Technology
450
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
各OS1人ずつ開発の辛みあるあるは アーキテクチャで解決出来そう
あるあるLT〜スマホアプリ開発エンジニア〜 Vol.2
2019/01/22 @ginyolith_tech
ぎーにょ
January 22, 2019
More Decks by ぎーにょ
See All by ぎーにょ
AndroidにおけるNotificationのおさらい & Android16の新API Progress-centric Notifications
ginyolith
0
270
Google IO 2022 Jetpack Composeのパフォーマンス 社内LT会資料
ginyolith
0
1.4k
複雑なレイアウト組む時あるあるは コンポーネント化で解決しよう
ginyolith
0
1.4k
クリぼっちでも出来る issue駆動開発
ginyolith
0
600
Other Decks in Technology
See All in Technology
DGX Sparkを2台使って いろいろ動かす話
sonoda_mj
1
130
Bet AI Day 2026丨AIによって本質に戻るシステムリスク管理
layerx
PRO
0
870
KPIだけでは評価できないプロダクトが考えるべき Evalsという第二の評価系 / Beyond KPIs: Evals as a Second Evaluation Framework for Products #PdEConf
aki_iinuma
4
3.6k
動画配信アプリでの Engage SDK 導入 — TVer Android が Play ストアにコンテンツを届けるまで
techtver
PRO
0
100
Bet AI Day 2026丨Production-Ready AI Agents — エンタープライズの実務を任せるための設計と運用
layerx
PRO
3
2.1k
振り返りこそエンジニアの本領
negima
0
280
いま、生成AIにKaggleをどこまで 任せられるか — ROGIIコンペでの進め方とTips
k951286
3
1.4k
Beyond the Hype: Practical AI for Your Oracle Database with MCP
thatjeffsmith
1
250
Bet AI Day 2026丨AIを「使う」から、AIが「働く」へ ― LayerXが進める「組織AI」の社会実装
layerx
PRO
2
2.2k
Hub & Spoke 環境のネットワークルーティングを分解してみる
tsuyataku
1
520
AI-DLCって実際どう? 〜聞きたいこと全部聞いてみる〜
news_it_enj
0
220
grill-me(grilling):AI駆動開発を超助けてくれるSkill / grill me
mathbullet
0
100
Featured
See All Featured
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
410
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
470
How to train your dragon (web standard)
notwaldorf
97
6.8k
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.6k
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
450
Building an army of robots
kneath
306
46k
How to make the Groovebox
asonas
2
2.4k
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
330
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
WENDY [Excerpt]
tessaabrams
12
39k
Documentation Writing (for coders)
carmenintech
77
5.5k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
600
Transcript
֤OS1ਓͣͭ։ൃͷਏΈ͋Δ͋Δ ΞʔΩςΫνϟͰղܾग़དྷͦ͏ ͋Δ͋ΔLTʙεϚϗΞϓϦ։ൃΤϯδχΞʙ Vol.2 2019/01/22 @ginyolith_tech
ࣗݾհ.kt data class Ginyolith( val realName : String = “Fumiya
Akagi", val nickName : String = "ぎーにょ", var belongingTo : String = "株式会社アイリッジ", var position : String = "Androidアプリ開発", val loves : List<String> = mutableListOf( "写真", "アカペラ(音楽)", "インドカレー", "仮面ライダー"), val twitterId : String = "@ginyolith_tech" ) : Human()
ࠓ͓͢Δࣄ • ֤OS1ਓͣͭ։ൃͷਏΈ͋Δ͋Δ • Clean Architecture + MVVM • ઃܭϕʔεͰͷOSؒڞಉ։ൃ
• ͬͯΈͨࣄ • ײ • ·ͱΊ
֤OS1ਓͣͭ։ൃͷ ਏΈ͋Δ͋Δ
֤OS1ਓͣͭ։ൃͷਏΈ͋Δ͋Δ • ϨϏϡʔ͕ग़དྷͳ͍ • ཁ݅ɾ༷ͷશ༰͕̍ਓͰѲ͖͠Εͳ͍ • ͕Γͳ͍ • ऐ͍͠
ۮવɺ྆OS͕ Clean Architecture + MVVM Ͱ։ൃ͍ͯͨ͠
Clean Architecture + MVVM .PEFM #VTJOFTT -PHJD 6TF$BTF *NQMFNFOU Domain
Layer Data Layer 3FNPUF %BUB4PVSDF -PDBM %BUB4PVSDF 3FQPTJUPSZ*NQMFNFOU 7JFX %BUB #JOEJOH Presentation Layer 6TF$BTF *OUFSGBDF 3FQPTJUPSZ*OUFSGBDF 7JFX.PEFM ʹ Dependency Direction
ѱຐతર͖ɾɾɾʂ
Clean Architecture + MVVM .PEFM #VTJOFTT -PHJD 6TF$BTF *NQMFNFOU Domain
Layer Data Layer 3FNPUF %BUB4PVSDF -PDBM %BUB4PVSDF 3FQPTJUPSZ*NQMFNFOU 7JFX %BUB #JOEJOH Presentation Layer 6TF$BTF *OUFSGBDF 3FQPTJUPSZ*OUFSGBDF 7JFX.PEFM ʹ Dependency Direction 7JFX$POUSPMMFS "DUJWJUZ'SBHNFOU -JWF%BUBFUDʜ ֤04ຖʹ࣮ํ๏͕όϥόϥ
Clean Architecture + MVVM .PEFM #VTJOFTT -PHJD 6TF$BTF *NQMFNFOU Domain
Layer Data Layer 3FNPUF %BUB4PVSDF -PDBM %BUB4PVSDF 3FQPTJUPSZ*NQMFNFOU 7JFX %BUB #JOEJOH Presentation Layer 6TF$BTF *OUFSGBDF 3FQPTJUPSZ*OUFSGBDF 7JFX.PEFM ʹ Dependency Direction υϝΠϯʢཁ݅ʣʹ ґଘ
Clean Architecture + MVVM .PEFM #VTJOFTT -PHJD 6TF$BTF *NQMFNFOU Domain
Layer Data Layer 3FNPUF %BUB4PVSDF -PDBM %BUB4PVSDF 3FQPTJUPSZ*NQMFNFOU 7JFX %BUB #JOEJOH Presentation Layer 6TF$BTF *OUFSGBDF 3FQPTJUPSZ*OUFSGBDF 7JFX.PEFM ʹ Dependency Direction ֎෦αʔϏεʢ"1*ʣ Ωϟογϡཁ݅ʹґଘ
ϓϨθϯςʔγϣϯҎ֎ɺ ڠྗͯ͠։ൃग़དྷΔ…ʁ
ͱΓ͋͑ͣࢼͯ͠Έͨ
Clean Architecture + MVVM .PEFM #VTJOFTT -PHJD 6TF$BTF *NQMFNFOU Domain
Layer Data Layer 3FNPUF %BUB4PVSDF -PDBM %BUB4PVSDF 3FQPTJUPSZ*NQMFNFOU 7JFX %BUB #JOEJOH Presentation Layer 6TF$BTF *OUFSGBDF 3FQPTJUPSZ*OUFSGBDF 7JFX.PEFM ʹ Dependency Direction ϨϏϡʔ֤04 ࣮ɿ֤04 ϨϏϡʔ૬ޓ ࣮ɿϖΞϓϩ ϨϏϡʔ૬ޓ ࣮ɿ֤04 ϨϏϡʔ૬ޓ ࣮ɿϖΞϓϩ ϨϏϡʔ૬ޓ ࣮ɿ֤04
OSؒ૬ޓϨϏϡʔͷײ • υϝΠϯ؍͔ΒͷιʔείʔυϨϏϡʔ • ಉ͡OSͰଞPJͷΤϯδχΞͩͱෆՄೳ • ϝιουɾม໊ ϩδοΫͷཏੑ • ςετίʔυͷཏੑ
ߟྀύλʔϯࢦఠ • DataSourceͷϨϏϡʔ͕͍͠ • Httpૹ৴ͷॻ͖ํͳͲ͕OSຖͷϥΠϒϥϦʹґଘ
OSؒϖΞϓϩͷײ • ༷ɾཁ݅ʹؔͯ͠ͷ͕ٞߦ͑Δ • ߟྀ࿙Εͷૣظൃ֮ɹͳͲ • ઃܭʹؔ͢Δࣝݴޠʹґଘ͠ͳ͍ςΫχοΫΛֶश͠߹͏ • Rxͷ͍ํɹͳͲ •
ऐ͘͠ͳ͍ɹ • ࡉ͔͍ݴޠ༷ɺ໋໊ɺ֤OSτϦϏΞͰઢ͕ͪ͠ • ϖΞϓϩͷతɾείʔϓͷೝࣝڞ༗ɻيಓमਖ਼ؤுΔ
ؾΛ͚ͭͨࣄ • ϨϏϡʔͷείʔϓΛݶఆ͢Δ • ۀϩδοΫͷਖ਼͠͞ • ༷࿙Εͳ͍͔ɻ • ߟྀ͖͢ύλʔϯଞʹଘࡏ͠ͳ͍͔ •
ͦͷϩδοΫͦͷ෦͕ͱͯ͠ਖ਼͍͔͠ɻ • มɺΫϥε໊ͷωʔϛϯάɻɹ։ൃऀؒͰڞ௨ݴޠΛ૿͢ࣄΛҙࣝ • ͔ٞΒ֎ͨ͠ࣄ • Kotlin/Swiftͷݴޠ༷తʹਖ਼͍͔͠ɻ • OSݻ༗ͷʢҐஔใͷड͚औΓํͳͲʣ
Ұ൪ྑ͔ͬͨࣄ
data class Shop( // 店舗コード val code: String, // 店舗名
val name: String)
ΫϥεઃܭΛྲྀ༻Մೳ
ΫϥεઃܭΛྲྀ༻Մೳ • υϝΠϯͷઃܭͷ͕ͰࡁΉ • ೝෛՙͷߴ͍ઃܭɾ໋໊ͳͲͷλεΫ͕ݮ Δʂ • ෆ҆ʹͳͬͨΒยํͷઃܭΛৗʹ֬ೝՄೳ
·ͱΊ
·ͱΊ • ྆OSͰࣅͨઃܭʹͯ͠OSؒͰڠྗͨ͠Βɺ ։ൃޮ͕UPͨ͠ • ߟྀ/༷࿙ΕΛະવʹ͙͜ͱͷग़དྷΔ֬ UP • ͳʹΑΓऐ͘͠ͳ͍ɾָ͍͠
ࢀߟ • Android Architecture Blueprints • https://github.com/googlesamples/ android-architecture