8000 GitHub - VahidGarousi/Framework: A GitHub Repository Template for structured and reusable Gradle build logic in Android projects. It includes custom Gradle plugins for Jetpack Compose, library management, testing, publishing, linting, and static code analysis, helping teams streamline their project setup. πŸš€πŸ”§
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content
/ Framework Public template

A GitHub Repository Template for structured and reusable Gradle build logic in Android projects. It includes custom Gradle plugins for Jetpack Compose, library management, testing, publishing, linting, and static code analysis, helping teams streamline their project setup. πŸš€πŸ”§

Notifications You must be signed in to change notification settings

VahidGarousi/Framework

Repository files navigation

πŸš€ Android Framework Build Logic Template

A GitHub Repository Template for structured and reusable Gradle build logic in Android projects. This template includes custom Gradle plugins for Jetpack Compose, library management, testing, publishing, linting, and static code analysis, making project setup and maintenance more efficient.

Why This Template?

The purpose of this template is to provide an optimal developer environment without dictating how the app's code should be structured. Developers are free to choose their own architecture, package structure, and third-party dependencies. This template focuses only on best practices for tooling, testing, and project setup, allowing developers to focus on writing clean and efficient code.

Key Dependencies:

  • Ktlint: Automatic code formatting.
  • Detekt: Static analysis to detect code smells.
  • Git Hooks: Automatically runs static analysis checks before commit.
  • Gradle Versions Plugin: Keeps track of the latest dependency versions.
  • GitHub Actions: Automated CI for every pull request.
  • Paparazzi: UI testing library.

Danger Integration

This template integrates Danger to perform checks on your pull requests, ensuring consistency and high-quality code. You can review the checks in the Dangerfile. To use Danger correctly, ensure that you have granted the necessary permissions in the Repository Settings under Actions > General and enable read and write access to workflows.

πŸš€ Quick Start

πŸ”Ή Option 1: Use This Template

Click the "Use this template" button on GitHub to create a new repository with this setup.

πŸ”Ή Option 2: Clone the Repository and Setup

git clone https://github.com/VahidGarousi/Framework.git
cd Framework

πŸ“Œ Available Plugins

Implementation Class ID Description
AndroidApplicationComposeConventionPlugin framework.android.application Configures Android applications with Jetpack Compose support.
AndroidApplicationConventionPlugin framework.android.application.flavors Configures Android applications with flavor support.
AndroidApplicationFlavorsConventionPlugin framework.android.application.compose Configures flavors for Android applications with Compose support.
AndroidApplicationJacocoConventionPlugin framework.android.application.jacoco Configures Jacoco code coverage for Android applications.
AndroidDetektConventionPlugin framework.android.test Configures Detekt static code analysis tool for Android projects.
AndroidLibraryComposeConventionPlugin framework.jvm.library Configures Android libraries with Jetpack Compose support.
AndroidLibraryConventionPlugin framework.android.library Configures Android libraries.
AndroidLibraryJacocoConventionPlugin framework.android.library.compose Configures Jacoco code coverage for Android libraries.
AndroidLibraryPublisherConventionPlugin framework.android.library.jacoco Configures publishing for Android libraries.
AndroidTestConventionPlugin framework.jvm.publisher Configures testing for Android projects.
JvmLibraryConventionPlugin framework.android.publisher Configures JVM libraries.
JvmLibraryPublisherConventionPlugin framework.android.ktlint Configures publishing for JVM libraries.
KotestConventionPlugin framework.android.detekt Configures Kotest testing for JVM projects.
KotlinterConventionPlugin framework.android.detekt Configures Ktlint tool for code style checks in Android projects.

🀝🏻 Contribute

Any PRs are very welcome! 😍 You can fix a bug, add a feature, optimize performance, and propose a new cool approach in code-base architecture. Feel free to make a PR! 😌

About

A GitHub Repository Template for structured and reusable Gradle build logic in Android projects. It includes custom Gradle plugins for Jetpack Compose, library management, testing, publishing, linting, and static code analysis, helping teams streamline their project setup. πŸš€πŸ”§

Topics

Resources

Stars

Watchers

Forks

0