Amalia ¶
What is Amalia?¶
Amalia is an MVP/MVI implementation dictating a straightforward uni-directional flow of view states to render and view events to process.
Features¶
- 100% Kotlin with pleasant apis that can still be consumed from Java
- Coroutine scope cancellation support via optional gradle dependency
- Decouple the UI from business logic but allow communication between the two
- Lifecycle-aware presenters which automatically clean up
- Modern Android Jetpack components
- presenters survive configuration changes via Jetpack's
ViewModelStore
- presenters can receive lifecycle callbacks via a
LifecycleOwner
- presenters are loosely coupled to views via
LiveData
observers - presenters can recover from process death with the help of
SavedStateRegistryOwner
- presenters survive configuration changes via Jetpack's
- Structure legacy code without refactoring every single piece, even from Java.
- Prevent common crashes due to running code when view is not ready or destroyed.