Главная / ИИ агент для программиста / ИИ агент для Android

ИИ агент для Android

Скинь код Kotlin или Compose-layout — получи исправление, объяснение или готовый компонент за минуты

2 ч/день экономит на рутине
Kotlin/Java Compose и XML
5 мин типовая задача

Знакомо?

🐘
Gradle — непредсказуемый зверь
Build failed. Версия плагина не совпадает с AGP. Обновил одну зависимость — 20 конфликтов. Sync проекта — 4 минуты каждый раз.
🔄
Lifecycle — вечная ловушка
Activity пересоздаётся при повороте экрана. Данные пропадают. ViewModel, SavedStateHandle, remember — что использовать и когда?
📱
Compose — документация не успевает
API меняется каждый релиз. Composable из туториала устарел. Modifier-цепочка не работает. Stack Overflow — ответы годичной давности.
🏪
Play Store — отказ за отказом
Rejected: нарушение политики. Какой именно? Не указано. Исправил — опять rejected. Третья попытка — аккаунт под угрозой.

Реальные кейсы

1
Jetpack Compose UI для финтех-приложения
Android-разработчик Алексей переводил банковское приложение с XML на Compose. Экраны с графиками, анимациями и сложной навигацией — агент ускорил процесс в 3 раза.
Настройка
👤
Пользователь
Переписываю банковское приложение с XML на Jetpack Compose. Экран транзакций: список с группировкой по датам, pull-to-refresh, бесконечный скролл, sticky headers. На XML было 3 файла по 200 строк, хочу на Compose компактнее.
🤖
Агент
📋 Архитектура экрана транзакций на Compose:

Компоненты:
1. TransactionScreen — state holder, вызывает ViewModel
2. TransactionList — LazyColumn с sticky headers
3. TransactionItem — одна строка (иконка, сумма, категория)
4. DateHeader — sticky header с датой и суммой за день

Ключевые решения:
LazyColumn + stickyHeader {} — нативная поддержка в Compose
• Pull-to-refresh: PullToRefreshBox (Material3 1.3+)
• Пагинация: LaunchedEffect при достижении последнего элемента
• Группировка: в ViewModel, не в UI слое

Начать с ViewModel + state или с UI?
Ежедневное использование
👤
Пользователь
С ViewModel. Данные приходят из Room — Transaction(id, amount, category, date, description). Нужна группировка по дням + пагинация по 20 записей.
🤖
Агент
✅ TransactionViewModel готов:

@HiltViewModel
class TransactionViewModel @Inject constructor(
private val repo: TransactionRepository
) : ViewModel() {

private val _uiState = MutableStateFlow(TransactionUiState())
val uiState = _uiState.asStateFlow()

init { loadNextPage() }

fun loadNextPage() {
viewModelScope.launch {
val txns = repo.getTransactions(
offset = _uiState.value.items.size, limit = 20
)
val grouped = txns.groupBy { it.date.toLocalDate() }
.toSortedMap(compareByDescending { it })
_uiState.update { state ->
state.copy(
items = state.items + grouped,
hasMore = txns.size == 20
)
}
}
}
}

data class TransactionUiState(
val items: Map<LocalDate, List<Transaction>> = emptyMap(),
val isLoading: Boolean = false,
val hasMore: Boolean = true
)


Room query с OFFSET/LIMIT, группировка в ViewModel, UI получает готовый Map. Скинуть LazyColumn с sticky headers?
2
Конфликт Gradle-зависимостей
Разработчик Настя обновила Firebase до версии 33 — проект перестал собираться. 14 ошибок совместимости. С агентом разобралась за 25 минут вместо привычных 4 часов.
Настройка
👤
Пользователь
Обновила com.google.firebase:firebase-bom с 32.7.0 до 33.1.0, проект не собирается. Ошибки: > Could not resolve com.google.android.gms:play-services-basement:18.3.0 > Conflict between firebase-auth:23.0.0 and play-services-auth:21.0.0 > Duplicate class com.google.android.gms.internal.firebase-auth.zzab Что делать? 14 ошибок, не понимаю с чего начать.
🤖
Агент
🔍 Классическая проблема BOM + Play Services.

Причина: Firebase BOM 33.x требует Play Services 21.x, но у тебя где-то прибит play-services-auth:21.0.0 вручную, и другой модуль тянет 20.x.

Диагностика (3 шага):
1. ./gradlew :app:dependencies --configuration releaseRuntimeClasspath | grep play-services
2. Найди кто тянет старую версию: grep -r "play-services" build.gradle*
3. Проверь: нет ли implementation "com.google.android.gms:play-services-auth:..." с фиксированной версией

