Getting Started
To begin using adidas MVI in your project, follow these steps:
1. Add the Dependency
Add the following to your build.gradle
file:
implementation("com.adidas.mvi:mvi:{LATEST_VERSION}")
Sync your project to download the necessary dependencies.
2. Create the Components
Here's an example of setting up the LoginViewModel and managing intents.
Login ViewModel
The LoginViewModel manages user actions and updates the application state based on intents.
class LoginViewModel( logger: Logger ) : ViewModel(), MviHost<LoginIntent, State<LoginState, LoginSideEffect>> {
private val reducer = Reducer(
coroutineScope = viewModelScope,
initialInnerState = LoginState.LoggedOut(isLoggingIn = false),
logger = logger,
intentExecutor = this::executeIntent
)
override val state = reducer.state
override fun execute(intent: LoginIntent) {
reducer.executeIntent(intent)
}
private fun executeIntent(intent: LoginIntent) =
when (intent) {
is LoginIntent.Login -> executeLogin(intent)
LoginIntent.Logout -> executeLogout()
LoginIntent.Close -> executeClose()
}
}
3. Update the Activity
In your Activity
, use the view model and set the content:
class MviSampleActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
LoginScreen()
}
}
}
Now you're ready to use adidas MVI in your project!