Skip to content

HeyTips is a fullstack mobile app that demonstrates modern Compose Multiplatform development with Decompose, Koin, SqlDelight, Ktor based on Multi-Module MVI architecture.

Notifications You must be signed in to change notification settings

larkes-cyber/HeyTipsApp

Repository files navigation

HeyTips

License API

HeyTips is a fullstack cross-platform mobile app that demonstrates modern Compose Multiplatform development with Decompose, Koin, SqlDelight, Ktor based on Multi-Module MVI architecture. Includes admin panel and user sreens based on one technology.

Tip

If you want to see more the Kotlin Multiplatform content, check out the telegram channel.

image

Download

Go to the Releases to download the latest APK.

Main features

  • Ios/Android/Desktop
  • Caching/Pagination
  • Image Picker/Internet Images
  • Multi-module/MVI
  • Unit tests
  • MVC ktor server

Overview

common_cast.mp4

Tech stack & Open-source libraries

  • Minimum SDK level 24
  • iOS Deployment Target 15.3
  • Kotlin Multiplatform based, Compose Multiplatform for Android/Ios/Desktop ui interfaces.
  • Kotlin Multiplatform
    • Expected/actual: Expected and actual declarations allow you to access platform-specific APIs from Kotlin Multiplatform modules. You can provide platform-agnostic APIs in the common code.
    • Gradle kts: Gradle’s Kotlin DSL provides an alternative syntax to the traditional Groovy DSL with an enhanced editing experience in supported IDEs, with superior content assist.
  • Architecture
    • Multi-Module Concept: Modularization is a practice of organizing a codebase into loosely coupled and self contained parts. Each part is a module. Each module is independent and serves a clear purpose.
    • Decompose: library for breaking down your code into tree-structured lifecycle-aware business logic components (aka BLoC), with routing functionality and pluggable UI
    • Koin: Koin provides us with an all-in kotlin library to use it in our shared module to create injections that can be used by both Android and iOS
    • Repository Pattern: Repository commonly refers to a storage location, often for safety or preservation.
  • Client/Server
    • SqlDelight:SQLDelight is a powerful tool for implementing data persistence in Kotlin Multiplatform Mobile (KMM) projects
    • Ktor:Ktor includes a multiplatform asynchronous HTTP client, which allows you to make requests and handle responses, extend its functionality with plugins, such as authentication, JSON serialization, and so on.
    • Serialization: Kotlin serialization consists of a compiler plugin, that generates visitor code for serializable classes, runtime library with core serialization API and support libraries with various serialization formats.

image

Compose Multiplatform

  • Coil: Loading images from network.

Code implementation: realization

Dependencies: gradle

Lib overview: link

  • File Picker: Compose file picker for desktop.

Code implementation: realization

Dependencies: gradle

Lib overview: link

  • Image Picker: Image picker for Android/Ios.

Code implementation:

Dependencies: gradle

Lib overview: link

  • Color Picker: Cross-platform color picker.

Code implementation: realization

Dependencies: gradle

Lib overview: link

  • Decompose Navigation: Cross-platform navigation.

Code implementation:

Dependencies: gradle

Lib overview: link

image

Architecture

HeyTipsApp is based on the Multi-Module Concept, the MVI architecture and the Repository pattern

image image

The project includes 8 modules where: 1 composeApp, 3 features, 2 core, 1 umbrella, 1 utils.

Tips

The feature is to work with tips and contain common ui components. Unit tests included

Feature User

The feature is to represent app user side

Feature Admin

The feature is to represent app admin side

image

How to launch

  • Clone repository
  • Launch the server link
  • Paste your server url into SERVER_URL link
  • Launch android app from android studio, ios from xCode
  • Launch desktop app by entering in terminal /.gradle run
  • Enjoy the app!

About

HeyTips is a fullstack mobile app that demonstrates modern Compose Multiplatform development with Decompose, Koin, SqlDelight, Ktor based on Multi-Module MVI architecture.

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published