A demo android application to fully interact with https://open-api.xyz.
- Sign in with current account
- Register new account
- Reset password
- View all blogs
- Filtering blogs by date and author
- Search blogs
- Create new blog (With a photo)
- Delete one of your blogs
- Update a blog
- View account information
- Update email and username
- Change password
- Written in Kotlin
- Coroutines : Lightweight threads for asynchronous.
- Dependency injection using Dagger 2
- JetPack
- LiveData - Observe data and apply it to views.
- Lifecycle - dispose of observing data when lifecycle state changes.
- ViewModel - UI related data holder, lifecycle aware.
- Room Persistence - build a database using the abstract layer.
- Navigation : Control navigation between fragment
- Leveraging multiple navigation graphs
- Architecture : Model View Intent (MVI) :
- StateEvent: used to trigger possible events
- DataState: Handle response of data (loading, error, data) and emits it ViewState
- ViewState: contains all values of view fields
- [Retrofit2](https://github.com/square/retrofit) - build the REST APIs and get network data
- Gson : Handle json objects -Pagination, Search, fitler : Control objects returned from server and database cache
- Single source of truth
- Use Kotlin Flow
- Migrate to Dagger Hilt