Skip to content

🚀 The Celerik's Android Kotlin boilerplate for efficiency developing new Android mobile applications.

Notifications You must be signed in to change notification settings

celerik/android-kotlin-boilerplate

Repository files navigation

Celerik

Maintainability Rating Code Smells Lines of Code

Welcome to Android Kotlin Boilerplate!

Getting Started

Android Kotlin Boilerplate refers to standardized methods, procedures and files that may be used over again for efficiency developing new Android mobile applications.

What's included

  • An Android app with modular architecture and MVVM architectural pattern.
  • Splash screen with app version and empty MainActivity.
  • Network connectivity interceptor for HTTP requests.
  • Dagger2 for dependencies injection.
  • ViewBinding for activities and fragments.
  • Timber for logging purposes.
  • Android Studio EditorConfig file to maintain consistent coding styles.
  • Gradle’s Kotlin DSL.
  • SonarQube configuration files.
  • JaCoCo maven plugin to generate test coverage reports.
  • ktlint for static code analysis.
  • LeakCanary for memory leaks detection.
  • Fastlane for CI/CD tasks.
  • SonarCloud for static code analysis.
  • Github workflows for automated PR actions and Firebase app distribution.
  • Azure DevOps Pipelines workflows for automated PR actions.
  • dokka for Kotlin's documentation generation.

Installation

Clone this repository and import it into Android Studio

git clone https://github.com/celerik/android-kotlin-boilerplate.git  

Build variants

Herein you can find multiple targets that the app takes into account:

Staging Production
Internal Debug Debug
External Release Release

Where the following formed variants are built for staging purposes:

  • stagingInternalDebug
  • stagingInternalRelease

And these ones for production purposes:

  • productionInternalDebug
  • productionInternalRelease
  • productionExternalDebug
  • productionExternalRelease

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.

Debug app signing

In order to sign your debug app build using debug-keystore.jks keystore, these are the credentials you will have to take in mind:

STORE_FILE = ./app/debug-keystore.jks

STORE_PASSWORD = android

KEY_ALIAS = android_celerik

KEY_PASSWORD = android

Others

  1. Project's CodeStyle can be found here.
  2. Project utilities file can be found here.
  3. CI/CD documentation can be found here.

Screenshots

Screenshot_1626474458 Screenshot_1626474925

About

🚀 The Celerik's Android Kotlin boilerplate for efficiency developing new Android mobile applications.

Topics

Resources

Stars

Watchers

Forks