Mode d’emploi
- Copiez la commande et examinez le paquet avant de l’installer dans votre environnement agent.
- Consultez le document original pour les outils, identifiants et environnements requis.
- Décrivez les entrées et le livrable souhaité ; comparez la sortie aux sources.
npx skills add https://github.com/prasad-vennam/awesome-android-ai-agent-skills --skill android-lint-and-qualityAvant de commencer
- L’installation n’inclut ni abonnement au modèle, ni quota API, ni accès aux fichiers.
- Étoiles et installations reflètent l’activité, pas un test indépendant de qualité ou de sécurité.
Rendu depuis le dépôt source en conservant titres, exemples, code, tableaux, liens et images.
Android Code Quality & Linting 🧹🛡️
Professional strategies for enforcing team standards and preventing technical debt through automated static analysis.
⚡ When to Use
- Code Review Readiness: Automatically checking Pull Requests for common errors.
- Enforcing Style: Ensuring all developers follow the same Kotlin formatting.
- Complex Bug Prevention: Using custom Lint rules to catch project-specific issues.
- CI/CD Automation: Failing builds on logic or style violations.
- Gradual Refactoring: Deprecating legacy methods and encouraging migration.
🏗️ The 3 Layers of Analysis
1. Android Lint (Built-in)
- Rules: Catch memory leaks, missing accessibility labels, and incorrect resource usages.
- Customization: Use
lint-rulesmodule to write your own rules specific to your app architecture.
2. Detekt (Core Logic Static Analysis)
- Benefit: Checks for code smells (Long methods, deep nested loops, cognitive complexity).
- Gradle Task:
./gradlew detekt
3. KtLint (Formatting)
- Benefit: Focuses purely on coding style (Indentation, line length, spacing).
- Rule: Follow the Official Android Kotlin Style Guide.
- Gradle Task:
./gradlew ktlintCheck/./gradlew ktlintFormat
🚀 Quality Enforcement Checklist
- [ ] Fail Fast: Set
abortOnError = truein Gradle to ensure bad code never stays in the repo. - [ ] Custom Rules: For example: "No
Log.dallowed in production" or "All ViewModels must inherit fromBaseViewModel". - [ ] Baseline Files: Use
baseline.xmlto ignore existing issues in older code and only enforce rules on new changes.
🛠️ Configuration Example
// build.gradle.kts
lint {
isWarningsAsErrors = true
isAbortOnError = true
xmlReport = true
htmlReport = true
}
detekt {
buildUponDefaultConfig = true
allRules = false
config = files("$projectDir/config/detekt.yml")
}📐 Team Policy Best Practices
- Pre-commit Hooks: Use
Git Hooksto run KtLint locally before pushing. - CI Report Annotation: Configure CI (e.g., GitHub Actions) to comment directly on PR lines with Lint/Detekt findings.
- Quality Gates: Maintain a score using tools like SonarQube or Codecov.
🧪 Testing Your Quality Setup
- Lint Tests: Use
LintDetectorTestto verify that your custom rules actually catch what they should. - Baseline Evolution: Regularly review and clean up baseline files to pay down technical debt.



