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

Implementing MVVM in Android - GDG Live

Implementing MVVM in Android - GDG Live

🔊 Wajahat Karim delivers a talk about implementing MVVM architecture in Android at an online webinar organized by GDG Live Pakistan.

👉 Full video: https://www.facebook.com/GDGLivePakistan/videos/224745351961006

Wajahat Karim

April 11, 2020
Tweet

More Decks by Wajahat Karim

Other Decks in Programming

Transcript

  1. Implementing MVVM
    in Android
    Wajahat Karim
    GDE in Android
    wajahatkarim.com
    GDG Live Pakistan

    View Slide

  2. - Google Developer Expert in Android
    - Over 8 years experience in Android
    - Open Source Contributor
    - Technical Blogs & Books Writer
    - Love to share my knowledge with others
    Follow me on Twitter @WajahatKarim |
    wajahatkarim.com
    This is Wajahat Karim

    View Slide

  3. MV* - The Confusion Begins!
    Model
    Controller
    Presenter
    ViewModel
    Intent
    View

    View Slide

  4. Model-View-ViewModel (MVVM)
    Model ViewModel View
    This is a architecture not the architecture
    Exposes Data
    Requests Data
    Observes
    User Actions & Events

    View Slide

  5. MVVM on Android
    Jetpack for the Rescue

    View Slide

  6. LiveData
    1. An Observable with LifeCycle
    ability
    2. Instantly notifies the changes in
    the data to the UI
    Observes for updates
    LiveData value updates
    Notifies the observer
    Update the UI
    STARTED
    Or
    RESUMED?

    View Slide

  7. ViewModel
    1. Middle man for View & Model
    2. Decouples data from the view to
    survive the configuration
    changes
    3. Never put the references to
    “Context” or “View” inside the
    ViewModel

    View Slide

  8. Finally, the Architecture
    All the UI related stuff
    Holds data required by UI and survives
    configuration changes
    Responsible for providing data to ViewModel
    Data sources (or model) such as database or
    from the server

    View Slide

  9. Testing
    Who got time for it? My code is perfect.

    View Slide

  10. Focus of this session
    https://github.com/wajahatkarim3/MVVM-GDG-Live
    1. ViewModel, LiveData
    2. Kotlin, Extension Methods
    3. Dependency Injection with Koin
    4. Retrofit for Networking
    5. Coil for image downloading

    View Slide

  11. Coding Time
    https://github.com/wajahatkarim3/MVVM-GDG-Live

    View Slide

  12. Thank you for listening...
    Give us feedback: http://bit.ly/gdgpkfeedback
    @WajahatKarim
    wajahatkarim.com youtube.com/c/wajahatkarim3

    View Slide