Skip to content
/ KMPTemplate Public template

A KMP Template targeting Multiplatform Compose Android, IOS and Desktop. Get started with zero effort.

License

Notifications You must be signed in to change notification settings

Kashif-E/KMPTemplate

Repository files navigation

KMPTemplate

Featured in Kotlin weekly and Kotlin weeekly

The KMPTemplate is designed to help developers build applications for three platforms:

  • Android
  • iOS
  • Desktop

This is built to reduce the effort of configuring all the targets together such as Compose for Ios which currently does not have an ios target when creating a new compose multiplatform project using intellij idea.

Screenshot 2023-02-14 at 8 06 39 PM

How it works?

KMPTemplate leverages the power of Kotlin Multiplatform and Compose Multiplatform to create a unified codebase for all target platforms. Here's how it works for each platform:

  • Android: Runs natively on Android devices.
  • iOS: Utilizes UIKit under the hood for seamless integration with iOS devices.
  • Desktop: Employs the Skia Library to provide native-like performance on desktop platforms.

Template Features

The KMPTemplate comes with several preconfigured features to accelerate your development process:

  • Version Catalogs
  • Compose Multiplatform
  • Koin for dependency injection
  • Ktor for networking
  • Kotlin serialization
  • Multiplatform image viewer

Is it production-ready?

KMPTemplate can be considered both production-ready and not production-ready, depending on your requirements. You can use the UIControllers generated by Compose alongside SwiftUI or UIKit to share the UI across platforms. For platform-specific features like camera and sensors, you can utilize SwiftUI or UIKit.

If you have any suggestions or find a bug, please add it to the issues.

Troubleshooting

MacOS on Apple Chip (M1/M2)

If you encounter the error 'pod install' command failed with code 1. run the following commands in the terminal:

sudo softwareupdate --install-rosetta --agree-to-license
sudo gem uninstall ffi && sudo gem install ffi -- --enable-libffi-alloc

kashif_mehmood_ kashif-mehmood kashif-mehmood

Releases

No releases published

Packages

No packages published