Киловаттик 👉👈 🙄
или как я за-вайб-кодил приложение для ЖКХ за неделю (Часть 1)
К моему удивлению, первая статья об эксперименте с вайб-кодингом всколыхнула пространство и у кого-то нашла отклик. Вкратце напомню идею: создать MVP проект исключительно при помощи ИИ агента без открытия IDE.
MVP — minimum viable product (англ). В переводе: минимально жизнеспособный продукт
IDE — Integrated Development Environment (англ). Среда разработки, a.k.a. программа, где программисты "творят".
Сегодня мы пройдем первый этап разработки этого чуда инженерного гения от стадии мозгового штурма до работающего прототипа. На повестке дня вот такая гипотеза: молодое поколение выпорхнуло из гнездышка и окунулось в суровую действительность ЖКХ.
Напоминаю, что, вы можете влиять на ход разработки, а также предлагать свои идеи в комментариях — будем говнокодить вместе
Анализ конкурентов
В прошлый раз я просто проверял на что способен ИИ без прямого вмешательства разработчика. Сейчас же подойдем к делу более осознанно. Начнем с изучения рынка конкурентов: просто вобъю аббревиатуру "ЖКХ" в поисковик апп-стора. Дабы не показалось рекламой, названий не будет.
Конкурент № 1
Что предлагает (взято со странички в магазине приложений):
- квитанции по всем видам ЖКХ
- оплата картой
- передача показаний
- история начисления и оплат
- передача заявок в АДС (что бы это ни значило)
- система пропусков
- новости ЖКХ
- отправка сообщений в УК
- карта с УК и ТСЖ
На бумаге, функционал богатый, но складывается ощущение, что это одновременно про всё и ни о чём одновременно. Кроме того, нельзя получить представление о том, как работает каждый из пунктов (кроме разве что оплаты и карты ТСЖ — тут все очевидно).
Также есть вопросики к UI (пользовательский интерфейс). Складывается впечатление, словно его делали под мобильные телефоны, а потом решили растянуть х3 до размеров планшета. Выглядит он одновременно и монструозно, и карликово.
Disclaimer: Это не подробный гайд, поэтому совсем закапываться в разбор интерфейса я не буду — просто пройдемся по верхам и вайбам. Если кому-то интересно более глубокое погружение и разборы, пишите в комментариях.
Конкурент № 2
Мы подошли к первому представителю мобильных версий. Иии... у меня сразу появились вопросы к цветовой палитре. Понимаю что первый скриншот нам демонстрирует расход горячей воды, но у меня, если честно, немного другие ассоциации возникают от такого сочетания цветов и иконографии.
Но если говорить серьезно, то здешний функционал и дизайн удивляет своей проработанностью. Даже жаль, что у этого представителя так мало скачиваний.
Что предлагает:
- трекинг всех расходов ЖКХ
- напоминание о подаче
- статистика расходов (как ресурсов, так и в денежном выражении)
- новости ЖКХ для конкретной локации
- можно вести несколько локаций
Я бы сказал, что у данного представителя полностью сложившаяся идентичность, есть четкое понимание целевой аудитоии и того, что оно может предложить. Однако есть пара недочетов:
1. Нет демонстрации экрана, где показатели непосредственно вводятся (подозреваю, что ручками, иначе это был бы selling point)
2. Интерфейс перегружен, он пытается показать сразу всё. А когда дело доходит до экрана статистики, то он становится нечитаемым.
Конкурент № 3
Здесь диаметрально-противоположная ситуация: дизайн крайне минималистичный до той степени, что перестает нести информативную нагрузку. Непонятно, что может предложить данный кандидат
Коротко о № 4 и 5
Оставлю этот сегмент без комментариев, просто как референс.
Выводы из анализа конкурентов
1. У большинства предложений на рынке размытая идентичность. Тема ЖКХ слишком обширна, надо ограничиться одним понятным действием для пользователя и явным последствием этого действия.
2. UI либо слишком минималистичный, либо перегружен показателями / элементами взаимодействия. Нужно найти золотую середину, чтобы сохранить информативность, но не потерять в читаемости.
3. Нет киллер-фичи, чего-то выделяющегося на фоне конкурентов — это однотипные приложения ЖКХ.
System Design
Приступим ко всеми любимому "систем дезигне", который обожают спрашивать на интервью для Senior позиций. Что скрывается под этим термином? Это проработка архитектуры проекта. Если еще проще: определение сущностей, описание их взаимодействий и выбор наиболее подходящего инструмента для решения задачи.
Обычно это нужно, чтобы выбранная архитектура выдержала наплыв пользователей и ее можно было безболезненно масштабировать. Но у нас тут MVP за неделю, пользователей будет меньше 50 человек в день, поэтому нам хватит очень поверхностной проработки.
И я мог бы тут распинаться: "я такой сякой разработчик, щас запроектируем идеальную систему"... Но мы знаем, зачем мы тут все собрались. Поэтому просто берем и просим ИИ сделать всё за нас.
Четко формулируем запрос для ИИ, основанный на исследовании рынка, который был в прошлом разделе.
Нам нужно разработать MVP приложения в сфере ЖКХ, а именно, позволяющее удобно снимать показания с электросчетчиков, понимать как из этих показаний формируются счета на оплату ЖКХ.
После ответов на наводящие вопросы ИИ предложил такую схему (да, это не архитектура в классическом понимании):
Продумываем UI
С сутью разобрались. Что, как и с кем должно общаться, тоже разобрались. Теперь пора создать интерфейс нашего приложения. Попросим ИИ агента составить промпт для другого ИИ агента, который специализируется на создании UI.
Я даже не читал его — просто Ctrl-C -> Ctrl-V, чтобы оставалась интрига.
И вот такой дизайн мы получили.
Вспоминаю, как сегодня на работе прорабатывали UI для небольшого приложения из трех экранов. Мы два часа только делали наброски пользовательских историй и делали зарисовки (wireframes) экранных форм.
После этого специально обученный человек будет трансформировать наш поток мыслей в формализованный документ в Confluence. Затем дизайнер будет на основе этого делать макет в Figma около недели. И только потом уже я буду реализовывать воплощать в жизнь всю эту радость.
Правда там функционал более существенный, чем в "Киловаттике"
Имплементация. Итерация № 1
И вот, наконец, мы дошли до непосредственно создания нашего MVP. Да-да, если вдруг кто-то думал, что сделать сайт = написать код, то это большое заблуждение. Даже то, что я показываю — это максимально упрощенный процесс.
А дальше... впрочем, материал уже получился непростительно длительным. Если вам интересны детали имплементации, с какими техническими сложностями я столкнулся, я снял про это отдельный видео-ролик и поделюсь им, если будет интересно.
Поэтому "чудеса монтажа" и мы получили работающий прототип сайта.
По традиции, для всех интересующихся, потыкать можно тут:
Итоги
Что важно отметить: это только первая часть. Как вы могли заметить, ни OCR снятия показаний счетчика, ни интеграции с телеграмм-ботом, ни статистики — всего этого еще нет.
Так же у меня есть ряд претензий к UX | UI, который предложил ИИ:
- авторизация завязана на local storage. Одна чистка кеша и всё
- нет удобной навигации, всегда сначала кидает на лендинг
- система позволяет добавить несколько датчиков на одну локацию
Всё это и еще много другое будем добавлять и исправлять в следующей части.
Спасибо, что дочитали.
Буду рад обсуждению и конструктивной (или не очень) критике 👇
P.S. я очень люблю длинное тире
P.P.S. заметил, что мой домен отрывается с перебоями из РФ, поэтому вот резервная ссылка