{"id":21669807,"url":"https://github.com/ashtanko/compose-android-template","last_synced_at":"2025-04-12T02:34:36.905Z","repository":{"id":40943280,"uuid":"482629805","full_name":"ashtanko/compose-android-template","owner":"ashtanko","description":"A simple Github template that lets you create an Android/Kotlin project and be up and running in a few seconds.","archived":false,"fork":false,"pushed_at":"2024-09-09T21:45:31.000Z","size":453,"stargazers_count":3,"open_issues_count":1,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-09-10T02:35:32.498Z","etag":null,"topics":["android","android-architecture","android-template","detekt","gradle-kotlin-dsl","jetpack-compose","kotlin","kotlin-android","kotlin-coroutines","kotlin-library","ktlint","spotless"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ashtanko.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-04-17T20:46:49.000Z","updated_at":"2024-09-09T21:45:34.000Z","dependencies_parsed_at":"2023-01-24T08:31:00.354Z","dependency_job_id":null,"html_url":"https://github.com/ashtanko/compose-android-template","commit_stats":null,"previous_names":[],"tags_count":0,"template":true,"template_full_name":"cortinico/kotlin-android-template","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ashtanko%2Fcompose-android-template","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ashtanko%2Fcompose-android-template/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ashtanko%2Fcompose-android-template/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ashtanko%2Fcompose-android-template/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ashtanko","download_url":"https://codeload.github.com/ashtanko/compose-android-template/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":226326770,"owners_count":17607306,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","android-architecture","android-template","detekt","gradle-kotlin-dsl","jetpack-compose","kotlin","kotlin-android","kotlin-coroutines","kotlin-library","ktlint","spotless"],"created_at":"2024-11-25T12:25:19.723Z","updated_at":"2025-04-12T02:34:36.899Z","avatar_url":"https://github.com/ashtanko.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# compose-android-template 🤖\n\n[![Use this template](https://img.shields.io/badge/from-kotlin--android--template-brightgreen?logo=dropbox)](https://github.com/ashtanko/compose-android-template/generate) \n![Pre Merge Checks](https://github.com/cortinico/kotlin-android-template/workflows/Pre%20Merge%20Checks/badge.svg)  \n![License](https://img.shields.io/github/license/cortinico/kotlin-android-template.svg) \n![Language](https://img.shields.io/github/languages/top/cortinico/kotlin-android-template?color=blue\u0026logo=kotlin) \n[![Android CI](https://github.com/ashtanko/compose-android-template/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/ashtanko/compose-android-template/actions/workflows/ci.yml)\n\nA simple Github template that lets you create an **Android/Kotlin** project and be up and running in a **few seconds**. \n\nThis template is focused on delivering a project with **static analysis** and **continuous integration** already in place.\n\n## How to use 👣\n\nJust click on [![Use this template](https://img.shields.io/badge/-Use%20this%20template-brightgreen)](https://github.com/ashtanko/compose-android-template/generate) button to create a new repo starting from this template.\n\nOnce created don't forget to update the:\n- [App ID](buildSrc/src/main/java/Coordinates.kt)\n- AndroidManifest ([here](app/src/main/AndroidManifest.xml) and [here](library-android/src/main/AndroidManifest.xml))\n- Package of the source files\n\n## Features 🎨\n\n- **100% Kotlin-only template**.\n- 3 Sample modules (Android app, Android library, Kotlin library).\n- Sample Espresso, Instrumentation \u0026 JUnit tests.\n- 100% Gradle Kotlin DSL setup.\n- CI Setup with GitHub Actions.\n- Publish to **Maven Central** with Github Actions.\n- Dependency versions managed via `buildSrc`.\n- Kotlin Static Analysis via `ktlint`, `detekt` and `spotless`.\n- Issues Template (bug report + feature request).\n- Pull Request Template.\n- Jetpack Compose\n- Theming\n\n## Gradle Setup 🐘\n\nThis template is using [**Gradle Kotlin DSL**](https://docs.gradle.org/current/userguide/kotlin_dsl.html) as well as the [Plugin DSL](https://docs.gradle.org/current/userguide/plugins.html#sec:plugins_block) to setup the build.\n\nDependencies are centralized inside the [Dependencies.kt](buildSrc/src/main/java/Dependencies.kt) file in the `buildSrc` folder. This provides convenient auto-completion when writing your gradle files.\n\n## Static Analysis 🔍\n\nThis template is using [**ktlint**](https://github.com/pinterest/ktlint) with the [ktlint-gradle](https://github.com/jlleitschuh/ktlint-gradle) plugin to format your code. To reformat all the source code as well as the buildscript you can run the `ktlintFormat` gradle task.\n\nThis template is also using [**detekt**](https://github.com/detekt/detekt) to analyze the source code, with the configuration that is stored in the [detekt.yml](config/detekt/detekt.yml) file (the file has been generated with the `detektGenerateConfig` task).\n\n## CI ⚙️\n\nThis template is using [**GitHub Actions**](https://github.com/cortinico/kotlin-android-template/actions) as CI. You don't need to setup any external service and you should have a running CI once you start using this template.\n\nThere are currently the following workflows available:\n- [Validate Gradle Wrapper](.github/workflows/gradle-wrapper-validation.yml) - Will check that the gradle wrapper has a valid checksum\n- [Pre Merge Checks](.github/workflows/pre-merge.yaml) - Will run the `build`, `check` and `publishToMavenLocal` tasks.\n- [Publish Snapshot](.github/workflows/publish-snapshot.yaml) - Will publish a `-SNAPSHOT` of the libraries to Sonatype.\n- [Publish Release](.github/workflows/publish-release.yaml) - Will publish a new release version of the libraries to Maven Central on tag pushes.\n\n## Publishing 🚀\n\nThe template is setup to be **ready to publish** a library/artifact on a Maven Repository.\n\nFor every module you want to publish you simply have to add the `publish` plugin:\n\n```\nplugins {\n    publish\n}\n```\n\n### To Maven Central\n\nIn order to use this template to publish on Maven Central, you need to configure some secrets on your repository:\n\n| Secret name | Value |\n| --- | --- | \n| `ORG_GRADLE_PROJECT_NEXUS_USERNAME` | The username you use to access Sonatype's services (such as [Nexus](https://oss.sonatype.org/) and [Jira](https://issues.sonatype.org/)) |\n| `ORG_GRADLE_PROJECT_NEXUS_PASSWORD` | The password you use to access Sonatype's services (such as [Nexus](https://oss.sonatype.org/) and [Jira](https://issues.sonatype.org/)) |\n| `ORG_GRADLE_PROJECT_SIGNING_KEY` | The GPG Private key to sign your artifacts. You can obtain it with `gpg --armor --export-secret-keys \u003cyour@email.here\u003e` or you can create one key online on [pgpkeygen.com](https://pgpkeygen.com). The key starts with a `-----BEGIN PGP PRIVATE KEY BLOCK-----`. |\n| `ORG_GRADLE_PROJECT_SIGNING_PWD` | The passphrase to unlock your private key (you picked it when creating the key). |\n\nThe template already sets up [Dokka](https://kotlin.github.io/dokka/) for project documentation and attaches `-sources.jar` to your publications.\n\nOnce set up, the following workflows will take care of publishing:\n\n- [Publish Snapshot](.github/workflows/publish-snapshot.yaml) - To publish `-SNAPSHOT` versions to Sonatype. The workflow is setup to run either manually (with `workflow_dispatch`) or on every merge.\n- [Publish Release](.github/workflows/publish-release.yaml) - Will publish a new release version of the libraries to Maven Central on tag pushes. You can trigger the workflow also manually if needed.\n\n### To Jitpack\n\nIf you're using [JitPack](https://jitpack.io/), you don't need any further configuration and you can just configure the repo on JitPack.\n\nYou probably want to disable the [Publish Snapshot] and [Publish Release](.github/workflows/publish-release.yaml) workflows (delete the files), as Jitpack will take care of that for you.\n\n## Contributing 🤝\n\nFeel free to open a issue or submit a pull request for any bugs/improvements.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fashtanko%2Fcompose-android-template","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fashtanko%2Fcompose-android-template","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fashtanko%2Fcompose-android-template/lists"}