Bot releases are visible (Hide)
Published by elihart almost 4 years ago
Make MavericksViewModel extension functions protected (#488)
Add MavericksViewModel.awaitState (#487) to access current ViewModel state via a suspend function
Mark all @RestrictTo APIs with @InternalMavericksApi (#480)
Api additions to the mocking framework (#475) (#477)
Migrated CoroutinesStateStore to SharedFlow (#469)
Launcher and mock speed optimizations (#468)
Published by elihart almost 4 years ago
Coroutine api tweaks (#464)
Fix mocking docs (#465)
Never complete ViewModel.stateFlow (#460)
Tweaks and additions to the mocking framework (#461)
Allow configurable StateStore CoroutineContext (#454)
[2.0] Cleaned up and obfuscated some @RestrictTo APIs (#453)
MockableMavericks.initialize
function signature has changedPublished by elihart about 4 years ago
mvrx
artifact no longer has a dependency on RxJava, and the ViewModel and StateStore are now implemented with Kotlin Coroutinesmvrx-rxjava2
artifactmvrx-mocking
artifact now provides built in support for mocking viewmodels, states, and full screenswithState {
// W1
withState {
// W2
}
setState {
// S1
setState {
// S2
setState {
// S3
}
}
}
}
Previously, setState would only be prioritized at that nesting level so it would run:
[W1, S1, W2, S2, S3]
Now, it will run:
[W1, S1, S2, S3, W2]
postInvalidate()
from onStart in your base Fragment class.Published by elihart over 4 years ago
Published by elihart over 4 years ago
Note: MvRx now targets 1.8 for Java/Kotlin, so you may need to update your projects to also target
1.8
android {
kotlinOptions {
jvmTarget = JavaVersion.VERSION_1_8.toString()
}
}
Published by elihart over 4 years ago
Published by elihart almost 5 years ago
Fixes an issue in alpha 1 where the mvrx-launcher artifact wasn't actually present.
Published by elihart almost 5 years ago
This is a new major release with breaking changes. It incorporates a mocking system into MvRx to declare test data for screens and leverage that data with various testing tools. For a high level overview of this system, see this article series.
The main breaking change is that the debugMode
parameter no longer exists on BaseMvRxViewModel
. Instead, you define a global app wide debug setting by setting MvRx.viewModelConfigFactory = MvRxViewModelConfigFactory(applicationContext)
from your app's initialization.
See the configuration wiki for more details.
Additionally, the MvRxTestRule from the mvrx-testing artifact has changed its interface slightly. Notably the debug mode enum has been changed to a boolean. See the testing wiki page for details on this artifact.
If you would like to use the new mocking system, you can replace the MvRx
configuration call with MvRxMocks.install(applicationContext)
.
Additionally, you can define mocks for your screens by using the MockableMvRxView
interface instead of MvRxView
. This unlocks usage of the MvRx Launcher for easily browsing all screens and mocks in your app.
For more details on the mocking system, see the wiki page
This is an alpha so that we can receive feedback on the mocking apis and documentation (as well as bugs of course). Please let us know what you think and what changes you would like to see before the stable release!
Published by elihart almost 5 years ago
SavedStateRegistry
(#254)Breaking - This removes the need for MvRxViewModelStoreOwner
and BaseMvRxActivity
and thus those classes
are now deleted.
If you were using BaseMvRxActivity
you can instead now extend from AppCompatActivity
.
All usages of mvrxViewModelStore
can simply be deleted - state saving now happens completley
automatically.
Published by elihart about 5 years ago
Published by elihart about 5 years ago