Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Android Architecture Componentsをメルカリ カウルに入れてみた話

Avatar for protosd protosd
November 22, 2017
810

Android Architecture Componentsをメルカリ カウルに入れてみた話

Avatar for protosd

protosd

November 22, 2017
Tweet

Transcript

  1. Souzoh confidential and proprietary ࣗݾ঺հ w ໊લՖ഼࿨໵ ͸ͨʹΌΜ  w

    ৬छ"OESPJEΤϯδχΞܾಆऀ w ॴଐϝϧΧϦι΢κ΢ w (JUΞΧ΢ϯτQSPUPTEIL 2
  2. Souzoh confidential and proprietary Android Architecture Components 5 • Lifecycle


    Activity/Fragmentͱಉظͯ͠ঢ়ଶ͝ͱʹॲཧΛࠩ͠ࠐΊΔ • LiveData
 Activity/Fragment ͕ੜଘ͍ͯ͠Δ৔߹ʹͷΈσʔλΛྲྀͯ͘͠ΕΔ • ViewModel
 ը໘ճస࣌ʹActivity/Fragment ͕࠶ੜ੒͞Εͯ΋σʔλΛҾ͖ܧ͛Δ • Room
 SQLite ͷ Object Mapper
  3. Souzoh confidential and proprietary ϝϧΧϦΧ΢ϧͷߏ੒ 6 w .71 w 3Y+BWB

    Activity / Fragment Presenter onCreate onDestroy Viewͷొ࿥ CompositeDisposable.add CompositeDisposable.dispose Viewͷදࣔ etc
  4. Souzoh confidential and proprietary Lifecycle 9 w ಋೖʹ͓͚ΔϝϦοτ w .71Ͱ͸ಉ͡Α͏ͳ໾ׂΛ࣋ͭ1SFTFOUFS͕طʹଘࡏ͍ͯ͠ΔͷͰมߋ͕؆୯

    w ຖճϥΠϑαΠΫϧܥͷϝιουͰ1SFTFOUFSΛݺͼग़͢ॲཧ͔Β։์ w ؾΛ͚͍ͭͨϙΠϯτ w 'SBHNFOU"DUJWJUZͱ1SFTFOUFSʹը໘ͷঢ়ଶύϥϝʔλ͕෼ࢄͯ͠͠·͍ͬͯ Δ৔߹ͳͲ͸7JFX㱻1SFTFOUFSؒͷແବͳ΍ΓऔΓ͕૿͑Δ w 1SFTFOUFSʹدͤΔɺ૒ํ͔ΒΞΫηεͰ͖Δ4UBUFΫϥεΛ͓͍࣋ͬͯͨ΄͏͕ ྑ͍͔΋
  5. Souzoh confidential and proprietary LiveData 11 w ϝϧΧϦɹΧ΢ϧͰ͸ΞϓϦશମʹσʔλΛ౉ͨ͢Ίʹ
 1VCMJTI4VCKFDU#FIBWJPS4VCKFDUΛ࣮૷
 1SFTFOUFSͰߪಡొ࿥Λ͍ͯ͠Δ

    ɾ֤੡඼ηϧʹ͍͍ͭͯΔ-JLF6O-JLFϘλϯ
 ɾ੡඼ͷຊ୨΁ͷ௥Ճॲཧ
 ɾӾཡཤྺͷߋ৽ॲཧ
 ɾϐοΫΞοϓͷ௥Ճ → LiveDataʹஔ͖׵͑
  6. Souzoh confidential and proprietary LiveData 13 w ಋೖʹ͓͚ΔϝϦοτ w ֤ը໘Ͱશମ௨஌ܥͷ$PNQPTJUF%JTQPTBCMFEJTQPTF͕ෆཁʹ

    w ؾΛ͚͍ͭͨϙΠϯτ w 1SFTFOUFSͰར༻͢Δ৔߹͸-JGFDZDMF0XOFSΛ౉͓ͯ͘͠ඞཁ͕͋Δ w ༷ʑͳը໘Ͱ͞ΕΔ1VCMJTI4VCKFDU#FIBWJPS4VCKFDUΛஔ͖׵͑Δ ͷ͸ख͔ؒͳ͋ ແཧͯ͠ஔ͖׵͑ͳͯ͘ྑ͍͔΋஌Εͳ͍
  7. Souzoh confidential and proprietary ViewModel 15 w ϝϧΧϦΧ΢ϧ͸ॎը໘Λલఏʹ࣮૷͞Ε͍ͯΔ w ग़඼ը໘ͷύϥϝʔλೖྗɺ࿈ଓεΩϟϯը໘ͳͲͷը໘ભҠΛ

    લఏͱͨ͠ϨΠΞ΢τͷͨΊTBWFE*OTUBODF4UBUFΛར༻
 w ແݶεΫϩʔϧͷ7JFX1BHFSΛ࣋ͭϥϯΩϯάը໘ͳͲͰ͸Ұ౓ දࣔͨ͠λϒ಺ͷ৘ใΛϝϞϦΩϟογϡ͍ͯ͠Δ
 → ViewModelʹஔ͖׵͑ → ViewModelʹஔ͖׵͑Ͱ͖ͦ͏
  8. Souzoh confidential and proprietary ViewModel 17 w ಋೖʹ͓͚ΔϝϦοτ w 7JFXͷॳظԽɺݺͼग़͠ॲཧΛ*OTUBODF4UBUFܥͷϝιουʹ෼ࢄͤ͞

    Δඞཁ͕ͳ͘ͳΓίʔυ͕·ͱ·ͬͨ w ؾΛ͚͍ͭͨϙΠϯτ w 7JFX.PEFMͷதʹ͸৭ʑೖΕΔ͜ͱ͕Ͱ͖Δ͕ɺԿΛೖΕ͓ͯ͘ͷ͔ ໌֬ʹ͓ͯ͘͜͠ͱ͕େࣄ
  9. Souzoh confidential and proprietary ·ͱΊ 18 • ϝϧΧϦ Χ΢ϧͰҰ෦ػೳΛLifecycle,LiveData,ViewModelͰ࡞੒ •

    ΋ͱ΋ͱͷߏ଄͕Lifecycleʹ͍ͦͬͯͨ͜ͱ΋͋Γɺಋೖ͸؆୯ͩͬͨ • RxJava2Ͱ׬݁Ͱ͖͍ͯΔ෦෼Λࠩ͠ସ͑Δͷ͸͋·Γࢫຯ͕ͳ͍