Эволюция no code приложения. От Glide до нейросетей

В последние пару лет направление no code претерпевает значительные изменения. На рынке появляются новые мощные инструменты набирающие большую фанбазу и способные решать по-настоящему сложные задачи. Некоторые старожилы только закрепляются в своей нише и продолжают обрастать комьюнити, вакансиями и проектами. А кто-то не выдержав конкуренции от более производительных и функциональных платформ сходит с дистанции, так и не успев раскрыть свой потенциал. В эпоху великого перераспределения рынка мы должны сделать выбор какие инструменты останутся с нами надолго, а какие станут рудиментом ноукода.

К счастью мне довелось воочию оценить достоинства и недостатки самых главных мобильных конструкторов на сегодняшний день. Мой pet-проект MustLive пережил три итерации на Glide, Adalo и FlutterFlow, а так же впитал в себя мудрость трёх нейросетей призванных облегчить нам жизнь, но обо всём по порядку.

<i>Три итерации проекта с тёмной темой на <b>Glide</b>, <b>Adalo</b> и <b>FlutterFlow</b></i>
Три итерации проекта с тёмной темой на Glide, Adalo и FlutterFlow

Вначале была идея. Идея простая и толкающая на ностальгию. В начале 2010-х годов в студенческой среде было такое популярное явление как bucket list. Иными словами "список дел на жизнь". Эти списки могли варьироваться по возрасту и содержанию. Например многие составляли список дел, которые нужно обязательно выполнить до 30 лет (прыжок с парашютом, секс втроём или пожить хотя бы год в другой стране). Цель у всего этого проста - экспириенс. Достигнув определённой отметки в жизни и оглядываясь назад мы не должны сожалеть, о том что не сделали чего-то за свою жизнь, не испытали уникальный опыт и недопуличили определённые знания.

К этому можно добавить частое выпадание из контекста. Сколько раз мы слышали фразы в духе "Как, ты не смотрел этот фильм?", "Ты не смотрел это шоу? Его же все обсуждаю!", "Это лучший альбом в истории. Ты должен его послушать!". Когда мы пропускаем мимо себя главные произведения искусства мы лишаем себя не только множества часов удовольствия, но и возможности понимать отсылки, референсы и мемы которые нас окружают. Согласитесь, сегодня мы каждый день слышим что живём во вселенной Оруэла. Но осознать это в полной мере можем только прочитав "1984" и "Скотный двор". Фразы "Я твой отец" и "Вошли и вышли. Приключение на 20 минут" кажутся просто расхожими выражениями не имеющими первоисточника.

Так родилась идея приложения собравшего в себе сотни жизненных достижений, книг, фильмов, сериалов, компьютерных игр и музыкальных альбомов с которыми нужно ознакомиться в течении жизни. Безусловно поп-культура способна расширить этот список в разы за несколько десятилетий. Но и нам с вами будет что вспомнить в старости.

Итак, первый шаг был сделан на легендарном Glide. Инструмент собирающий за нас приложение на 90% нуждается только в нашем контенте и небольшом доведении до ума на фронте. Честно сказать уже на этой платформе можно было и остановиться так как она удовлетворяла почти всем запросам. Glide быстро переваривал большой объём сущностей. Ты только и делай что наполняй гугл табличку своими ctrl+c, ctrl+v. А когда объём данных становится слишком большим, то в бой вступают парсеры собирающие информацию с условного Кинопоиска. Безусловно большой объём данных нуждался в ручной монотонной коррекции, но к счастью его можно было задействовать ещё не раз. Приложение даже набрало 500 органических пользователей без моего участия. Просто завирусившись в телеграм каналах. Даже не смотря на то что на бесплатном тарифе срезались 2/3 всего контента. Пожалуй единственная весомая причина, по которой пришлось менять платформу это желание публиковаться в сторах и охватить большую аудиторию. Всё таки PWA требует больших усилий для продвижения и менее понятно мимо проходящему юзеру.

<i>Первая итерация приложения собранная на <b>Glide</b></i>
Первая итерация приложения собранная на Glide

Второй очевидный шаг после Glide переносить приложение на Adalo. Плюсы очевидны: более гибкий дизайн (на который я предусмотрительно забил), интеграции сторонних платформ через API и разумеется публикация в AppStore и Google Play.

Правда и минусов хватает. Низкая скорость работы относительно своего младшего брата препятствует размещению на Адало большого количества записей. А постоянно "пляшущая" вёрстка доводит до нервного тика.

<i>Вторая итерация приложения собранная на <b>Adalo</b></i>
Вторая итерация приложения собранная на Adalo

Разумеется скорость отклика бекенда в данном проекте была критичной, а значит не оставалось другого выбора, кроме как мигрировать на платформу для взрослых.

