cortinico / kotlin-android-template Goto Github PK
View Code? Open in Web Editor NEWAndroid + Kotlin + Github Actions + ktlint + Detekt + Gradle Kotlin DSL + buildSrc = ❤️
License: MIT License
Android + Kotlin + Github Actions + ktlint + Detekt + Gradle Kotlin DSL + buildSrc = ❤️
License: MIT License
This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.
These updates have all been created already. Click a checkbox below to force a retry/rebase of any.
.github/workflows/cleanup.yaml
actions/checkout v4
actions/setup-java v4
gradle/gradle-build-action v2
ad-m/github-push-action v0.8.0
.github/workflows/gradle-wrapper-validation.yml
actions/checkout v4
gradle/wrapper-validation-action v2
.github/workflows/pre-merge.yaml
actions/checkout v4
actions/setup-java v4
gradle/gradle-build-action v2
.github/workflows/publish-release.yaml
actions/checkout v4
actions/setup-java v4
gradle/gradle-build-action v2
actions/upload-artifact v4
.github/workflows/publish-snapshot.yaml
actions/checkout v4
actions/setup-java v4
gradle/gradle-build-action v2
actions/upload-artifact v4
buildSrc/src/main/java/Coordinates.kt
buildSrc/src/main/java/Extensions.kt
gradle.properties
settings.gradle.kts
build.gradle.kts
app/build.gradle.kts
buildSrc/settings.gradle.kts
buildSrc/build.gradle.kts
buildSrc/src/main/kotlin/cleanup.gradle.kts
buildSrc/src/main/kotlin/publish.gradle.kts
gradle/libs.versions.toml
junit:junit 4.13.2
androidx.activity:activity-compose 1.9.0
androidx.appcompat:appcompat 1.6.1
androidx.constraintlayout:constraintlayout 2.1.4
androidx.core:core-ktx 1.13.1
androidx.test:rules 1.5.0
androidx.test:runner 1.5.0
androidx.test.ext:junit 1.1.5
androidx.test.ext:junit-ktx 1.1.5
androidx.compose:compose-bom 2024.05.00
io.gitlab.arturbosch.detekt:detekt-formatting 1.23.6
androidx.test.espresso:espresso-core 3.5.1
com.android.tools.build:gradle 8.4.0
org.jetbrains.kotlin:kotlin-gradle-plugin 1.9.20
io.gitlab.arturbosch.detekt 1.23.6
com.github.ben-manes.versions 0.51.0
library-android/build.gradle.kts
library-compose/build.gradle.kts
library-kotlin/build.gradle.kts
gradle/wrapper/gradle-wrapper.properties
gradle 8.7
I just bumped into the Jetbrains template for IntelliJ plugins (https://github.com/JetBrains/intellij-platform-plugin-template#getting-started). They have a Github Action that replaces the template values with values from the fork repo. I think it'd be a great addition to this template: it'll make sure users don't forget to remove the default value and save some manual configuration.
I'm not sure I'll have a lot of time to work on this but if someone feels like investigating Github Actions, I think that'd be a good fit.
Clicking the detekt link in the README opens https://github.com/arturbosch/detekt.
Clicking the detekt link in the README should open https://github.com/detekt/detekt because detekt has been moved from https://github.com/arturbosch/detekt
Nowdays it's recommended to use compose BOM versioning instead of hard references to using a specific version for all compose libraries. See https://developer.android.com/jetpack/compose/bom
A solution with version catalogs is explained at https://developer.android.com/jetpack/compose/bom#does_the_bom_work_with_version_catalogs. At work I am not using version catalogs yet so I can't get it working with a <2min PR 😢
It would be nice to change the name of the initial branch from master
to main
.
No clue why there are so many directories and what they do.
Add directory descriptions to readme or docs.
When getting started with the template and the first build new directories that are typically ignored for version control are not successfully ignored. (eg. various .xml files that relate to IDE config)
A more comprehensive .gitignore
could be used such as this one could be beneficial to this template as it is one less thing to worry about.
Should I add them inside buildSrc folder?
plugins {
`kotlin-dsl`
}
repositories {
google()
mavenCentral()
}
dependencies {
implementation(group = "com.android.tools.build", name = "gradle", version = "7.0.1")
implementation(kotlin(module = "gradle-plugin", version = "1.5.30"))
implementation(group = "com.google.dagger", name = "hilt-android-gradle-plugin", version = "2.38.1")
implementation(group = "androidx.navigation", name = "navigation-safe-args-gradle-plugin", version = "2.3.5")
}
Thanks
Add support for code coverage
Ideally we could setup jacoco + codecov to have an automated test report after every push/pr.
This feature is up for grab
In real project, we often have build flavor.
Add example of flavor staging
and production
in build.gradle.kts
The Template App gets crashed when we click on compute button w/o entering any number in the EditText.
The Template App gets crashed when we click on compute button w/o entering any number in the EditText.
The app should not get crashed.
The Dependencies.kt mentioned in the README does not exist.
Dependencies are centralized inside the Dependencies.kt file in the
buildSrc
folder. This provides convenient auto-completion when writing your gradle files.
ActivityTestRule
inside the espresso test case is deprecated .
I believe we could add JUnit KTX extension library , and then:
@get:Rule val activityScenarioRule = activityScenarioRule<MainActivity>()
One of the use cases of this repo is to build sample projects for submitting bug reports. This has been a painpoint since my development directory is full of different sample projects, and often I need to upgrade to the latest version of the tools I used.
Add a flavor for using Jetpack Compose. As Compose still evolves rapidly, and I have been struggling a lot to keep a repo up-to-date with all the build setup.
The flavor could be a subproject or a different branch: I am open to any suggestion.
I have just seen this repo and thought auto pr review bot could help developers productivity
as static analysis tools already integrated we could integrate danger to use static analysis tools output as a pr review.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.