MVI (Model-View-Intent) dùng luồng dữ liệu một chiều như Flux hay Redux.
- View gửi intent (hành động người dùng) lên ViewModel, ViewModel xử lý và emit ViewState mới để cập nhật View.
- Khác với MVVM nơi ViewModel có thể expose nhiều StateFlow, MVI dùng một state object duy nhất được cập nhật theo một hướng.
- Có thể đoán trước hơn nhưng cần nhiều boilerplate hơn.