Skip to content

This project is the implementation of how one can adopt the Kotlin multiplatform for building Android and ios apps with compose mulitplatform as common ui.

License

Notifications You must be signed in to change notification settings

rvenky125/DoodleKingKMM

Repository files navigation

doodle_king_banner

Doodle King KMM app for Android and iOS

This project is the implementation of how one can adopt the Kmp (Kotlin multiplatform) for building Android and ios apps. I rebuilt Philipp Lackner's doodle king api for backend. I have used the Compose Multiplatform to build the UI of both platforms. If you are new to Compose multiplatform please go through: https://www.jetbrains.com/lp/compose-multiplatform/

How to build the project

To build the project you need some basic understanding of how the KMP projects are built. For that, you have look at: https://kotlinlang.org/docs/multiplatform-mobile-getting-started.html

To build the project first you need to clone and run Doodle king Ktor api

After that find the file local.properties file in the root folder of the KMM project and add below key value pairs.

BASE_URL = http://[IP_ADDRESS]:7000/
WEB_SOCKET_BASE_URL = ws://[IP_ADDRESS]:7000/

Demo Video

doodle_king.mp4

What's Next

  • Bug fixes 😅.
  • Some more UI improvement.
  • Add Authentication.
  • Password for joining room.
  • Improving overall Architecture.

Technologies in this project

  • Kotlin - First class and official programming language for Android development.
  • Jetpack Compose - Android’s modern toolkit for building native UI.
  • Jetbrain's compose multiplatform - UI development for Android, iOS, Web, Desktop and many more.
  • Kotlin multiplatform - Kotlin-based development for frontend applications for Android,iOS, Web and desktop.
  • Voyager - Navigation library for jetpack compose and compose multiplatform.
  • Ktor) - A kotlin based networking library.
  • Kotlinx Serialization - Serialization library which can be used in KMM projects.
  • Koin - Libray for dependency injection.
  • Multiplatform Setting - Key-Value pair local storage.
  • Build Konfig - Libray to generate build config object. I used it to store env variables.
  • Napier - Library for logging.

For more information about used dependencies, see this file.

Questions

If you have any questions regarding the codebase, or you would like to discuss anything about the project hit/connect me up on :

About

This project is the implementation of how one can adopt the Kotlin multiplatform for building Android and ios apps with compose mulitplatform as common ui.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published