Claude Info
Мобильная разработка

Android-разработка для Claude Code

dpconde/claude-android-skill

Скилл для Claude Code, обучающий современным практикам Android-разработки: Clean Architecture, Jetpack Compose, многомодульные проекты, offline-first подход, Hilt и стратегии тестирования по образцу NowInAndroid.

Установка

terminal
bash
git clone https://github.com/dpconde/claude-android-skill.git

README

[WIP] Скилл Android-разработки для Claude Code

Готовый к продакшену скилл, позволяющий Claude Code создавать Android-приложения в соответствии с официальными рекомендациями Google по архитектуре и лучшими практиками из референсного приложения NowInAndroid.

Обзор

Скилл предоставляет Claude исчерпывающие знания о современных паттернах Android-разработки, включая:

  • Clean Architecture со слоями UI, Domain и Data
  • Паттерны и лучшие практики Jetpack Compose
  • Многомодульную структуру проекта с convention plugins
  • Offline-first архитектуру с Room и реактивными потоками
  • Внедрение зависимостей с Hilt
  • Комплексные стратегии тестирования

Установка

  1. Клонируйте репозиторий в директорию скиллов Claude Code:

    git clone https://github.com/dpconde/claude-android-skill.git
  2. Claude Code автоматически обнаружит и загрузит скилл при работе с Android-проектами.

Использование

Скилл активируется автоматически при запросах, связанных с Android. Просто попросите Claude:

  • «Создай новый модуль фичи Android для настроек пользователя»
  • «Собери Compose-экран с паттерном MVVM»
  • «Настрой Repository с offline-first архитектурой»
  • «Добавь навигацию в моё Android-приложение»
  • «Настрой многомодульный Gradle»

Claude будет следовать паттернам и лучшим практикам, определённым в этом скилле.

Структура проекта

claude-android-skill/ ├── SKILL.md # Основное определение скилла и краткий справочник ├── references/ # Подробная документация │ ├── architecture.md # Паттерны слоёв UI, Domain, Data │ ├── compose-patterns.md # Лучшие практики Jetpack Compose │ ├── gradle-setup.md # Конфигурация сборки и convention plugins │ ├── modularization.md # Многомодульная структура проекта │ └── testing.md # Стратегии и паттерны тестирования ├── assets/ │ └── templates/ # Шаблоны проектов │ ├── libs.versions.toml.template │ └── settings.gradle.kts.template └── scripts/ └── generate_feature.py # Скрипт генерации модуля фичи

Основные принципы

Скилл обучает Claude следовать ключевым принципам Android-разработки:

  1. Offline-first: локальная база данных как источник истины, синхронизируемый с удалёнными данными
  2. Однонаправленный поток данных: события идут вниз, данные — вверх (паттерн UDF)
  3. Реактивные потоки: Kotlin Flow для всех операций с данными
  4. Модульность по фичам: каждая фича самодостаточна с чёткими границами API
  5. Тестируемость по дизайну: интерфейсы и тестовые дублёры вместо фреймворков мокирования

Справочная документация

Быстрая навигация

ТемаФайлОписание
Архитектураarchitecture.mdПаттерн MVVM, слои, репозитории, use cases
Compose UIcompose-patterns.mdЭкраны, state hoisting, side effects, темизация
Настройка сборкиgradle-setup.mdConvention plugins, каталоги версий, конфигурация
Модуляризацияmodularization.mdТипы модулей, зависимости, структура фичи
Тестированиеtesting.mdЮнит-тесты, UI-тесты, тестовые дублёры, стратегии

Обзор архитектуры

┌─────────────────────────────────────────┐ │ UI Layer │ │ (Compose Screens + ViewModels) │ ├─────────────────────────────────────────┤ │ Domain Layer │ │ (Use Cases - optional, for reuse) │ ├─────────────────────────────────────────┤ │ Data Layer │ │ (Repositories + DataSources) │ └─────────────────────────────────────────┘

Типы модулей

app/ # Модуль приложения feature/ ├── featurename/ │ ├── api/ # Публичные контракты навигации │ └── impl/ # Внутренняя реализация core/ ├── data/ # Репозитории ├── database/ # Room DAOs и сущности ├── network/ # Retrofit и модели API ├── model/ # Доменные модели ├── ui/ # Переиспользуемые компоненты ├── designsystem/ # Тема и дизайн-токены └── testing/ # Утилиты для тестирования

Возможности

Генерация кода

Скилл включает Python-скрипт для генерации модулей фич:

bash
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

kotlin
@HiltViewModel
class MyFeatureViewModel @Inject constructor(
    private val repository: MyRepository,
) : ViewModel() {
    val uiState: StateFlow<MyFeatureUiState> = repository
        .getData()
        .map { MyFeatureUiState.Success(it) }
        .stateIn(
            scope = viewModelScope,
            started = SharingStarted.WhileSubscribed(5_000),
            initialValue = MyFeatureUiState.Loading,
        )
}

Паттерн Screen

kotlin
@Composable
internal fun MyFeatureRoute(
    viewModel: MyFeatureViewModel = hiltViewModel(),
) {
    val uiState by viewModel.uiState.collectAsStateWithLifecycle()
    MyFeatureScreen(uiState = uiState)
}

Паттерн Repository

kotlin
interface MyRepository {
    fun getData(): Flow<List<MyModel>>
}

internal class OfflineFirstMyRepository @Inject constructor(
    private val dao: MyDao,
    private val api: MyNetworkApi,
) : MyRepository {
    override fun getData(): Flow<List<MyModel>> =
        dao.getAll().map { it.toModel() }
}

Похожие скиллы