- Object Mapping
- Annotations to generate boilerplate codes.
- Compile Time Error Checking.
- Observable Queries include RXjava, flowables and livedata.
- List, optional, Guava support.
- Migration support between schemas.
- Testing support.
- by the end it is Google, means mainted by google it self, regualr upates, and bug fixes.
Workmanager is a feature-rich API that compatibly schedules deferrable background work.
- Asynchronous one-off and periodic tasks.
- Chaining with input/output. (some tasks can be input for other tasks)
- Constrains (run the job when the constraints are valid, such as mobile has a network, batter low, or battery is not low, no enough storage space).
- Handle Compatibility issues.
- Best practice for system Health.
- Guaranteed execution.
- Query state to display in UI. (Restore the UI state of UI if the device restart)
ViewModel is an object that provides data to UI components and survives the configuration change. such (screen rotation). it is lifecycle aware
Live date is an observable data holder. it is lifecycle aware.
- Avoid LifeCycle related UI loss: ViewModel.
- Observability for your UI: LiveData
- Avoid LifeCycle related memory leaks.
- LiveData transformations.
- UI-data base observation: livedata/Room
- xml-ViewModel Observation : DataBinding.
- Querying and observe UI lifecycle state.
- Flexible, supports any data sources.
- Works out of the books with Room and Recycleview.
- Support large and infinite length of lists.
- Loaded data shown automatically with livedata.
- support RXjava.
- Handles Fragments transactions.
- Implements proper up and back.
- DeepLinking Support.
- Easy animated transitions.
- Common navigation pattern support.