Быстрое решение: убери все прямые зависимости на play-services — пусть BOM управляет версиями. Скинь свой build.gradle(:app) — найду конфликтующие строки.
Ежедневное использование
👤
Пользователь
Вот dependencies: implementation platform("com.google.firebase:firebase-bom:33.1.0") implementation "com.google.firebase:firebase-auth" implementation "com.google.firebase:firebase-firestore" implementation "com.google.android.gms:play-services-auth:20.7.0" implementation "com.google.android.gms:play-services-location:21.0.1" implementation "com.google.maps:google-maps-services:2.2.0"
🤖
Агент
✅ Нашёл 3 проблемы:

1. play-services-auth:20.7.0 — конфликт с BOM 33.x, который требует 21.2.0
Исправление: убери версию, пусть BOM управляет:
implementation "com.google.android.gms:play-services-auth"

2. play-services-location:21.0.1 — тоже прибита версия
Исправление: implementation "com.google.android.gms:play-services-location"

3. google-maps-services:2.2.0 — серверная библиотека, не Android. Она тянет свои gRPC-зависимости, конфликтующие с Firebase.
Если используешь Maps SDK:
implementation "com.google.android.gms:play-services-maps"
Если серверный геокодинг — вынеси в отдельный модуль с exclude group: "io.grpc"

После этих 3 правок — ./gradlew clean build. Должно собраться.
3
Room + Kotlin Flow для офлайн-режима
Джуниор-разработчик Тимур делал приложение доставки с офлайн-режимом. Синхронизация Room с API, кэширование, конфликты данных — агент провёл через все подводные камни.
Настройка
👤
Пользователь
Приложение доставки, курьер часто бывает без интернета. Нужен офлайн-режим: заказы загружаются из API, кэшируются в Room, при изменении статуса — синхронизация когда появится сеть. Не знаю как правильно организовать — первый раз делаю офлайн.
🤖
Агент
📋 Паттерн: Single Source of Truth + Offline-first

Принцип: UI всегда читает из Room (локальная БД). API — только для синхронизации. Room = единственный источник правды.

Архитектура:
1. OrderDao — Room DAO, возвращает Flow<List<Order>>
2. OrderRepository — координирует Room + API
3. SyncManager — WorkManager задача, синхронизирует при появлении сети
4. PendingAction — таблица очереди действий (статус изменён офлайн)

Поток данных:
• Онлайн: API → Room → UI (через Flow)
• Офлайн: Room → UI (кэш), действия → PendingAction таблица
• Сеть появилась: WorkManager → PendingAction → API → Room

Начнём с Room-сущностей?
Ежедневное использование
👤
Пользователь
Да. Заказ: id, address, status (new/picked/delivered), items list, updated_at. Нужно отслеживать какие заказы изменены офлайн.
🤖
Агент
✅ Три сущности + DAO готовы:

@Entity(tableName = "orders")
data class OrderEntity(
@PrimaryKey val id: String,
val address: String,
val status: OrderStatus,
val updatedAt: Long,
val isSynced: Boolean = true // false = изменён офлайн
)

@Entity(tableName = "pending_actions")
data class PendingAction(
@PrimaryKey(autoGenerate = true) val id: Long = 0,
val orderId: String,
val action: String, // "status_change"
val payload: String, // JSON: {"status":"delivered"}
val createdAt: Long = System.currentTimeMillis()
)

@Dao
interface OrderDao {
@Query("SELECT * FROM orders ORDER BY updatedAt DESC")
fun observeAll(): Flow<List<OrderEntity>>

@Query("SELECT * FROM orders WHERE isSynced = 0")
suspend fun getUnsynced(): List<OrderEntity>

@Transaction
suspend fun updateStatusOffline(id: String, status: OrderStatus) {
updateStatus(id, status, isSynced = false)
insertPendingAction(PendingAction(orderId = id, ...))
}
}


SyncWorker читает pending_actions, отправляет на сервер, помечает isSynced = true. Скинуть WorkManager-конфигурацию?

Вопросы про агента и Android

Агент работает с Kotlin и Java?
Да, оба языка. Kotlin — приоритет (Jetpack Compose, Coroutines, Flow), Java — для legacy-проектов. Агент подстраивается под язык, который ты используешь.
Поможет с публикацией в Play Store?
Да — чеклист требований, политика конфиденциальности, ProGuard-правила, оптимизация скриншотов и описания, разбор причин отказа. Не заменяет аккаунт разработчика, но помогает пройти ревью.
Знает Jetpack Compose последней версии?
Знает Compose, Material3, Navigation Compose, Hilt, Room, WorkManager, Paging 3 и другие Jetpack-библиотеки. Если API изменился — уточнит версию и подскажет актуальный подход.
Может ли помочь с архитектурой приложения?
Да — Clean Architecture, MVVM, MVI, Repository pattern, модуляризация. Поможет выбрать паттерн под проект и покажет как структурировать код с конкретными примерами.

Попробуй ИИ агента за 490 ₽

7 дней без ограничений. Настройка за 3 минуты — бот уже ждёт в Telegram.

Попробовать за 490 ₽ — 7 дней ← ИИ агент для программиста