Реальный кейс: большой Android-проект с ИИ без команды
В прошлом посте я делился впечатлениями от работы с GPT на основе опыта разработки своего интервального таймера. Сейчас выпустил версию 0.6.1 в RuStore и решил чуть подробнее рассказать о самом проекте.
Это таймер для интервальных тренировок: составление и сохранение программ из этапов и повторов, история тренировок, голосовые подсказки, звуковой и визуальный метроном, подключение Bluetooth-пульсометра. Есть импорт, экспорт и резервное копирование.
Начал разработку в начале июня этого года. Развиваю проект один при активной помощи ИИ-агента. Это небольшое хобби и практика Android-разработки. Раньше тоже делал приложения, но значительно меньшего масштаба.
За эти три месяца самостоятельно прошёл весь путь: от проектирования модели тренировок, архитектуры и интерфейса до реализации, тестирования на устройствах и публикации в RuStore. Стек — Kotlin, Jetpack Compose, Coroutines, StateFlow и Room. Логика таймера вынесена в отдельный модуль без Android-зависимостей; реализованы работа в фоне, управление через уведомление и миграции базы.
В версии 0.6.1 — около 50 тысяч строк Kotlin-кода приложения и ещё почти 8 тысяч строк тестов, без учёта ресурсов, скриптов и серверной части. Модульных тестов уже больше 300.
Дополнительно реализовал серверную часть и админку для сбора и просмотра обезличенной аналитики использования приложения и обратной связи.
В процессе возникало много разных задач, в том числе не связанных напрямую с программированием и алгоритмами. Например, пришлось разобраться с особенностями Bluetooth-колонок: некоторые задерживают звук или обрезают начало коротких сигналов. В приложении добавил режим поддержки Bluetooth-колонок, который позволяет «прогреть» аудиоканал и запускать звук с небольшим опережением, чтобы он совпадал с визуальными подсказками на экране. Пользователь может включить этот режим, подобрать параметры под свою колонку и сохранить их в отдельном профиле.
Активно использую ИИ-агента для анализа, планирования, написания кода, поиска ошибок и запуска проверок. Сам определяю, как должно работать приложение, задаю требования, разбираюсь в предложенных решениях и проверяю результат на практике.
Без ИИ я бы вряд ли вообще взялся за такой проект. И даже если бы решился, сомневаюсь, что смог бы довести его до релиза за год, не говоря уже о трёх месяцах. А с агентом получилось — в промежутках между основной работой и домашними делами.