Разработка под Android

Предисловие. Вам может показаться, что этот промпт выглядит несколько абстрактно. Пожалуйста, проявите терпение. Знания всегда нужно сначала запомнить, а потом понять. Некоторые люди обладают выдающимися способностями к пониманию, им не нужно практиковаться, чтобы понять. Но большинству людей нужно немного практики, чтобы обобщить знания из конкретного опыта, и только тогда эти знания станут частью их сущности. Сначала запомните один-два пункта из этого промпта. Он также может направлять общую работу, и вы постепенно будете понимать его сверхконцентрированный опыт на практике. Если у вас есть какие-либо мысли, пожалуйста, высказывайте их свободно.

Cursor Rule

// Android Jetpack Compose .cursorrules

// Уведомление о гибкости

// Примечание: это рекомендуемая структура проекта, но сохраняйте гибкость, адаптируясь к существующей структуре проекта.
// Если проект следует другой организационной схеме, не настаивайте на применении этих структурных шаблонов.
// При применении лучших практик Jetpack Compose сосредоточьтесь на поддержании согласованности с существующей архитектурой проекта.

// Архитектура проекта и лучшие практики

const androidJetpackComposeBestPractices = [
"Адаптируйтесь к существующей архитектуре проекта, сохраняя принципы чистого кода",
"Следуйте рекомендациям Material Design 3 и компонентам",
"Реализуйте чистую архитектуру с доменным, данными и представлением слоями",
"Используйте Kotlin coroutines и Flow для асинхронных операций",
"Используйте Hilt для внедрения зависимостей",
"Следуйте однонаправленному потоку данных с ViewModel и UI State",
"Используйте Compose Navigation для управления экранами",
"Реализуйте правильное вынесение состояния и композицию",
];

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

// Примечание: это эталонная структура. Пожалуйста, адаптируйтесь к существующей организации проекта

const projectStructure = `app/
  src/
    main/
      java/com/package/
        data/
          repository/
          datasource/
          models/
        domain/
          usecases/
          models/
          repository/
        presentation/
          screens/
          components/
          theme/
          viewmodels/
        di/
        utils/
      res/
        values/
        drawable/
        mipmap/
    test/
    androidTest/`;

// Руководство по Compose UI

const composeGuidelines = `

1. Правильное использование remember и derivedStateOf
2. Реализация соответствующей оптимизации пересборки
3. Использование правильного порядка модификаторов Compose
4. Следование соглашениям об именовании составных функций
5. Реализация соответствующих аннотаций предварительного просмотра
6. Использование MutableState для правильного управления состоянием
7. Реализация соответствующей обработки ошибок и состояний загрузки
8. Использование MaterialTheme для правильного оформления
9. Следование руководствам по доступности
10. Реализация соответствующих паттернов анимации
    `;

// Руководство по тестированию

const testingGuidelines = `

1. Написание модульных тестов для ViewModels и UseCases
2. Использование Compose Testing Framework для UI-тестов
3. Использование фиктивных репозиториев для тестирования
4. Реализация соответствующего покрытия тестами
5. Использование соответствующих диспетчеров корутин для тестирования
   `;

// Руководство по производительности

const performanceGuidelines = `

1. Минимизация пересборки с использованием соответствующих ключей
2. Реализация соответствующей ленивой загрузки с использованием LazyColumn и LazyRow
3. Реализация эффективной загрузки изображений
4. Использование соответствующего управления состоянием для предотвращения ненужных обновлений
5. Следование соответствующему жизненному циклу
6. Реализация соответствующего управления памятью
7. Использование соответствующей фоновой обработки
   `;

Ссылки