{"id":27193610,"url":"https://github.com/celerik/android-kotlin-boilerplate","last_synced_at":"2025-04-09T18:56:28.355Z","repository":{"id":48403233,"uuid":"385339716","full_name":"celerik/android-kotlin-boilerplate","owner":"celerik","description":"🚀 The Celerik's Android Kotlin boilerplate for efficiency developing new Android mobile applications.","archived":false,"fork":false,"pushed_at":"2021-08-05T21:36:24.000Z","size":269,"stargazers_count":4,"open_issues_count":0,"forks_count":4,"subscribers_count":3,"default_branch":"master","last_synced_at":"2023-03-05T03:52:17.036Z","etag":null,"topics":["android","boilerplate-template","kotlin"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/celerik.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-07-12T18:05:32.000Z","updated_at":"2023-01-20T17:31:03.000Z","dependencies_parsed_at":"2022-08-24T14:38:33.809Z","dependency_job_id":null,"html_url":"https://github.com/celerik/android-kotlin-boilerplate","commit_stats":null,"previous_names":[],"tags_count":null,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/celerik%2Fandroid-kotlin-boilerplate","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/celerik%2Fandroid-kotlin-boilerplate/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/celerik%2Fandroid-kotlin-boilerplate/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/celerik%2Fandroid-kotlin-boilerplate/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/celerik","download_url":"https://codeload.github.com/celerik/android-kotlin-boilerplate/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248094146,"owners_count":21046764,"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","boilerplate-template","kotlin"],"created_at":"2025-04-09T18:56:25.958Z","updated_at":"2025-04-09T18:56:28.346Z","avatar_url":"https://github.com/celerik.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n\u003cimg src=\"https://www.celerik.com/wp-content/uploads/2019/12/celerik-1.svg\" alt=\"Celerik\"  width=\"300\" height=\"80\"/\u003e\n\n [![Maintainability Rating](https://sonarcloud.io/api/project_badges/measure?project=celerik_android-kotlin-boilerplate\u0026metric=sqale_rating)](https://sonarcloud.io/dashboard?id=celerik_android-kotlin-boilerplate) [![Code Smells](https://sonarcloud.io/api/project_badges/measure?project=celerik_android-kotlin-boilerplate\u0026metric=code_smells)](https://sonarcloud.io/dashboard?id=celerik_android-kotlin-boilerplate) [![Lines of Code](https://sonarcloud.io/api/project_badges/measure?project=celerik_android-kotlin-boilerplate\u0026metric=ncloc)](https://sonarcloud.io/dashboard?id=celerik_android-kotlin-boilerplate)\n\n# Welcome to Android Kotlin Boilerplate!  \n  \n## Getting Started  \nAndroid Kotlin Boilerplate refers to standardized methods, procedures and files that may be used over again for efficiency developing new Android mobile applications.  \n  \n## What's included  \n* An Android app with _modular architecture_ and _MVVM_ architectural pattern.\n* _Splash screen_ with app version and empty _MainActivity_.\n* _Network connectivity interceptor_ for HTTP requests.\n* _Dagger2_ for dependencies injection.\n* _ViewBinding_ for activities and fragments.\n* _Timber_ for logging purposes.\n* Android Studio _EditorConfig_ file to maintain consistent coding styles.\n* Gradle’s Kotlin _DSL_.\n* _SonarQube_ configuration files.\n* _JaCoCo_ maven plugin to generate test coverage reports.\n* _ktlint_ for static code analysis.\n* _LeakCanary_ for memory leaks detection.\n* _Fastlane_ for CI/CD tasks.\n* _SonarCloud_ for static code analysis.\n* _Github_ workflows for automated PR actions and Firebase app distribution.\n* _Azure DevOps Pipelines_ workflows for automated PR actions.\n* _dokka_ for Kotlin's documentation generation.\n\n## Installation  \nClone this repository and import it into **Android Studio**  \n```bash  \ngit clone https://github.com/celerik/android-kotlin-boilerplate.git  \n```  \n  \n## Build variants  \nHerein you can find multiple targets that the app takes into account:  \n  \n|          |Staging    |Production  |\n|----------|-----------|------------|  \n|`Internal`|Debug      |Debug       |\n|`External`|Release     |Release    |\n  \n Where the following formed variants are built for staging purposes:  \n- stagingInternalDebug  \n- stagingInternalRelease  \n  \n And these ones for production purposes:  \n- productionInternalDebug  \n- productionInternalRelease  \n- productionExternalDebug  \n- productionExternalRelease  \n  \n**_Sidenote:_**  environments with _Internal_ keyword, for example, could set a specific timeout for debug servers, whereas environments with _External_ keyword could have another timeout according to production servers' features. In the other hand, environments with _Debug_ keyword, could keep a debug logger activated; whereas environments with _Release_ keyword don't.  \n  \n## Debug app signing\nIn order to sign your debug app build using _debug-keystore.jks_ keystore, these are the credentials you will have to take in mind:\n   \n`STORE_FILE = ./app/debug-keystore.jks`\n\n`STORE_PASSWORD = android`\n\n`KEY_ALIAS = android_celerik`\n\n`KEY_PASSWORD = android`\n  \n## Others  \n1. Project's CodeStyle can be found [here](docs/codestyle.md).  \n2. Project utilities file can be found [here](docs/utilities.md).\n3. CI/CD documentation can be found [here](docs/cicd.md).  \n\n## Screenshots  \n  \n![Screenshot_1626474458](https://user-images.githubusercontent.com/25390317/126014560-dbd18cf5-75f9-4e0a-a72e-9b63e6db0bf4.png)\n![Screenshot_1626474925](https://user-images.githubusercontent.com/25390317/126014713-1c25cf42-7307-4d05-b121-5be96abdf1a4.png)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcelerik%2Fandroid-kotlin-boilerplate","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcelerik%2Fandroid-kotlin-boilerplate","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcelerik%2Fandroid-kotlin-boilerplate/lists"}