simple-stack-ftue-sample
event-emitter
simple-stack-ftue-sample | event-emitter | |
---|---|---|
2 | 9 | |
27 | 78 | |
- | - | |
4.3 | 0.0 | |
9 months ago | about 1 year ago | |
Kotlin | Java | |
Apache License 2.0 | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
simple-stack-ftue-sample
-
LiveData vs SharedFlow and StateFlow in MVVM and MVI Architecture
A simplified variation can be seen in this repo, a LiveData variant with Jetpack stuff can be seen in this repo, my issue with this sample is that as there is no input + debounce + filter + async data load example in it, there is no switchMap (and even for combineTuple, I can use my other helper validateBy here), and those would be key to understanding the difference in terms of expressibility and power...
-
A fragment -> auth flow-> bottom navigation w/ Navigation component/jetpack
See this sample for auth / conditional navigation then pretend that "ProfileFragment" is the fragment in this sample
event-emitter
-
ViewModel: for UI business, not UI operations 😮
If you mean UI events like the events from the Model to the UI, then you can use a sealed class and a Channel or EventEmitter
-
Kotlin Flow implementation of SingleLiveEvent
I can also comment https://github.com/Zhuinden/event-emitter 😛
-
Sending View Model Events to the UI (is this how people are handling Navigation and Snackbars now?)
For events, I use https://github.com/Zhuinden/event-emitter with https://github.com/Zhuinden/live-event
-
What's the proper way of accessing a Composable function from a non-composable one?
I use https://github.com/Zhuinden/event-emitter for this sort of thing via DisposableEffect(Unit) {
-
MVVM and one shot operations
If there isn't multiple screen switches involved, I use https://github.com/Zhuinden/event-emitter
-
LiveData is superior to StateFlow for UI and ViewModel layer.
That's why I wrote EventEmitter and never had a problem.
-
What is your currently configured SharedFlow implementation ?
I use BehaviorRelay in place of MutableStateFlow/MutableLiveData, and I use EventEmitter in place of uh, SingleLiveEvent I guess.
-
LiveData vs SharedFlow and StateFlow in MVVM and MVI Architecture
Well I've been using this which is merely a lifecycle-aware wrapper over this, if you're in Kotlin and you are using coroutine stuff then you can also use Channel(UNLIMITED) with receiveAsFlow()
What are some alternatives?
Jetpack-Navigation-Multistack-Example - [DEMO] An example using Jetpack Navigation and bottom nav multi-stack using child fragments.
Kotlin_Flow_To_The_View - PoC using Flow completely on an Android Projet with MVVM architecture. No LiveData. The advantage over simply using the viewModelScope is the fact that 5 seconds after leaving the application (not killing it !), the coroutine is cancelled, avoid possibly unnecessary work.
android-template - Project with various common components, to reduce "project setup" operations
androidx - Development environment for Android Jetpack extension libraries under the androidx namespace. Synchronized with Android Jetpack's primary development branch on AOSP.
jetpack-navigation-ftue-sample - [DEMO] Sample code to display "First-Time User Experience" in a Single-Activity app using Jetpack-Navigation, NavGraphs, Dagger, SavedStateHandle, Hilt, and EventEmitter - based on the FTUE example code in simple-stack-tutorials, but originally described by Google.
navigator - A small navigation library for Android to ease the use of fragment transactions & handling backstack (also available for Jetpack Compose).
live-event - [ACTIVE] Lifecycle-aware wrapper over EventEmitter, for modelling one-off events.
android-template - Android app starter template
compose-destinations - Annotation processing library for type-safe Jetpack Compose navigation with no boilerplate.
voyager - 🛸 A pragmatic navigation library for Jetpack Compose
Dispatch - Automatic CoroutineDispatcher injection and extensions for kotlinx.coroutines