Skip to content

alexmprog/ThePets

Repository files navigation

ThePets

GitHub Logo GitHub Logo

About

Compose Multiplatform application simply loads data from API and stores it in persistence storage (i.e. SQLite Database).

  • User real Cats and Dogs api.
  • Clean and Simple Material UI.
  • Use multi-module Gradle architecture.

Built With 🛠

Kotlin - First class and official programming language for Android development.
Kotlin Gradle DSL - Provides an alternative syntax to the traditional Groovy DSL for Gradle build system.
Coroutines - Kotlin Asynchronous or non-blocking programming.
Compose - The modern toolkit for building native Android UI.
Orbit - Redux/MVI-like library. It's so simple we think of it as MVVM+.
Voyager - Component helps you implement navigation.
Room - SQLite object mapping library.
Koin - The pragmatic Kotlin Dependency Injection framework.
Ktor - A type-safe Kotlin Multiplatform HTTP client.
Kotlin Serialization) - A modern JSON library for Kotlin and Java.
Coil - An image loading library for Android and Compose Multiplatform.

Module Graph

%%{
  init: {
    'theme': 'base',
    'themeVariables': {"primaryTextColor":"#F6F8FAff","primaryColor":"#5a4f7c","primaryBorderColor":"#5a4f7c","tertiaryColor":"#40375c","lineColor":"#f5a623","fontSize":"12px"}
  }
}%%

graph TB
  subgraph :common
    :common:utils["utils"]
    :common:logger["logger"]
  end
  subgraph :core
    :core:database["database"]
    :core:dispatchers["dispatchers"]
    :core:network["network"]
    :core:ui["ui"]
  end
  subgraph :feature:cats
    :feature:cats:api["api"]
    :feature:cats:impl["impl"]
  end
  subgraph :feature:dogs
    :feature:dogs:api["api"]
    :feature:dogs:impl["impl"]
  end
  subgraph :feature:home
    :feature:home:impl["impl"]
    :feature:home:api["api"]
  end
  :feature:dogs:api --> :common:utils
  :core:database --> :common:logger
  :core:database --> :core:dispatchers
  :feature:home:impl --> :common:logger
  :feature:home:impl --> :common:utils
  :feature:home:impl --> :core:database
  :feature:home:impl --> :core:network
  :feature:home:impl --> :feature:cats:api
  :feature:home:impl --> :feature:dogs:api
  :feature:home:impl --> :feature:home:api
  :feature:cats:api --> :common:utils
  :app --> :common:logger
  :app --> :core:database
  :app --> :core:dispatchers
  :app --> :core:network
  :app --> :core:ui
  :app --> :feature:cats:api
  :app --> :feature:cats:impl
  :app --> :feature:dogs:api
  :app --> :feature:dogs:impl
  :app --> :feature:home:api
  :app --> :feature:home:impl
  :core:network --> :common:logger
  :core:network --> :common:utils
  :feature:dogs:impl --> :common:utils
  :feature:dogs:impl --> :core:database
  :feature:dogs:impl --> :core:dispatchers
  :feature:dogs:impl --> :core:network
  :feature:dogs:impl --> :core:ui
  :feature:dogs:impl --> :feature:dogs:api
  :feature:cats:impl --> :common:utils
  :feature:cats:impl --> :core:ui
  :feature:cats:impl --> :feature:cats:api
  :feature:cats:impl --> :core:database
  :feature:cats:impl --> :core:dispatchers
  :feature:cats:impl --> :core:network

classDef kotlin-multiplatform fill:#C792EA,stroke:#fff,stroke-width:2px,color:#fff;
classDef android-application fill:#2C4162,stroke:#fff,stroke-width:2px,color:#fff;
class :feature:dogs:api kotlin-multiplatform
class :common:utils kotlin-multiplatform
class :core:database kotlin-multiplatform
class :common:logger kotlin-multiplatform
class :core:dispatchers kotlin-multiplatform
class :feature:home:impl kotlin-multiplatform
class :core:network kotlin-multiplatform
class :feature:cats:api kotlin-multiplatform
class :feature:home:api kotlin-multiplatform
class :app android-application
class :core:ui kotlin-multiplatform
class :feature:cats:impl kotlin-multiplatform
class :feature:dogs:impl kotlin-multiplatform

Loading

Architecture

This repository uses recommended Android App architecture.

About

Compose Multiplatform demo application

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors