project bootstrapping
3
总安装量
0
周安装量
#61068
全站排名
安装命令
npx skills add https://github.com/fwrite0920/android-skills --skill 'Project Bootstrapping'
Skill 文档
Project Bootstrapping (项ç®å¿«é建置)
Instructions
- ä» å¨æ°é¡¹ç®ææ°æ¨¡åèµ·æ¥æ¶ä½¿ç¨
- ä¾ç §ä¸æ¹ç« è顺åºå建骨æ¶
- 䏿¬¡åªå¤çä¸ä¸ªåç³»ç»ï¼æä»¶ãçæ¬ãç»æï¼
- 宿åå¯¹ç § Quick Checklist
When to Use
- Scenario Aï¼ä»é¶å建æ°é¡¹ç®
Example Prompts
- “请ä¾ç § One-Command Setupï¼åå»ºå ¬å¸æ¨¡æ¿ç项ç®éª¨æ¶”
- “ä¾ç § Gradle Convention Plugins ç« èï¼å建 feature module æä»¶”
- “è¯·æ ¹æ® Package Structure è§å模åä¸å¥ä»¶é ç½®”
Workflow
- å å建 Template ä¸ç®å½ç»æ
- åè½å® Convention Plugins ä¸ Version Catalog
- æåç¨ Quick Checklist éªæ¶
Practical Notes (2026)
- é»è®¤å建 CI Gateï¼lintãdetektãunit testãassemble
- æ°é¡¹ç®å å建 Baseline Profile éæµæ¡æ¶
- Version Catalog ä½ä¸ºåä¸ä¾èµæ¥æº
Minimal Template
ç®æ :
模åèå´:
Convention Plugins:
CI Gate:
éªæ¶: Quick Checklist
One-Command Setup
GitHub Template Repository
åå»ºå ¬å¸å é¨ç Template Repositoryï¼å å«ï¼
my-company-android-template/
âââ app/
âââ build-logic/
â âââ convention/ # Convention Plugins
âââ core/
â âââ common/
â âââ data/
â âââ domain/
â âââ network/
â âââ ui/
âââ feature/
â âââ sample/
âââ gradle/
â âââ libs.versions.toml # Version Catalog
âââ .editorconfig
âââ detekt.yml
âââ README.md
ä½¿ç¨æ¹å¼
# GitHub Template â Use this template
# æä½¿ç¨ gh cli
gh repo create my-new-app --template my-company/android-template
Gradle Convention Plugins
ç®å½ç»æ
build-logic/
âââ convention/
â âââ build.gradle.kts
â âââ src/main/kotlin/
â âââ AndroidApplicationConventionPlugin.kt
â âââ AndroidLibraryConventionPlugin.kt
â âââ AndroidComposeConventionPlugin.kt
â âââ AndroidFeatureConventionPlugin.kt
âââ settings.gradle.kts
settings.gradle.kts (root)
pluginManagement {
includeBuild("build-logic")
}
AndroidLibraryConventionPlugin.kt
class AndroidLibraryConventionPlugin : Plugin<Project> {
override fun apply(target: Project) {
with(target) {
with(pluginManager) {
apply("com.android.library")
apply("org.jetbrains.kotlin.android")
}
extensions.configure<LibraryExtension> {
compileSdk = 34
defaultConfig.minSdk = 24
compileOptions {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
}
}
}
}
}
ä½¿ç¨æ¹å¼ (feature module)
// feature/login/build.gradle.kts
plugins {
id("mycompany.android.feature") // ä¸è¡æå®ï¼
}
dependencies {
implementation(projects.core.domain)
}
Version Catalog (libs.versions.toml)
[versions]
kotlin = "1.9.22"
compose-bom = "2024.01.00"
hilt = "2.50"
room = "2.6.1"
retrofit = "2.9.0"
[libraries]
# Compose
compose-bom = { group = "androidx.compose", name = "compose-bom", version.ref = "compose-bom" }
compose-ui = { group = "androidx.compose.ui", name = "ui" }
compose-material3 = { group = "androidx.compose.material3", name = "material3" }
# DI
hilt-android = { group = "com.google.dagger", name = "hilt-android", version.ref = "hilt" }
hilt-compiler = { group = "com.google.dagger", name = "hilt-compiler", version.ref = "hilt" }
[bundles]
compose = ["compose-ui", "compose-material3"]
[plugins]
android-application = { id = "com.android.application", version = "8.2.2" }
kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }
hilt = { id = "com.google.dagger.hilt.android", version.ref = "hilt" }
Package Structure (Feature-based)
com.example.app/
âââ core/
â âââ common/ # å
±ç¨å·¥å
· (Extensions, Utils)
â âââ data/ # Repository å®ä½
â âââ domain/ # UseCase, Entity
â âââ network/ # Retrofit, API
â âââ ui/ # Design System, Theme
âââ feature/
â âââ auth/
â â âââ data/ # Feature-specific data
â â âââ domain/ # Feature-specific use cases
â â âââ ui/ # Screens, ViewModels
â âââ home/
âââ app/ # Application, DI, Navigation
Quick Checklist
æ°é¡¹ç®å建
- ä½¿ç¨ Template Repository
- Convention Plugins è®¾ç½®å®æ
- Version Catalog é ç½®
- Detekt/Ktlint éæ
- CI/CD åºç¡ Pipeline
æ°æ¨¡åå建
- ä½¿ç¨æ£ç¡®ç Convention Plugin
- éµå¾ª Package Structure
- å å ¥ Navigation Graph (å¦éè¦)