- Android application written with kotlin programming language.
- Use Clean Architecture.
- Create the object of fragments with factory method and inject to NavHostFragment using Hilt.
Minimum API level supported is: 23
- Build System: [Gradle](https://gradle.org)
- To run these application you need
- Android Studio.
- These application is build using MVVM architecture to allow separation of concerns.
- Clean Architecture
- Kotlin - Cross-platform, statically type, general purpose programming language with type inference.
- Hilt - Dependency injection library for android.
- NavigationComponets
- Retrofit - A Type-safe HTTP client for android and java used to consume REST APIs.
- [Paging 3] -Load data from server in small chuck to improve performance.
- Gson - Used to convert Json to java and kotlin objects.
- Glide - Image loader library for android.
- [Diff Utill Adapter] - This class finds the difference between two lists and provides the updated list as an output.
- ViewModel - Used to store and manage UI related data in a lifecycle concious way.
- Data Binding - Allows you to bind UI components in your layouts to data sources in your app
- Timber - Android Logger with a small and extensible API.
- Glide - Image loading framework for android that wraps media decoding, memory and disk caching.
- Flow API - In coroutines, a flow is a type that can emit multiple values sequentially, as opposed to suspend functions that return only a single value.
- [Binding Adapters] - Use to load image using Glide library in different class.
- [Expresso UI] - Expresso Library for Ui testing.
- [Mockito] - For JUnit testing i use Mockito librayr to mock the objects.