THIS PROJECT HAS MOVED TO: https://github.com/frenchdonuts/backburner_android
This is an app I've been thinking about making for a while. Its purpose is to randomly notify the user of heuristics, tidbits of wisdom, etc. It also serves as a demonstration of my current understanding of Android architecture.
- UI interface: Implementers emit UI events and read off the State that has been computed, turning them into side-effects that render to screen.
-
events :: Unit -> Observable<UI.Event>
-
render :: Observable<UI.UIState> -> Unit
- VM interface: Implementers transform UI events into business-logic Msgs and reduce on those Msgs w/ current state.
-
processEvents :: Observable<UI.Event> -> Unit
-
states :: Unit -> Observable<UI.UIState>
- Dataflow:
-
Data sources -> Repositories -> Interactors -> VM -> UI
-
UI -> VM -> Interactors -> Repositories -> Data sources
- Integrate SQLDelight and create Meditations table + queries
- Implement end-to-end data flow for Meditations list screen (one time fetch)
- Implement Add Meditations screen
- Power Meditations list by observing changes to meditations table
- Implement random notifications
- Use Dagger to inject dependencies
- Refine UX and UI
- Break features into separate modules
- Rename app, packages, etc. to backburner