prnvptl / WarbyParkerAndroid

Warby Parker Android Clone (Jetpack Compose)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Warby Parker - Android

A clone of Warby Parker app in Android built using Jetpack compose.

πŸ›‘ Disclaimer: This project is solely for my own learning purposes, I do not intend to break any laws and privacy terms in regards to the actual Warby parker app or company. πŸ›‘

This is a jetpack compose sample app written in Kotlin following clean architecture principles.

The purpose of this app to showcase:

  • Clone the current iOS Warby Parker app for Android
  • Implementation of Jetpack Android Architecture components with Dagger Android and Data Binding to minimize boilerplate code
  • Creation of proper components and Subcomponents using Dagger Android and their injection into Activity, Compose Views, View Models and Helper Classes
  • Performing background task with Kotlin Coroutines
  • Use Jetpack compose Animations!
  • Use CameraX and ARCore libraries to implement face augmented reality!

πŸ—οΈοΈ Built with ❀️ using Jetpack Compose

What How
🎭 User Interface (Android) Jetpack Compose
πŸ— Architecture MVVM
πŸ’‰ DI (Android) Hilt
🌊 Async Coroutines + Flow
πŸ‘¨β€πŸ’» Google SceneForm Sceneform
🌐 Networking Retrofit
πŸ“„ Parsing KotlinX

Demo Screens

Demo 1 Demo 2 Virtual Try On!
Home Eyeglasses Filter
Details Contacts Favourites
Account Login Cart

App Architecture

Separation of concerns

  • Business logic should not be intertwined with the UI code
  • UI-based classes should only contain logic that handles UI and operating system interactions

Drive UI from a model

  • The (view) model is responsible for handling data for the UI
  • The (view) model should not be affected by the app's lifecycle and configuration changes

Repository Pattern (https://martinfowler.com/eaaCatalog/repository.html)

  • Repositories to be mediators between different data sources
  • A repository pattern approach will provide a clean API to retrieve data easily from single or multiple access points. (network, local storage, etc..)

Languages, libraries and tools used

About

Warby Parker Android Clone (Jetpack Compose)


Languages

Language:Kotlin 100.0%