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
あなたの声を届けよう! 女性エンジニア登壇の意義とアウトプット実践ガイド #wttjp / Call for Your Voice
kondoyuko
4
470
Prox Industries株式会社 会社紹介資料
proxindustries
0
320
生成AI時代の開発組織・技術・プロセス 〜 ログラスの挑戦と考察 〜
itohiro73
1
270
Node-RED × MCP 勉強会 vol.1
1ftseabass
PRO
0
150
セキュリティの民主化は何故必要なのか_AWS WAF 運用の 10 の苦悩から学ぶ
yoh
1
170
プロダクトエンジニアリング組織への歩み、その現在地 / Our journey to becoming a product engineering organization
hiro_torii
0
130
AIとともに進化するエンジニアリング / Engineering-Evolving-with-AI_final.pdf
lycorptech_jp
PRO
0
110
より良いプロダクトの開発を目指して - 情報を中心としたプロダクト開発 #phpcon #phpcon2025
bengo4com
1
3.1k
急成長を支える基盤作り〜地道な改善からコツコツと〜 #cre_meetup
stefafafan
0
130
Delegating the chores of authenticating users to Keycloak
ahus1
0
120
Snowflake Summit 2025 データエンジニアリング関連新機能紹介 / Snowflake Summit 2025 What's New about Data Engineering
tiltmax3
0
310
生成AIで小説を書くためにプロンプトの制約や原則について学ぶ / prompt-engineering-for-ai-fiction
nwiizo
4
2.2k
Featured
See All Featured
Statistics for Hackers
jakevdp
799
220k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
229
22k
Being A Developer After 40
akosma
90
590k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Become a Pro
speakerdeck
PRO
28
5.4k
Designing for humans not robots
tammielis
253
25k
BBQ
matthewcrist
89
9.7k
Writing Fast Ruby
sferik
628
61k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Unsuck your backbone
ammeep
671
58k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
34
3k
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