Skip to content

Commit

Permalink
Update README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
jaredrummler committed Apr 22, 2024
1 parent 2877008 commit 23ed6dd
Showing 1 changed file with 57 additions and 60 deletions.
117 changes: 57 additions & 60 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,95 +1,93 @@
# kmmify - Kotlin Multiplatform Template
# kmmify - Kotlin Multiplatform Library Template

Welcome to Kmmify, a streamlined template to kickstart your Kotlin Multiplatform projects. This
template provides a foundation for building cross-platform applications sharing business logic
across iOS, Android, and Web platforms while allowing for platform-specific implementations.
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.

![kmmify](.art/kmmify.webp)

[![Style Guide-Kotlin](https://img.shields.io/badge/Style%20Guide-Kotlin-7F52FF.svg?style=flat&labelColor=black&color=7F52FF&logo=kotlin)](https://styles.goatbytes.io/lang/kotlin)
![License](https://img.shields.io/badge/License-Apache%20V2.0-blue)
![Platform](https://img.shields.io/badge/Platform-Android%20|%20iOS%20|%20Desktop%20|%20Web-green)

## Features
## Key Features

- Multiplatform project setup for Android, iOS, and Web
- Pre-configured Gradle scripts for building and testing
- Documentation ready with MkDocs
- Code analysis setup with Detekt
- **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.

## Getting Started
## Quick Start Guide

### Prerequisites

Ensure you have the following installed:

- JDK 1.8 or newer
- Kotlin Multiplatform compatible IDE (IntelliJ IDEA recommended)
- Gradle 7.0 or newer

### Setup

Clone the repository:
### Repository Setup

```sh
git clone https://github.com/goatbytes/kmmify.git
cd kmmify
```
1. Click on the **Use this template** button to create a new repository from this template.
2. Clone the repository to your local machine using the following command:
```shell
git clone https://github.com/goatbytes/kmmify.git
```
3. Modify the [`BuildConfig.kt`](buildSrc/src/main/kotlin/BuildConfig.kt) file with your project
details.

### Building the Project
### Static Code Analysis with Detekt

Build the project using Gradle:

```sh
./gradlew build
```
Run Detekt to ensure code quality:

## Documentation

### Running Detekt

To run Detekt for static code analysis:

```sh
```shell
./gradlew detektAll
```

### Generating Documentation with Dokka
### Generate Documentation

Generate project documentation using Dokka:

```sh
```shell
./gradlew dokkaHtml
```

### Serving Documentation Locally with MkDocs
### Publish Documentation to GitHub Pages

To view the documentation locally, first ensure you have MkDocs installed:
1. Install `mkdocs`:
```shell
pip install mkdocs
pip install mkdocs-material
pip install pymdown-extensions
pip install mkdocs-minify-plugin
pip install mkdocs-git-revision-date-localized-plugin
```
2. Serve the documentation locally:
```shell
mkdocs serve
```
3. Access the documentation at `http:https://localhost:8000`.
4. Publish the documentation to GitHub Pages:
```shell
mkdocs gh-deploy
```

```sh
pip install mkdocs
```
### Secure Publishing with Release Signing

Then serve the documentation:
Ensure your library is securely published by signing your artifacts before release:

```sh
mkdocs serve
```

## Publishing

### Publishing to GitHub Packages

Ensure you have the appropriate permissions and your GitHub Token is set up. Then, run:
#### Setup for Release Signing

```sh
./gradlew publish
```

### Release Signing

To sign your artifacts before publishing, ensure the following properties are set in your
gradle.properties or passed via environment variables:
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
Expand All @@ -116,4 +114,3 @@ products that meet the evolving needs of businesses across various industries.
[![Twitter](https://img.shields.io/badge/Twitter-GoatBytes-1DA1F2?logo=twitter)](https://twitter.com/goatbytes)
[![LinkedIn](https://img.shields.io/badge/LinkedIn-GoatBytes-0077B5?logo=linkedin)](https://www.linkedin.com/company/goatbytes)
[![Instagram](https://img.shields.io/badge/Instagram-GoatBytes.io-E4405F?logo=instagram)](https://www.instagram.com/goatbytes.io/)

0 comments on commit 23ed6dd

Please sign in to comment.