\[WIP\]克劳德代码的Android开发技巧
一种生产就绪技能,使Claude Code能够按照谷歌的官方架构指导和最佳实践构建Android应用程序 现在安卓 参考应用程序。
概述
这项技能为Claude提供了现代Android开发模式的全面知识,包括:
- 整洁架构 具有UI、域和数据层
- Jetpack Compose 模式和最佳实践
- 多模块项目结构 使用约定插件
- 离线优先架构 有房间和反应流
- 依赖注入 与Hilt
- 综合测试 策略
安装
- 将此存储库克隆到您的Claude Code技能目录中:
git clone https://github.com/dpconde/claude-android-skill.git- Claude Code将在您处理Android项目时自动检测并加载技能。
用法
当您请求与Android相关的任务时,该技能会自动激活。只需让克劳德:
- “为用户设置创建新的Android功能模块”
- “使用MVVM模式构建合成屏幕”
- “设置具有离线优先架构的存储库”
- “将导航添加到我的Android应用程序”
- “配置多模块Gradle设置”
Claude将遵循本技能中定义的模式和最佳实践。
项目结构
claude-android-skill/
├── SKILL.md # Main skill definition and quick reference
├── references/ # Detailed documentation
│ ├── architecture.md # UI, Domain, Data layers patterns
│ ├── compose-patterns.md # Jetpack Compose best practices
│ ├── gradle-setup.md # Build configuration & convention plugins
│ ├── modularization.md # Multi-module project structure
│ └── testing.md # Testing strategies and patterns
├── assets/
│ └── templates/ # Project templates
│ ├── libs.versions.toml.template
│ └── settings.gradle.kts.template
└── scripts/
└── generate_feature.py # Feature module generator script核心原则
这项技能教会了Claude遵循以下关键的Android开发原则:
- 先离线:本地数据库作为事实来源,与远程数据同步
- 单向数据流:事件向下流动,数据向上流动(UDF模式)
- 反应流:使用Kotlin Flow进行所有数据暴露
- 按功能模块化:每个功能都是独立的,具有明确的API边界
- 可通过设计进行测试:使用接口和测试double,避免模拟框架
参考文档
快速导航
| 主题 | 文件 | 描述 |
|---|---|---|
| 建筑 | architecture.md | MVVM模式、层、存储库、用例 |
| 编写UI | 复合模式.md | 屏幕、状态提升、副作用、主题化 |
| 构建设置 | gradle-setup.md | 约定插件、版本目录、配置 |
| 模块化 | 模块化.md | 模块类型、依赖关系、特征结构 |
| 测试 | testing.md | 单元测试、UI测试、测试替身、策略 |
架构概述
┌─────────────────────────────────────────┐
│ UI Layer │
│ (Compose Screens + ViewModels) │
├─────────────────────────────────────────┤
│ Domain Layer │
│ (Use Cases - optional, for reuse) │
├─────────────────────────────────────────┤
│ Data Layer │
│ (Repositories + DataSources) │
└─────────────────────────────────────────┘模块类型
app/ # Application module
feature/
├── featurename/
│ ├── api/ # Public navigation contracts
│ └── impl/ # Internal implementation
core/
├── data/ # Repositories
├── database/ # Room DAOs & entities
├── network/ # Retrofit & API models
├── model/ # Domain models
├── ui/ # Reusable components
├── designsystem/ # Theme & design tokens
└── testing/ # Test utilities特性
代码生成
该技能包括生成功能模块的Python脚本:
python scripts/generate_feature.py settings \
--package com.example.app \
--path /path/to/project这将创建一个完整的功能模块,其中包含:
- 带有导航定义的API模块
- 具有Screen、ViewModel、UiState的实现模块
- 具有适当依赖关系的Gradle构建文件
- Hilt依赖注入设置
模板
常见Android项目文件的预配置模板:
libs.versions.toml.template-Gradle版本目录settings.gradle.kts.template-项目设置
标准图案
ViewModel模式
@HiltViewModel
class MyFeatureViewModel @Inject constructor(
private val repository: MyRepository,
) : ViewModel() {
val uiState: StateFlow = repository
.getData()
.map { MyFeatureUiState.Success(it) }
.stateIn(
scope = viewModelScope,
started = SharingStarted.WhileSubscribed(5_000),
initialValue = MyFeatureUiState.Loading,
)
}屏幕图案
@Composable
internal fun MyFeatureRoute(
viewModel: MyFeatureViewModel = hiltViewModel(),
) {
val uiState by viewModel.uiState.collectAsStateWithLifecycle()
MyFeatureScreen(uiState = uiState)
}存储库模式
interface MyRepository {
fun getData(): Flow
>
}
internal class OfflineFirstMyRepository @Inject constructor(
private val dao: MyDao,
private val api: MyNetworkApi,
) : MyRepository {
override fun getData(): Flow
> =
dao.getAll().map { it.toModel() }
}技术栈
此技能配置项目:
- 语言:科特林
- 用户界面:Jetpack作曲
- 建筑:带UDF的MVVM
- DI:希尔特
- 数据库:房间
- 网络:改装+Kotlinx序列化
- 异步:Kotlin协程+流程
- 测试:JUnit、涡轮机、作曲测试
- 构建:带约定插件的Gradle
许可证
此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。
致谢
基于以下模式和实践:
