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.
.jpeg)
.jpeg)
.jpeg)
.jpeg)
.jpeg)

.jpeg)
.jpeg)
.jpeg)
