/WLShop

Apache License 2.0Apache-2.0

Tech stack used to built

  • Kotlin, Coroutines and StateFlow & SharedFlow
  • Navigation Component - Single Host Activity with some multiple fragments approach
  • JetPack
    • LiveData - Observable lists.
    • Lifecycle - Dispose of observing data when lifecycle state changes.
    • Fragment-ktx - A set of Kotlin extensions that helps with fragment lifecycle.
    • ViewModel - UI related data holder, lifecycle aware.
  • Manual Dependency Injection using simple hand-on dependency injection.
  • Room The Room persistence library provides an abstraction layer over SQLite to allow fluent database access while harnessing the full power of SQLite.
  • OKHttp3 HTTP client builder for Android.
  • Coil - Coil is an image loading library for Android backed by Kotlin Coroutines.
  • Kotlin-Kover - Kover is a set of solutions for collecting test coverage of Kotlin code compiled for JVM and Android platforms.

Tests

  • Mockk library
  • JUnit4
  • ActivityScenarios
  • Espresso

Architecture

For this app was uses MVVM (Model View View-Model) architecture

API Service 🔑

  • Fake Store API It was fakeStoreApi is a free online REST API that you can use whenever you need Pseudo-real data for your e-commerce or shopping website without running any server-side code. It's awesome for teaching purposes, sample codes, tests, etc.

Modularization

https://github.com/vanniktech/gradle-dependency-graph-generator-plugin

WLShop was built segregate in some modules, like


Root project 'WLShop' project's view

Root project 'WLShop'
+--- Project ':app' ---> Main Application of our App
+--- Project ':shared' ---> Shared library to be consumed for ours libraries.
|    +--- Project ':shared:sa-analytics' ---> Responsible by share our tracking logic between modules 
|    +--- Project ':shared:sa-data' ---> Responsible by share our persistence logic between modules
|    +--- Project ':shared:sa-network' ---> Responsible by share our made network logic between modules
|    \--- Project ':shared:ui-ds' ---> Responsible by share our base tokens and themes design system between modules
\--- Project ':wlshop' ---> White label library of the e-commerce  

Included builds
\--- Included build ':build-source' ---> Source build system logic used to share common config between android libraries.

Licence

    Designed and developed by 2024 recepbrk (Recep Güzel)

   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at

     http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.