Почему один Android-разработчик снова может конкурировать с командой
Android-разработка исторически была командным видом спорта: отдельно UI, отдельно данные, отдельно навигация и DI. С приходом Jetpack Compose декларативный UI на Kotlin сократил объём кода для экранов, а Kotlin Coroutines и Flow убрали большую часть ада колбэков. Но узкое место осталось — рутина: генерация однотипных экранов, настройка Room, парсинг JSON, написание тестов. Именно здесь LLM-ассистенты дают наибольший выигрыш.
По данным Google (Android Developers Blog, 2024–2025), Compose используется в большинстве новых проектов на Kotlin, а официальная документация developer.android.com рекомендует Coroutines как стандарт асинхронности. Проблема в том, что «просто попросить ИИ написать код» не работает: без структуры промта вы получаете устаревшие API, забытые зависимости и нерабочие импорты.
Ниже — подборка промтов, которую я собрал под реальный цикл разработки: от архитектуры до релиза. Каждый промт — готовый к копипасту, с пояснением задачи и примером. Важно: промт — это не замена инженерного мышления, а ускоритель. Код всегда проверяйте в IDE и на устройстве.
1. Каркас проекта и архитектура (MVVM + UDF)
Задача: получить структуру пакетов и слоёв без ручного проектирования.
Ты — senior Android-инженер. Спроектируй структуру модулей для приложения на Kotlin с Jetpack Compose.
Требования: MVVM, однонаправленный поток данных (UDF), слои data/domain/ui, DI через Hilt, навигация через Navigation Compose.
Выведи дерево пакетов и список Gradle-зависимостей с версиями (используй Version Catalog libs.versions.toml).
Для каждого слоя объясни зону ответственности одной строкой.
Пример результата: пакеты data/repository, data/local, domain/usecase, ui/screen/home. Такой промт экономит часы на «архитектурном» этапе и сразу задаёт единый стиль.
2. Экраны на Compose с состоянием
Задача: генерировать экраны, которые не «перерисовываются» зря.
Сгенерируй Composable-экран на Kotlin для списка задач.
Используй: LazyColumn, remember + mutableStateOf или collectAsStateWithLifecycle, стабильные data-классы.
Вынеси состояние в отдельный UI-класс State. Раздели на stateless-компонент и stateful-обёртку.
Покажи, где именно применяются remember и derivedStateOf, и объясни зачем.
Ключевой принцип Compose — разделение stateless и stateful. Промт заставляет модель соблюдать это, иначе вы получите монолитный Composable, который невозможно переиспользовать.
3. Coroutines и Flow без утечек
Задача: корректная асинхронность.
Напиши ViewModel на Kotlin с viewModelScope и StateFlow.
Загрузи данные из репозитория, обработай ошибки через sealed-класс Result (Success/Error/Loading).
Используй collectAsStateWithLifecycle во View, а не collectAsState.
Покажи, как отменить задачу и почему Dispatchers.IO нужен для сетевых вызовов.
Официальный гайд developer.android.com/develop/ui/compose/state-consumption прямо рекомендует collectAsStateWithLifecycle для учёта жизненного цикла. Промт фиксирует это требование.
4. Room: сущности, DAO и миграции
Задача: локальное хранилище без ошибок схемы.
Создай Room-базу для заметок: Entity, DAO, Database.
Используй Flow<List<Note>> в DAO, suspend-функции для вставки/удаления.
Добавь миграцию с версии 1 на 2 (добавление поля createdAt) с корректным Migration.
Покажи все аннотации и объясни, зачем нужен @TypeConverters для дат.
Частая ошибка новичков — забыть @TypeConverters для LocalDateTime. Промт явно просит это учесть.
5. Сетевой слой: Retrofit + Kotlinx Serialization
Задача: типизированный API-клиент.
Настрой Retrofit 2 с Kotlinx Serialization для Android на Kotlin.
Создай data-классы с @Serializable, интерфейс API с suspend-функциями, OkHttp-интерцептор для авторизации.
Обработай HTTP-ошибки через Result. Покажи Gradle-зависимости и плагин kotlin-serialization.
Этот промт закрывает целый слой за один запрос, но обязательно проверьте версии плагинов в build.gradle.kts.
6. Навигация в Navigation Compose
Задача: типобезопасные маршруты.
Настрой Navigation Compose с типобезопасными маршрутами через @Serializable data object/классы.
Покажи NavHost, переходы с аргументами и обработку back stack.
Сравни строковые маршруты и типобезопасные, объясни, что рекомендуют сейчас.
Типобезопасная навигация появилась в Navigation 2.8+ и описана в официальной документации. Промт заставляет модель использовать актуальный подход, а не устаревшие строки.
7. Дизайн-система и Material 3
Задача: единый стиль без дизайнера.
Создай тему Material 3 для Compose: ColorScheme, Typography, Shape.
Поддержи светлую и тёмную темы через isSystemInDarkTheme().
Покажи, как применить тему в Activity и как вынести кастомные цвета в отдельный объект.
Material 3 — актуальная дизайн-система Google. Промт избавляет от хардкода цветов по всему проекту.
8. Тесты: unit и Compose UI
Задача: покрыть критичное без ручного бойлерплейта.
Напиши unit-тест для ViewModel с корутинами на JUnit + kotlinx-coroutines-test.
Используй runTest и TestDispatcher.
Дополнительно напиши Compose UI-тест с createComposeRule для проверки отображения списка.
Тестирование корутин без runTest — источник «мигающих» тестов. Промт задаёт правильный инструмент.
9. Оптимизация производительности Compose
Задача: убрать лишние рекомпозиции.
Проверь этот Composable на лишние рекомпозиции и предложи оптимизации.
Используй: стабильные типы, remember, key в LazyColumn, derivedStateOf.
Объясни, как работает skipping в Compose и почему нестабильные параметры ломают его.
Прикрепите к промту свой код — получите конкретный разбор, а не общие советы.
10. Ревью кода и поиск утечек памяти
Задача: поймать ошибки до релиза.
Проведи code review Kotlin-файла.
Ищи: утечки контекста, неотменённые корутины, nullable-ошибки, блокирующие вызовы в main thread.
Для каждой проблемы дай строку, объяснение и исправленный вариант.
Такой промт полезен как второй проход перед PR, особенно в solo-проекте, где нет коллеги-ревьюера.
11. Gradle и сборка
Задача: не тонуть в конфигурации.
Помоги настроить build.gradle.kts (Kotlin DSL) с Version Catalog.
Добавь buildTypes debug/release, signingConfig, minifyEnabled и ProGuard-правила для Retrofit и Room.
Объясни каждую строку release-конфигурации.
ProGuard-правила для Retrofit/Room — классическая точка падения релизной сборки. Промт заставляет их не забыть.
12. Отладка: чтение stacktrace
Задача: быстрее находить причину.
Объясни этот stacktrace Android-приложения на Kotlin.
Определи корневую причину, а не симптом. Предложи минимальное исправление и как воспроизвести баг.
Вставьте лог — получите разбор. Это быстрее, чем гуглить каждое исключение по отдельности.
13. Локализация и доступность
Задача: приложение для всех.
Вынеси все строки в strings.xml, добавь поддержку ru/en.
Проверь Compose-экран на доступность: contentDescription, семантику, размеры тач-таргетов.
Покажи, как тестировать через Accessibility Scanner.
Доступность (accessibility) часто игнорируется в solo-проектах, но влияет и на ревью в Google Play, и на реальных пользователей.
14. Публикация и версионирование
Задача: довести до релиза.
Составь чек-лист релиза Android-приложения в Google Play.
Включи: versionCode/versionName, подпись, App Bundle, приватность, скриншоты, staged rollout.
Объясни разницу между AAB и APK.
Google Play с 2021 года требует App Bundle для новых приложений — промт помогает не пропустить обязательные шаги.
Что в итоге
Промты не пишут приложение за вас, но снимают с одного разработчика значительную часть механической работы: настройку слоёв, бойлерплейт, конфигурацию. Главное правило — давать модели контекст (версии, требования, ваш код) и всегда проверять результат в IDE и на устройстве. Начните с промтов №1 и №3: каркас и корректная асинхронность дают наибольший эффект на старте, а дальше подключайте остальные по мере движения по проекту.
Комментарии