slack-gradle-plugin
idiomatic-gradle
Our great sponsors
slack-gradle-plugin | idiomatic-gradle | |
---|---|---|
3 | 5 | |
412 | 431 | |
2.4% | - | |
9.7 | 0.0 | |
1 day ago | about 1 year ago | |
Kotlin | Kotlin | |
Apache License 2.0 | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
slack-gradle-plugin
-
Android Developers Blog: Kotlin DSL is Now the Default for New Gradle Builds
You can go very far with this approach. Slack has a single standardised plugin that they apply to all their android projects which exposes some high level config DSLs for those projects to configure which build features they want/need https://github.com/slackhq/slack-gradle-plugin
-
Stampeding Elephants
slackhq/slack-gradle-plugin is also pretty nice as a reference for really streamlined projects
-
Released a new version of my hobby app called Gamedge completely rewritten in Jetpack Compose.
As for the Gradle setup, I've always wanted to remove as much boilerplate in the Gradle scripts as possible, and custom Gradle plugins is one of the solutions I found. There is still some work to be done in terms of cleaning it up, although I am quite pleased with how it turned out anyway. The slack gradle plugin is full of great info about how to create your custom Gradle plugins to centralize Gradle configuration into a easy-to-use API.
idiomatic-gradle
-
Android Developers Blog: Kotlin DSL is Now the Default for New Gradle Builds
You should look into how https://github.com/jjohannes/idiomatic-gradle and similar projects handle it (nowinandroid has a good set up as well).
-
just enough gradle
And finally, look at the idiomatic gradle repo. There is also a free video series that goes with this Understanding Gradle – Video Series. There are lots of bad practices in gradle that will slow your builds down, like using allProjects {}
-
For builds: Gradle vs Maven vs IntelliJ
For a long-lived (aka - something you'll maintain and may grow) multi-module project, I'd suggest following the idiomatic gradle structure. But there's a lot to unpack there, so it may not be the ideal thing to start with. Once you grok it though, that structure scales incredibly well, and allows you to avoid duplicating lots of configuration (via 'precompiled script plugins', largely in the build-logic project in that repo), and make use of build caching without having to modify things.
I'd suggest getting rid of buildSrc, and just using build composition. I mentioned in another response, but check out https://github.com/jjohannes/idiomatic-gradle for how to use precompiled script plugins that are connected to the project via includedBuilds. The only issues I've had with this are generally resolved by just running the sub-build independently to resolve any caching issues in the 'primary' build. A simple gradlew build --settings-file ./build-logic/settings.gradle.kts run will generally resolve that, and that issue seems largely because of the 'root' build being a peer or anscestor of the included build (due to legacy structure of the project, an issue the linked example repo does not have).
What are some alternatives?
gradle-maven-publish-plugin - A Gradle plugin that publishes your Android and Kotlin libraries, including sources and javadoc, to Maven Central or any other Nexus instance.
custom-floating-action-button - This view is for replacement of standard Floating Action Button from Google Support Library. It is easy to use, customizable and you can also add text to button
kotlin-plugin - Build kotlin code using sbt
GitToolBox - GitToolBox IntelliJ plugin
nowinandroid - A fully functional Android app built entirely with Kotlin and Jetpack Compose
intellij-etcdhelper - a simple intellij platform etcd plugin
intellij-rainbow-brackets - 🌈Rainbow Brackets for IntelliJ based IDEs/Android Studio/HUAWEI DevEco Studio/Fleet
gamedge - An Android application for browsing video games and checking the latest gaming news from around the world.
Gradle buildSrcVersions - Life is too short to google for dependencies and versions
MinecraftDev - Plugin for IntelliJ IDEA that gives special support for Minecraft modding projects.