Skip to content

Android offline first mobile shopping app built with MVVM Architecture using Fake Store API

Notifications You must be signed in to change notification settings

RavanSA/ShoppingApp

Repository files navigation

Shopping Application

Min API Platform License

Android offline first shopping app built with MVVM Architecture using Fake Store API

Contents

Demonstration

Screenshots

On Boarding Screen 1 On Boarding Screen 2 On Boarding Screen 3
Login Screen Registration Screen Products Screen
Basket Screen Search Screen Detail Screen

Tech Stack and whys

  • 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.

Architecture

architecture