Android offline first shopping app built with MVVM Architecture using Fake Store API
On Boarding Screen 1 | On Boarding Screen 2 | On Boarding Screen 3 |
---|---|---|
Login Screen | Registration Screen | Products Screen |
---|---|---|
Basket Screen | Search Screen | Detail Screen |
---|---|---|
- Kotlin - First class and official programming language for Android development.
- Coroutines and Flow -Used to do asynchronous work without blocking the main thread and increasing productivity.
- MVVM Architecture - The MVVM architecture used to cleanly separate the business and presentation logic of the application, using characteristics of MVVM such as unidirectional data flow, dependency flow, and loose coupling.
- Android Jetpack - Android Jetpack library is used to follow best practices, reduce boilerplate code, and write code that works consistently across Android versions and devices.
- Navigation - Navigation component is used to navigating between fragments
- ViewModel - The ViewModel is used to store and manage UI-related data in a lifecycle conscious way.
- StateFlow-SharedFlow - StateFlow - SharedFlow is used to observe state owner flows that emits current and new status updates to their collectors.
- Room - The Room library used to access the local SQLite database with object-relational mapper approach.
- DataStore - DataStore is used with Flows to store data key-value pairs and typed objects.
- Hilt - Hilt-Dagger library used to use independently of dependencies.
- OkHttp - Used to HTTP client for making network calls.
- Retrofit - Used to REST API clients.
- Glide - Used to image loading library using HTTP.
- ConstraintLayout - ConstraintLayout used to create large and complex layouts without nested viewgroups.
- GSON - JSON Parser, used to parse requests on the data layer for Entities and understands Kotlin non-nullable and default parameters.
- ViewPager2 - Used to slide between Fragments within adapters
For more information about used dependencies, see this file.