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

Я создал приложение Brush Tracker за 3 дня, не имея никакого опыта работы со Swift, основным языком программирования для iOS. Хотя у меня есть полнофункциональное приложение в App Store, я всё ещё очень мало знаю о Swift, поскольку для его разработки я использовал «vibe-кодирование».
В этой статье я объясню процесс, инструменты ИИ, которые я использовал, а также поделюсь некоторыми своими знаниями и идеями.
Что-нибудь в качестве привлекательной альтернативы
Раньше я использовал Lovable для разработки веб-приложений, но, похоже, этот вариант не подходит для разработки мобильных приложений, по крайней мере сейчас.
Существуют альтернативы Lovable для разработки приложений. Недавно я наткнулся на инструмент под названием Anything, и, поскольку у меня был такой положительный опыт работы с Lovable, я решил попробовать его для разработки своего приложения. Поначалу всё работало хорошо, но в целом всё оказалось не так эффективно, как я надеялся.
Самым сложным было то, что я не мог сразу протестировать свои изменения, исправления и улучшения. В Anything есть встроенный интерфейс для тестирования, но он не очень удобен. Также предлагается протестировать код через приложение Expo, но и это мне не очень понравилось.
Стоит отметить, что у меня не было никакого опыта разработки приложений. Для разработчиков или тех, у кого есть опыт программирования, Anything, вероятно, может оказаться более продуктивным инструментом, чем для меня.
Я экспортировал код из Anything и попытался протестировать его в Xcode на Mac, но получил множество ошибок и не смог заставить его работать. Поэтому я решил использовать альтернативу. Курсор показался очевидным выбором.
Курсор
Я слышал очень хорошие отзывы о Cursor от многих друзей, которые активно им пользуются. Мне захотелось попробовать самому.
Я использовал тот же запрос в Cursor и попросил его собрать приложение. Затем я создал проект XCode с папками и файлами, сгенерированными Cursor. Я запустил симулятор в XCode, и он заработал с первой попытки.
Цель приложения Brush Tracker — помочь вам регулярно чистить зубы. Оно выдаёт оценку чистоты, которая начинается со 100%. Если вы пропускаете день, оценка снижается, а ваши зубы в приложении начинают выглядеть слегка желтоватыми, что соответствует оценке чистоты.

Примечание: все изображения, использованные в этой статье, включают скриншоты из моего приложения Brush Tracker.
В первой версии была реализована только основная функция приложения. Я считаю, что это самый эффективный способ создания продуктов с использованием инструментов на основе ИИ. Прежде чем добавлять новые функции, запустите первую версию.
Чтобы протестировать основную функцию приложения на симуляторе, мне пришлось изменить дату симулятора, не выполнив «сегодняшнюю чистку», чтобы проверить, снизится ли показатель чистоты и обновятся ли визуализации зубов, как ожидалось.
Курсор предложил изменить дату в симуляторе XCode, но в симуляторе больше нет настроек даты и времени. В более старых версиях симулятора XCode эта настройка была, но теперь её нет.
Обходным решением стало изменение даты на моём Mac. Таким образом, дата на симуляторе также изменилась, и я смог протестировать функцию.
Я заметил, что при изменении даты на Mac курсор не видит мою учётную запись и не работает. Всё вернулось в норму, когда я снова установил дату на автоматическую.
Функция таймера
Встроенный таймер чистки зубов стал отличным дополнением к Brush Tracker. Пользователи могут просто отметить сеанс чистки как завершенный или использовать таймер во время чистки.

Мне потребовалось несколько попыток, чтобы эта функция заработала так, как я задумал. Можно просто попросить Cursor добавить функцию, но гораздо лучше, если настроить подсказку и точно объяснить, что вам нужно. Если дать чёткие инструкции, Cursor обычно отлично справляется.
Функция вознаграждения
Я хотел добавить дополнительную мотивацию, когда пользователь завершает ежедневную чистку зубов. После завершения сеанса можно нажать «Получить ежедневную награду» и увидеть короткую мотивационную цитату. Это небольшой штрих, но приятное напоминание о здоровье зубов.

Вы действительно можете учиться во время кодирования вибраций
Курсор не только пишет код, но и помогает вам учиться. Когда я пытался добавить функцию вознаграждения, реализация поначалу была неправильной. Она работала некорректно.
Я описал проблему в Cursor, и он объяснил, что её вызвало, и как её исправить. Вот два примера того, как Cursor может помочь вам в обучении:
Проблема в том, что при первом касании rewardQuote пуст, потому что handleRewardTap() устанавливает его, но таблица отображается сразу. Мне нужно убедиться, что цитата установлена, прежде чем показывать таблицу.
Исправлена проблема! Проблема заключалась в том, что showReward = true устанавливался сразу после rewardQuote, но отображение таблицы SwiftUI может произойти до полной обработки обновления состояния.
Используйте курсор более эффективно
Курсор — отличный инструмент, но есть несколько способов сделать его более эффективным.
Предположим, что код даёт сбой или выполняется неправильно. Если вы знаете проблемную часть, выделите её и добавьте в чат. Это определённо упростит Cursor решение проблемы.
В Brush Tracker у меня возникла проблема при настройке уведомлений. Я описал проблему и попросил Cursor исправить её. Cursor сообщил, что проблема исправлена, но она всё ещё оставалась. Затем, изменив код, я нашёл, где она возникает, и добавил эту часть в чат.
Cursor исправил это при следующей попытке: проблема в том, что onTapGesture применяется к Picker, но в SwiftUI сегментированные Picker не всегда хорошо реагируют на касания, поскольку у них есть собственная внутренняя обработка жестов. Модификатор onChange срабатывает только при фактическом изменении выделения, а не при касании того же значения.
Стоит также упомянуть процентное содержание «используемого контекста» в Cursor. Он автоматически извлекает соответствующий контекст из вашей кодовой базы, поэтому вам не нужно указывать, какие файлы ему нужно просматривать. Однако история ваших чатов также учитывается в этом контексте, и иногда она содержит старые проблемы или неактуальный код.
Из-за этого лишний мусор может увеличить расход токенов или снизить эффективность курсора. Когда процент использования контекста увеличивается, я очищаю историю чата.
Распространение вашего приложения в App Store
После завершения тестирования вашего приложения с использованием симулятора или физического устройства (например, вашего iPhone) пришло время распространить ваше приложение в App Store, чтобы другие могли увидеть (и, возможно, использовать) его.
Это несложный процесс, но он включает множество деталей, которые могут занять много времени, особенно если вы делаете это впервые. Я нашёл видео на YouTube, где подробно, шаг за шагом, объясняется весь процесс.
Выполнив все шаги, я отправил своё приложение на проверку. После одобрения я получил электронное письмо от App Store Connect о готовности приложения к распространению.
Хочу отметить, что я не имею никакого отношения ни к одному из инструментов ИИ, упомянутых в этой статье.
Спасибо за прочтение! Brush Tracker можно попробовать в App Store. Буду рад, если вы его опробуете или оставите отзыв.
Источник: towardsdatascience.com



























