Reputation: 699
Please does anyone have a link to a resource that helps in learning how to create an app using mvi design pattern but all code should be in Java and not Kotlin
Upvotes: 1
Views: 789
Reputation: 2335
Before you click! This is in Kotlin
-> https://tech.olx.com/mvi-architecture-in-android-a-simple-livedata-based-approach-b4b23896fd32 But if you actually look at the code snippets there is not a single line that doesn't have an obvious Java
counter part. There is not a single Kotlin
exclusive item like Flow
, Scoping
, Coroutine
anywhere.
You don't need to learn Kotlin
to understand it, just read it.
The article explains MVI
as a modified way to use a MVVM
.
It has 2 (ViewState
/ViewEffect
) components that are observed by the view (Fragment
/Activity
)
It has 1 (ViewEvent
) component that is used by the view to trigger changes in the observed components above.
ViewState
: It contains your data, like a List
, like a boolean
that determines if something is enabled
, etc...
When there is a change in any state data, like an update to the List
, the observer
receives everything, and updates everything.
ViewEffect
: These are one off "effects" like starting an animation, making a toast
. You will update this with new data when you not concerned about the state of the effect. Like I don't care if there is another toast
on the screen, atm. Just make a new one with new information, and show it.
ViewEvent
: This allows the ViewModel
to receive events from the view
and start the "update" process. If a button is clicked in the view
all the view
would do is send a ViewEvent
to the ViewModel
stating what has been clicked. Then the ViewModel
updates the ViewState
/ViewEffect
based on the ViewEvent
received, which then propagates to the view.
Upvotes: 1