Welcome to kmmify, a comprehensive template designed to jumpstart your Kotlin Multiplatform library projects. This template simplifies the creation and maintenance of cross-platform libraries, enabling shared business logic across multiple platforms including iOS, Android, Web, and various native platforms like Linux, watchOS, and tvOS. Kmmify is the perfect starting point for developers looking to build robust, multiplatform solutions efficiently.
- Extensive Multiplatform Support: Configured for Android, iOS, Web, and Native platforms (including Linux, watchOS, and tvOS), ensuring broad compatibility and versatility.
- Pre-configured Build System: Includes ready-to-use Gradle scripts for building and testing your libraries.
- Code Quality Assurance: Set up with Detekt for static code analysis to maintain high code standards.
- Documentation Ready: Integrated with MkDocs and Dokka for generating comprehensive project documentation.
- Release Signing: Sign your artifacts before publishing for enhanced security and integrity.
- GitHub Packages Publishing: Easily publish your library to GitHub Packages with a single command.
- CI/CD Ready: Integrated with GitHub Actions for automated testing and deployment.
- Kotlin Multiplatform compatible IDE (IntelliJ IDEA recommended)
- Click on the Use this template button to create a new repository from this template.
- Clone the repository to your local machine using the following command:
git clone https://github.com/goatbytes/kmmify.git
- Modify the
BuildConfig.kt
file with your project details.
Run Detekt to ensure code quality:
./gradlew detektAll
Generate project documentation using Dokka:
./gradlew dokkaHtml
- Install
mkdocs
:pip install mkdocs mkdocs-material pymdown-extensions mkdocs-minify-plugin mkdocs-git-revision-date-localized-plugin
- Serve the documentation locally:
mkdocs serve
- Access the documentation at
http://localhost:8000
. - Publish the documentation to GitHub Pages:
mkdocs gh-deploy
Ensure your library is securely published by signing your artifacts before release:
To sign your releases, you need to generate signing keys. You can use tools like GPG or OpenSSL.
Then ensure the following properties are set in your ~/.gradle/gradle.properties
or passed via
environment variables:
- SIGNING_KEY_ID
- SIGNING_KEYRING
- SIGNING_PASSWORD
Contributions are welcome! Please read our contributing guide and submit pull requests to our repository.
Distributed under the Apache v2.0 License. See LICENSE.txt
for more information.
At GoatBytes.IO, our mission is to develop secure software solutions that empower businesses to transform the world. With a focus on innovation and excellence, we strive to deliver cutting-edge products that meet the evolving needs of businesses across various industries.