Выбор пал на FlutterFlow. Великий и ужасный ноукод инструмент от выходцев из Google долгое время развивавших кросcплатформенный язык программирования Dart и его библиотеку Flutter. FF поначалу пугает ноукод разработчика своей нетипичной логикой и необходимостью писать код для реализации простейших функций. Но стоит один раз распробовать эту платформу, назад уже не вернуться. Гибкость и функциональность конструктора кружит голову, регулярные обновления радуют ежемесячно, а скорость обработки запроса в Firebase заставляет кричать от счастья. Даже в рамках работы на одном только FlutterFlow моё приложение меняло свой внешний вид несколько раз. На нём я много экспериментировал и переносил отработанный функционал в свои рабочие проекты.

<i>Одна из версий <b>MustLive</b> на <b>FlutterFlow</b></i>
Одна из версий MustLive на FlutterFlow

Но при чём тут нейросети? Это же всё привычный нам ноукод. А вот и не. Дело в том что к конечной версии продукта приложили свои цифровые руки сразу три нейронки. Выше я писал о том, что определённые функции в FF прописываются кодом. Причём не только функции, но также экшены и виджеты вы можете написать вручную владея языком Dart. Конечно знание языка это лучший вариант реализации поставленной задачи. Но если вам нужна простая логическая функция, а времени изучать целый язык программирования нет, то можно воспользоваться встроенной в FlutterFlow нейросетью OpenAI Codex. Если уметь правильно формулировать запрос к нейросети, то она сгенерирует рабочий код, который в дальнейшем можно использовать на фронтенде. Таким образом я прописал пару функций в MustLive.

<i>Пример формирования запроса к нейросети <b>OpenAI Codex в FlutterFlow</b></i>
Пример формирования запроса к нейросети OpenAI Codex в FlutterFlow

Далее встаёт вопрос наполнения. Когда хочешь показать большое количество контента, нужно позаботиться о его содержании. Разумеется обложки музыкальных альбомов, игр или фильмов менять нет смысла. Они по сути являются рекламным материалом самих себя. Но вот изображения для категории "Достижения" я просто брал из интернета, что не есть хорошо.

Тут в игру вступает Midjourney. Нейросеть, которую активно обсуждают несколько месяцев и которая становится всё лучше и лучше. Она идеально подошла для создания картинок в основном меню, на экранах онбординга и в разделе с жизненными достижениями. Пара правок в фотошопе и вуаля! У нас уникальные красивые изображения

<i>Посадочные экраны <b>MustLive</b> с изображениями сгенерированными в <b>Midjourney</b></i>
Посадочные экраны MustLive с изображениями сгенерированными в Midjourney

Конечно приложение преобразилось и стало выглядеть куда оригинальнее, чем с картинками надёрганными из интернета.

Сравнение двух версий MustLive. Слева все изображения взятые из интернета. Справа все изображения сгенерированны в Midjourney. 
Сравнение двух версий MustLive. Слева все изображения взятые из интернета. Справа все изображения сгенерированны в Midjourney. 

Для особо ленивых нейронка предлагает преобразование загруженного изображение во что-то более свежее. Но я предпочитаю формулировать запрос самостоятельно и создавать всё с нуля.

Наконец последняя нейросеть задействованная в проекте это нашумевшая ChatGPT от всё той же OpenAI. Наверно можно сказать, что в создании MustLive поучаствовал сам Илон Маск.

ChatGPT генерирует отличные тексты на заданную тематику. Они идеально подошли для текстового наполнения разных разделов. Всё таки далеко не везде во время парсинга удалось выдернуть достаточное количество информации. А тут одно предложение команды в обмен на пару абзацев контента. Разумеется текст тоже иногда нуждается в правках, но всё равно экономит часы жизни.

Плод любви Midjourney (отвечает за изображение) и ChatGPT (отвечает за текст)
Плод любви Midjourney (отвечает за изображение) и ChatGPT (отвечает за текст)

Безусловно вся гениальность нейросетей не лишает разраба рутинной работы по формированию запросов и загрузки полученной информации в базу данных. При большом объёме информации эта работа всё ещё будет отнимать много часов. Но всё таки скорость этой работы несоизмеримо растёт, снижаются затраты на дизайнеров и лицензирование контента, а так же снижаются творческие страдания в попытках родить новый интересный абзац на заданную тему.

Лично для меня MustLive стал полем для экспериментов с кучей инструментов. Я буду продолжать наполнять его контентом и заменять текущие тексты и изображения на новые.

Следующий свой pet-проект я планирую создать по дизайн-макету от той же Midjourney. С этим она уже хорошо справляется судя по сотням референсев в соцсетях. За всё остальное наполнение так же будут отвечать нейросети. Осталось выбрать тему...

P.S. Если вас заинтересовало приложение MustLive, то вот ссылочки:

55
1 комментарий

Крутой проект! Заходи к нам в комьюнити https://joincofo.ru/join-us я думаю будет интересно, если поделиться этим опытом с другими предпринимателями

Ответить