Course Demo
updated Aug. 2, 2021

Course Objective:

The main objective of this course is to provide an introduction to MVI architecture (what I think is currently the best architecture), but that's subjective. As I've said many times on video, there is technically no BEST architecture. This just happens to be the one I think is the best and I'll show you why in this course.)

Target Audience:

  • A wide arrange of experience levels from complete beginners to advanced. I built this to demonstrate MVI architecture for someone who doesn't know MVI or necessarily any architecture.
  • Someone planning to watch my Powerful Android Apps with Jetpack Architecture course. This course is a pre-requisite.

What you'll learn:

  • Kotlin
  • Model-View-Intent Architecture:
    1. Introduction to MVI architecture
    2. Repository pattern
    3. Managing state
    4. Handling multiple network request events
  • Retrofit2:
    1. Returning LiveData from Retrofit
    2. Handling Generic Api Responses (Error or Success)
  • DataState and Event Wrappers:
    1. Updating UI with "Loading", "Error" or "Data" responses from the network requests
    2. Consuming "Data" and "Error" events to prevent multiple observable emissions
    1. Setting up a RecyclerView with custom adapter
    2. DiffUtil to submit list-items
    UI Communication:
    1. Fragment to Activity communication via interface

Github repo: MVIExample