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
Android Architecture Componentsをメルカリ カウルに入れてみた話
Search
protosd
November 22, 2017
1
810
Android Architecture Componentsをメルカリ カウルに入れてみた話
protosd
November 22, 2017
Tweet
Share
More Decks by protosd
See All by protosd
裏から見た表のカウル
protosdhk
0
1.8k
Featured
See All Featured
Adopting Sorbet at Scale
ufuk
77
9.4k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
20
1.3k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
281
13k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
107
19k
How to Ace a Technical Interview
jacobian
277
23k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Into the Great Unknown - MozCon
thekraken
39
1.9k
The World Runs on Bad Software
bkeepers
PRO
69
11k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
138
34k
Fireside Chat
paigeccino
37
3.5k
RailsConf 2023
tenderlove
30
1.1k
GitHub's CSS Performance
jonrohan
1031
460k
Transcript
Android Architecture Components ΛϝϧΧϦ ΧϧʹೖΕͯΈͨ גࣜձࣾικՖ഼
Souzoh confidential and proprietary ࣗݾհ w ໊લՖ഼ ͨʹΌΜ w
৬छ"OESPJEΤϯδχΞܾಆऀ w ॴଐϝϧΧϦικ w (JUΞΧϯτQSPUPTEIL 2
Souzoh confidential and proprietary 3
Souzoh confidential and proprietary Android Architecture Components 4
Souzoh confidential and proprietary Android Architecture Components 5 • Lifecycle
Activity/Fragmentͱಉظͯ͠ঢ়ଶ͝ͱʹॲཧΛࠩ͠ࠐΊΔ • LiveData Activity/Fragment ͕ੜଘ͍ͯ͠Δ߹ʹͷΈσʔλΛྲྀͯ͘͠ΕΔ • ViewModel ը໘ճస࣌ʹActivity/Fragment ͕࠶ੜ͞ΕͯσʔλΛҾ͖ܧ͛Δ • Room SQLite ͷ Object Mapper
Souzoh confidential and proprietary ϝϧΧϦΧϧͷߏ 6 w .71 w 3Y+BWB
Activity / Fragment Presenter onCreate onDestroy Viewͷొ CompositeDisposable.add CompositeDisposable.dispose Viewͷදࣔ etc
Souzoh confidential and proprietary Lifecycle 7
Souzoh confidential and proprietary Lifecycle 8 w 1SFTFOUFSͷվम w "DUJWJUZ'SBHNFOUͷվम
Souzoh confidential and proprietary Lifecycle 9 w ಋೖʹ͓͚ΔϝϦοτ w .71Ͱಉ͡Α͏ͳׂΛ࣋ͭ1SFTFOUFS͕طʹଘࡏ͍ͯ͠ΔͷͰมߋ͕؆୯
w ຖճϥΠϑαΠΫϧܥͷϝιουͰ1SFTFOUFSΛݺͼग़͢ॲཧ͔Β։์ w ؾΛ͚͍ͭͨϙΠϯτ w 'SBHNFOU"DUJWJUZͱ1SFTFOUFSʹը໘ͷঢ়ଶύϥϝʔλ͕ࢄͯ͠͠·͍ͬͯ Δ߹ͳͲ7JFX㱻1SFTFOUFSؒͷແବͳΓऔΓ͕૿͑Δ w 1SFTFOUFSʹدͤΔɺํ͔ΒΞΫηεͰ͖Δ4UBUFΫϥεΛ͓͍࣋ͬͯͨ΄͏͕ ྑ͍͔
Souzoh confidential and proprietary LiveData 10
Souzoh confidential and proprietary LiveData 11 w ϝϧΧϦɹΧϧͰΞϓϦશମʹσʔλΛͨ͢Ίʹ 1VCMJTI4VCKFDU#FIBWJPS4VCKFDUΛ࣮ 1SFTFOUFSͰߪಡొΛ͍ͯ͠Δ
ɾ֤ηϧʹ͍͍ͭͯΔ-JLF6O-JLFϘλϯ ɾͷຊ୨ͷՃॲཧ ɾӾཡཤྺͷߋ৽ॲཧ ɾϐοΫΞοϓͷՃ → LiveDataʹஔ͖͑
Souzoh confidential and proprietary LiveData 12 w 1VCMJTI4VCKFDU#FIBWJPS4VCKFDUʹมΘΔ.VUBCMF-JWF%BUBΛੜ w 1SFTFOUFSʹߪಡॲཧΛՃ
Souzoh confidential and proprietary LiveData 13 w ಋೖʹ͓͚ΔϝϦοτ w ֤ը໘Ͱશମ௨ܥͷ$PNQPTJUF%JTQPTBCMFEJTQPTF͕ෆཁʹ
w ؾΛ͚͍ͭͨϙΠϯτ w 1SFTFOUFSͰར༻͢Δ߹-JGFDZDMF0XOFSΛ͓ͯ͘͠ඞཁ͕͋Δ w ༷ʑͳը໘Ͱ͞ΕΔ1VCMJTI4VCKFDU#FIBWJPS4VCKFDUΛஔ͖͑Δ ͷख͔ؒͳ͋ ແཧͯ͠ஔ͖͑ͳͯ͘ྑ͍͔Εͳ͍
Souzoh confidential and proprietary ViewModel 14
Souzoh confidential and proprietary ViewModel 15 w ϝϧΧϦΧϧॎը໘Λલఏʹ࣮͞Ε͍ͯΔ w ग़ը໘ͷύϥϝʔλೖྗɺ࿈ଓεΩϟϯը໘ͳͲͷը໘ભҠΛ
લఏͱͨ͠ϨΠΞτͷͨΊTBWFE*OTUBODF4UBUFΛར༻ w ແݶεΫϩʔϧͷ7JFX1BHFSΛ࣋ͭϥϯΩϯάը໘ͳͲͰҰ දࣔͨ͠λϒͷใΛϝϞϦΩϟογϡ͍ͯ͠Δ → ViewModelʹஔ͖͑ → ViewModelʹஔ͖͑Ͱ͖ͦ͏
Souzoh confidential and proprietary ViewModel 16 w ಉҰͷ7JFX.PEFMͰLFZͰෳੜՄೳ ͷ'SBHNFOUʹඥ͚Δ͜ͱͰແݶ7JFX1BHFS ݫີʹผͷ
'SBHNFOU ͰҎલͷը໘ঢ়ଶΛҾ͖ग़ͤΔ
Souzoh confidential and proprietary ViewModel 17 w ಋೖʹ͓͚ΔϝϦοτ w 7JFXͷॳظԽɺݺͼग़͠ॲཧΛ*OTUBODF4UBUFܥͷϝιουʹࢄͤ͞
Δඞཁ͕ͳ͘ͳΓίʔυ͕·ͱ·ͬͨ w ؾΛ͚͍ͭͨϙΠϯτ w 7JFX.PEFMͷதʹ৭ʑೖΕΔ͜ͱ͕Ͱ͖Δ͕ɺԿΛೖΕ͓ͯ͘ͷ͔ ໌֬ʹ͓ͯ͘͜͠ͱ͕େࣄ
Souzoh confidential and proprietary ·ͱΊ 18 • ϝϧΧϦ ΧϧͰҰ෦ػೳΛLifecycle,LiveData,ViewModelͰ࡞ •
ͱͱͷߏ͕Lifecycleʹ͍ͦͬͯͨ͜ͱ͋Γɺಋೖ؆୯ͩͬͨ • RxJava2Ͱ݁Ͱ͖͍ͯΔ෦Λࠩ͠ସ͑Δͷ͋·Γࢫຯ͕ͳ͍
Souzoh confidential and proprietary ࠷ޙʹ 19 ※ٕज़ॻͳͷʹԆʑͱΞχϝιϯάʹ͍ͭͯ͘ޠ͍ͬͯΔͷίʔφʔ͕͓͢͢ΊͰ͢ ϝϧΧϦ ΧϧͰಉਓຊΛग़͠·ͨ͠
Souzoh confidential and proprietary ͋Γ͕ͱ͏͍͟͝·ͨ͠ 20