Skip to content

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

Releases

Packages

Contributors

Languages