{"id":19892592,"url":"https://github.com/compscidr/hello-kotlin-android","last_synced_at":"2026-05-14T03:32:36.889Z","repository":{"id":36995824,"uuid":"225228533","full_name":"compscidr/hello-kotlin-android","owner":"compscidr","description":"\"Hello Kotlin-Android\" with jacoco, junit5, ktlint, mockk, codecov, dokka, r8, logback-android, papertrail ready to go","archived":false,"fork":false,"pushed_at":"2026-05-14T01:21:12.000Z","size":1325,"stargazers_count":1,"open_issues_count":5,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-05-14T03:23:58.702Z","etag":null,"topics":["android","codecov","dokka","jacoco","junit5","kotlin","ktlint","logback-android","mockk","papertrail","r8"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/compscidr.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2019-12-01T20:47:27.000Z","updated_at":"2026-05-14T01:21:16.000Z","dependencies_parsed_at":"2023-01-17T12:32:55.791Z","dependency_job_id":"96501f72-ddf2-480c-901e-6c955f606451","html_url":"https://github.com/compscidr/hello-kotlin-android","commit_stats":null,"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"purl":"pkg:github/compscidr/hello-kotlin-android","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/compscidr%2Fhello-kotlin-android","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/compscidr%2Fhello-kotlin-android/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/compscidr%2Fhello-kotlin-android/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/compscidr%2Fhello-kotlin-android/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/compscidr","download_url":"https://codeload.github.com/compscidr/hello-kotlin-android/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/compscidr%2Fhello-kotlin-android/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33009479,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-13T13:14:54.681Z","status":"online","status_checked_at":"2026-05-14T02:00:06.663Z","response_time":57,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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","codecov","dokka","jacoco","junit5","kotlin","ktlint","logback-android","mockk","papertrail","r8"],"created_at":"2024-11-12T18:24:19.908Z","updated_at":"2026-05-14T03:32:36.882Z","avatar_url":"https://github.com/compscidr.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# hello-kotlin-android\n[![Build Status](https://github.com/compscidr/hello-kotlin-android/workflows/Test%20and%20Reports/badge.svg)](https://github.com/compscidr/hello-kotlin-android/actions)\u0026nbsp;\n[![codecov](https://codecov.io/gh/compscidr/hello-kotlin-android/branch/main/graph/badge.svg?token=KQYUqNQ3Da)](https://codecov.io/gh/compscidr/hello-kotlin-android)\u0026nbsp;\n[![ktlint](https://img.shields.io/badge/code%20style-%E2%9D%A4-FF4081.svg)](https://ktlint.github.io/)\u0026nbsp;\n[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)\n\nWhen starting a new project, I always find getting the tools up and running quickly is a pain, so I\nwanted something for Kotlin which already had everything setup and working.\n\nThis aims to be a starter repo with all of the following tooling setup:\n* [Junit5](https://junit.org/junit5/docs/current/user-guide/)\n* [Jacoco](https://www.eclemma.org/jacoco/) \n* [Github actions](https://github.com/marketplace/actions/gradle-android)\n* [Codecov](https://codecov.io/)\n* [ktlint](https://ktlint.github.io/)\n* [Mockk](https://mockk.io/ANDROID.html)\n* [Dokka](https://github.com/Kotlin/dokka)\n* [r8](https://android-developers.googleblog.com/2018/11/r8-new-code-shrinker-from-google-is.html)\n* [Dagger2](https://medium.com/@elye.project/dagger-2-for-dummies-in-kotlin-with-one-page-simple-code-project-618a5f9f2fe8)\n* [Logback Android](https://github.com/tony19/logback-android)\n* [Papertrail](https://papertrailapp.com/)\n* Unit test examples\n* Instrumented test examples\n\n## Codecov notes\nCoverage is provided for:\n- Instrumented on-device android tests\n- JVM unit tests from the android app\n- JVM unit tests from the library\nThey are each uploaded separately, as I had issues with the code cov action providing more than a single report at once. Codecov\ncan handle the multiple uploads and merge them together anyhow.\n\n## Secrets\nSecrets are passed in via `local.properties` or `.env` or via environment variables. There is an example in the GH workflows which shows how to pass in via\n`local.properties` and via environment variables. It will also work with a `.env` in the app directory.\n\n## Note about squashing\nDo not do squash merges to the staging or production branches, or in the mergebacks to main, or\nthere will be nothing but trouble. See the following for more details:\nhttps://github.com/orgs/community/discussions/10809\n\n## Staging release\nhttps://github.com/compscidr/hello-kotlin-android/compare/staging...main\n\n## Production release\nhttps://github.com/compscidr/hello-kotlin-android/compare/production...staging\n\n## Merge-backs\nNOTE: the mergeback should be a merge commit, not a squash commit or will result in a diff when\ncomparing branches later on.\n\nIdeally you find no diff:\nhttps://github.com/compscidr/hello-kotlin-android/compare/main...production\nhttps://github.com/compscidr/hello-kotlin-android/compare/main...staging\nhttps://github.com/compscidr/hello-kotlin-android/compare/staging...production\n\nTODO:\n* [Firebase Crashlytics](https://firebase.google.com/docs/crashlytics)\n* [Jetpack Compose](https://developer.android.com/jetpack/compose)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcompscidr%2Fhello-kotlin-android","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcompscidr%2Fhello-kotlin-android","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcompscidr%2Fhello-kotlin-android/lists"}