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
800
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
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
13
1k
How to train your dragon (web standard)
notwaldorf
91
5.9k
GraphQLとの向き合い方2022年版
quramy
44
14k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
115
51k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
We Have a Design System, Now What?
morganepeng
51
7.4k
Building Flexible Design Systems
yeseniaperezcruz
328
38k
Large-scale JavaScript Application Architecture
addyosmani
511
110k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
227
22k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
32
2.2k
A designer walks into a library…
pauljervisheath
205
24k
StorybookのUI Testing Handbookを読んだ
zakiyama
28
5.5k
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