사용 방법
- 설치 명령을 복사하고 자신의 에이전트 환경에 설치하기 전에 소스 패키지를 확인하세요.
- 필요한 도구, 인증 정보, 지원 환경은 원본 문서에서 확인하세요.
- 입력과 원하는 산출물을 설명하고 출처와 결과를 대조하세요.
npx skills add https://github.com/prasad-vennam/awesome-android-ai-agent-skills --skill android-lint-and-quality시작 전 확인
- 설치에는 모델 구독, API 한도, 파일 접근 권한이 포함되지 않습니다.
- 별점 수와 설치 수는 활동 지표이며 독립적인 품질·보안 검증이 아닙니다.
원본 저장소의 제목, 예시, 코드, 표, 링크, 이미지를 유지해 표시합니다.
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.



