An application I wrote to learn paging3 and practice client in a clean architecture.
-
Architecture - Start with classes for managing your UI component lifecycle and handling data persistence.
- lifecycle - As a user navigates through, out of, and back to your app, the Activity instances in your app transition through different states in their lifecycle.
- Repository - Repository modules handle data operations.
- ViewModel - Easily schedule asynchronous tasks for optimal execution.
- View Binding - a feature that allows you to more easily write code that interacts with views.
- Navigation - Handle everything needed for in-app navigation. asynchronous tasks for optimal execution.
- Coroutines - A coroutine is a concurrency design pattern that you can use on Android to simplify code that executes asynchronously.
- livedata - is an observable data holder class. Unlike a regular observable, LiveData is lifecycle-aware, meaning it respects the lifecycle of other app components, such as activities, fragments, or services.
-
UI - Details on why and how to use UI Components in your apps - together or separate
-
Third party and miscellaneous libraries
- Retrofit for turns your HTTP API into a Java interface
- Paging3 The Paging library helps you load and display pages of data from a larger dataset from local storage or over network.
- OkHttp OkHttp is an HTTP client that’s efficient by default
- Coil for image loading
- Timber This is a logger with a small, extensible API which provides utility on top of Android's normal Log class.
- Hilt Hilt is the recommended solution for dependency injection in Android apps, and works seamlessly with Compose.
Gender and status data are not coming to BottomsheetView. Search operation is not performed.