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.
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