Введение
Разработка нативного Android-приложения сегодня — это не только знание Kotlin и Jetpack Compose, но и умение эффективно использовать AI-инструменты. По данным опроса Stack Overflow Developer Survey 2025, более 70% разработчиков уже применяют AI-ассистенты в своей работе. Однако для мобильной разработки промты должны учитывать специфику: работу с Gradle, Compose, корутинами и жизненным циклом Android. В этой подборке я собрал 10 проверенных промтов, которые помогут вам быстрее писать код, избегать типичных ошибок и не утонуть в конфигурациях. Каждый промт сопровождается примером использования и ссылками на официальные источники.
Базовые промты
1. Генерация шаблона Activity с Compose
Задача: Быстро создать каркас Activity с использованием Jetpack Compose.
Промт:
Сгенерируй код MainActivity на Kotlin с использованием Jetpack Compose. Activity должна содержать Scaffold с TopAppBar и FloatingActionButton. Используй Material3. Добавь превью для @Composable.
Пример результата:
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
MyApp()
}
}
}
@Composable
fun MyApp() {
Scaffold(
topBar = { TopAppBar(title = { Text("Моё приложение") }) },
floatingActionButton = {
FloatingActionButton(onClick = { /* действие */ }) {
Icon(Icons.Filled.Add, contentDescription = "Добавить")
}
}
) { padding ->
// контент
}
}
@Preview
@Composable
fun MyAppPreview() {
MyApp()
}
2. Настройка Gradle-зависимостей
Задача: Добавить нужные библиотеки в build.gradle без ошибок.
Промт:
Добавь в build.gradle.kts (Module: app) зависимости для Retrofit, Moshi, Coil и Navigation Compose. Укажи актуальные версии на октябрь 2026. Объясни, зачем нужна каждая.
Пример результата:
dependencies {
implementation("androidx.navigation:navigation-compose:2.8.0")
implementation("com.squareup.retrofit2:retrofit:2.11.0")
implementation("com.squareup.retrofit2:converter-moshi:2.11.0")
implementation("com.squareup.moshi:moshi-kotlin:1.15.1")
implementation("io.coil-kt:coil-compose:2.7.0")
}
3. Работа с корутинами и Flow
Задача: Написать асинхронную загрузку данных с обработкой ошибок.
Промт:
Напиши функцию на Kotlin, которая загружает список пользователей через Retrofit и возвращает Flow<Result<List<User>>>. Обработай исключения IOException и HttpException. Используй viewModelScope.
Пример результата:
fun loadUsers(): Flow<Result<List<User>>> = flow {
try {
val users = api.getUsers()
emit(Result.success(users))
} catch (e: IOException) {
emit(Result.failure(e))
} catch (e: HttpException) {
emit(Result.failure(e))
}
}.flowOn(Dispatchers.IO)
Продвинутые промты
4. Оптимизация Compose-производительности
Задача: Устранить лишние рекомпозиции.
Промт:
Проанализируй этот @Composable и предложи оптимизации: используй remember, derivedStateOf, key. Объясни, почему происходят рекомпозиции.
Пример результата:
Анализ показывает, что список пересоздаётся при каждом изменении. Решение: обернуть в remember и использовать key в LazyColumn.
5. Настройка CI/CD для Android
Задача: Автоматизировать сборку и тестирование.
Промт:
Напиши GitHub Actions workflow для Android-проекта: сборка debug и release, запуск unit-тестов, кэширование Gradle. Используй actions/setup-java@v4.
Пример результата:
name: Android CI
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-java@v4
with:
java-version: '17'
- uses: gradle/gradle-build-action@v3
- run: ./gradlew testDebugUnitTest
6. Миграция на Compose с View
Задача: Постепенный переход на Compose.
Промт:
У меня есть Fragment с RecyclerView. Покажи, как заменить его на ComposeView, сохранив логику. Используй androidx.compose.ui.platform.ComposeView.
Пример результата:
override fun onCreateView(...): View {
return ComposeView(requireContext()).apply {
setContent {
MyComposeScreen()
}
}
}
Экспертные промты
7. Оптимизация размера APK
Задача: Уменьшить размер приложения.
Промт:
Проанализируй build.gradle и предложи способы уменьшения размера APK: R8, удаление неиспользуемых ресурсов, настройка splits. Приведи конкретные шаги.
Пример результата: Включить minifyEnabled true, shrinkResources true, использовать bundle вместо APK.
8. Тестирование Compose UI
Задача: Написать UI-тесты.
Промт:
Напиши Compose UI тест для проверки отображения списка и клика по элементу. Используй createComposeRule и onNodeWithText.
Пример результата:
@get:Rule
val composeTestRule = createComposeRule()
@Test
fun testItemClick() {
composeTestRule.setContent { MyList() }
composeTestRule.onNodeWithText("Item 1").performClick()
// проверка
}
9. Работа с Room и миграциями
Задача: Добавить новое поле в базу данных.
Промт:
Покажи, как добавить поле "age" в Entity User и написать миграцию Room с версии 1 на 2. Используй AutoMigration или ручную миграцию.
Пример результата:
@Database(entities = [User::class], version = 2)
@AutoMigration(from = 1, to = 2)
abstract class AppDatabase : RoomDatabase()
10. Отладка утечек памяти
Задача: Найти и исправить утечку.
Промт:
Объясни, как использовать LeakCanary для поиска утечек в Android. Приведи пример типичной утечки с Context и способ её решения.
Пример результата: Утечка через статическую ссылку на Activity. Решение: использовать applicationContext или WeakReference.
Сравнение промтов
| Промт | Сложность | Экономия времени |
|---|---|---|
| Шаблон Activity | Низкая | 10 мин |
| Gradle зависимости | Низкая | 5 мин |
| Корутины и Flow | Средняя | 20 мин |
| Оптимизация Compose | Высокая | 1 час |
| CI/CD | Средняя | 30 мин |
Заключение
Использование промтов для Kotlin и Android-разработки позволяет сосредоточиться на бизнес-логике, а не на рутине. Главное — давать чёткие инструкции и проверять сгенерированный код. Официальные источники: developer.android.com, kotlinlang.org. Попробуйте эти промты в своём следующем проекте и поделитесь результатами в комментариях!
Комментарии