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
ぎーにょ
January 22, 2019
Technology
2
410
各OS1人ずつ開発の辛みあるあるは アーキテクチャで解決出来そう
あるあるLT〜スマホアプリ開発エンジニア〜 Vol.2
2019/01/22 @ginyolith_tech
ぎーにょ
January 22, 2019
Tweet
Share
More Decks by ぎーにょ
See All by ぎーにょ
AndroidにおけるNotificationのおさらい & Android16の新API Progress-centric Notifications
ginyolith
0
91
Google IO 2022 Jetpack Composeのパフォーマンス 社内LT会資料
ginyolith
0
1.1k
複雑なレイアウト組む時あるあるは コンポーネント化で解決しよう
ginyolith
0
1.3k
クリぼっちでも出来る issue駆動開発
ginyolith
0
560
Other Decks in Technology
See All in Technology
菸酒生在 LINE Taiwan 的後端雙刀流
line_developers_tw
PRO
0
1.1k
_第3回__AIxIoTビジネス共創ラボ紹介資料_20250617.pdf
iotcomjpadmin
0
150
初めてのAzure FunctionsをClaude Codeで作ってみた / My first Azure Functions using Claude Code
hideakiaoyagi
1
200
Claude Code Actionを使ったコード品質改善の取り組み
potix2
PRO
6
1.9k
20250625 Snowflake Summit 2025活用事例 レポート / Nowcast Snowflake Summit 2025 Case Study Report
kkuv
1
270
第9回情シス転職ミートアップ_テックタッチ株式会社
forester3003
0
190
強化されたAmazon Location Serviceによる新機能と開発者体験
dayjournal
2
180
UIテスト自動化サポート- Testbed for XCUIAutomation practice
notoroid
0
120
Кто отправит outbox? Валентин Удальцов, автор канала Пых
lamodatech
0
310
2年でここまで成長!AWSで育てたAI Slack botの軌跡
iwamot
PRO
4
580
AIエージェント最前線! Amazon Bedrock、Amazon Q、そしてMCPを使いこなそう
minorun365
PRO
13
4.5k
Wasm元年
askua
0
120
Featured
See All Featured
Build The Right Thing And Hit Your Dates
maggiecrowley
36
2.8k
Producing Creativity
orderedlist
PRO
346
40k
Stop Working from a Prison Cell
hatefulcrawdad
270
20k
Intergalactic Javascript Robots from Outer Space
tanoku
271
27k
Optimising Largest Contentful Paint
csswizardry
37
3.3k
Automating Front-end Workflow
addyosmani
1370
200k
Building a Scalable Design System with Sketch
lauravandoore
462
33k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Git: the NoSQL Database
bkeepers
PRO
430
65k
How to Ace a Technical Interview
jacobian
277
23k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.8k
Scaling GitHub
holman
459
140k
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