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
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
29
9.5k
GraphQLとの向き合い方2022年版
quramy
48
14k
The Straight Up "How To Draw Better" Workshop
denniskardys
234
140k
Building Applications with DynamoDB
mza
95
6.5k
What's in a price? How to price your products and services
michaelherold
246
12k
Faster Mobile Websites
deanohume
307
31k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
45
7.5k
Adopting Sorbet at Scale
ufuk
77
9.4k
Fantastic passwords and where to find them - at NoRuKo
philnash
51
3.3k
Art, The Web, and Tiny UX
lynnandtonic
299
21k
Practical Orchestrator
shlominoach
188
11k
Stop Working from a Prison Cell
hatefulcrawdad
270
20k
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