
Understand how Udemy's review system affects course visibility, and learn how to request constructive feedback, aim for 5-star reviews, and use feedback to improve the course.
Explore Android architectures from MVC to MVI and MVVM, and learn how separating visualization, data, and processing enhances maintainability, scalability, and testability in Android apps.
Understand why mvi uses intents and state to enable unidirectional flow and persistence. The model serves as the single source of truth, promoting decoupled, testable components on Android and iOS.
Explore how MVI adds intent and state on top of the existing architecture to create a unidirectional cycle where user intents drive state changes, and the view renders updated state.
Build Android app with the MVI architecture, where a single button triggers an intent, shows a loading spinner, and displays a list of animals with images from a backend API.
Create a new Android project with an empty activity, add dependencies (lifecycle-viewmodel, retrofit, glide, recycler view), enable data binding and internet permission to fetch and display animals from an API.
Structure a Kotlin project with a model for animal, an animal API using retrofit to fetch animals.json, and an animal repository plus a view model factory to support MVI architecture.
Define the main intent and main state abstractions for an Android MVI app, introducing fetch animals, idle, a spinner state, animals list, and error states to drive the view model.
Build the main view model in the MVI Android architecture, wiring a private mutable state flow, a public state flow, and handling intents via a channel to fetch animals.
Design the UI for a list using a recycler view in the main activity. Define animal item layout with image, name, location, and a fetch button with a progress bar.
Create the animal list adapter for a recycler view with a data view holder binding name, location, and image via URL and Glide; add a function to refresh the list.
The instructor wires the main activity to the view model and adapter, sets up the recycler view, and sends a fetch animals intent to update the state.
Run the app to verify UI interactions and fix a crash caused by view holder creation, then see how the MVI architecture uses intents and state to enable observable states.
Celebrate completing the course and apply mvi architecture in day-to-day android development with xml layouts, implementing the concepts in your apps and knowing when to use them.
In this course we discuss the MVI - Model View Intent - architecture for Android development.
The MVI Architecture is the newest iteration in the MVX types or architectures for Android, and brings with it a few different benefits. Most importantly, user interaction traceability, system state predictability and ultimately, improved scalability and testability.
As an Android developer, it's important to stay up to date with the latest developments.
This architecture has distinct advantages and disadvantages that are important to know when deciding whether to implement it in your application. In addition, it’s important to be able to discuss it in an Android interview, where you might be judged on whether or you have heard of it.
In this course, we will go through a theoretical description of Android architectures in general, such as MVC - Model View Controller, MVP - Model View Presenter and MVVM - Model View ViewModel. Finally we will see what the new MVI Architecture brings to the table.
We will also implement the knowledge we learned in a practical application. We will build an app that retrieves a list of animals from a backend api, and displays it in a list in the application. The application will showcase how to use the MVI architecture in a simple case, so that it’s easier to understand.
This is also an excellent project course for someone who wants to sharpen their Android development skills.
So sign up today and let's learn about the MVI architecture as it applies to Android development.