Шлях до функціонального застосунку через Vibe-Coding: уроки від Gemini

Епоха традиційної розробки програмного забезпечення переживає радикальні зміни, оскільки «вайб-кодинг» (vibe-coding) — створення застосунків за допомогою промптів природною мовою та ітеративного діалогу — стає реальністю для нетехнічних користувачів. Недавній експеримент із використанням Google Gemini для створення спеціалізованого застосунку для управління садівництвом демонструє як захоплюючу швидкість, так і дратівливі технічні перешкоди цієї нової парадигми.

Від промпту до прототипу за лічені хвилини

Проєкт розпочався з дуже детального промпту, введеного в Google AI Studio. Метою було створення Android-застосунку, здатного керувати складними завданнями з догляду за подвір'ям, надавати рекомендації на основі погоди та використовувати розпізнавання зображень для діагностики рослин.

Результати були миттєвими. За лічені хвилини Gemini створив функціональну попередню версію вебзастосунку з логічно організованими розділами для різних рослинних зон та спеціальним інтерфейсом «лікар для рослин». Навіть коли ШІ зіткнувся з критичною помилкою — повідомленням «Channel is unrecoverably broken and will be disposed!» — користувач зміг вирішити проблему одним кліком. Лише за 233 секунди Gemini діагностував і виправив «блокування» (blockages) та «стан гонитви» (race conditions), продемонструвавши безпрецедентну здатність до самокорекції складної логіки бекенду в режимі реального часу.

Перешкоди «вайб-кодингу»: прогалини в UI та логіці

Попри початкове захоплення, перехід від «вайбу» до готового до використання інструменту виявив притаманні поточним методам розробки на основі LLM обмеження. Розробник зіткнувся з кількома поширеними труднощами:

  • Естетика дизайну проти зручності використання: Gemini спочатку за замовчуванням використовував темний режим із нечитабельними темно-фіолетовими та цегляно-червоними акцентами. Знадобилися спеціальні інструкції природною мовою, щоб перейти до висококонтрастної, зручної для читання кольорової схеми.
  • Теоретичні дані проти реальних даних: ШІ намагався використовувати теоретичні кліматичні пресети замість інтеграції живих погодних даних через API, що підкреслює прогалину в тому, як LLM сприймають необхідність інтеграції зовнішніх даних.
  • Порушена логіка та управління станом: застосунок мав значні функціональні помилки, зокрема непрацюючий вибір дати (date picker), неможливість редагувати створені завдання та нездатність розрізняти одноразові та повторювані завдання.

Цей цикл «запит, очікування, налагодження та повторне розгортання» перетворив процес розробки на другу роботу, доводячи, що хоча поріг входу знизився, потреба в ретельній ітерації залишається.

Потужність мультимодального ШІ: «Лікар для рослин»

Хоча функції управління додатком потребували значних зусиль, мультимодальні можливості Gemini яскраво проявили себе у функції «лікар для рослин». Завдяки використанню розпізнавання зображень користувач зміг завантажити фото хворого рододендрона і отримати детальний звіт про стан його здоров'я. ШІ виявив критичні проблеми зі здоров'ям, запропонував чинники, що на них вплинули, і надав конкретні кроки, які можна було миттєво інтегрувати в планувальник додатка.

Цей успіх підкреслює, чому розробка має значення: для специфічних, високовартісних функцій, таких як діагностика за допомогою комп'ютерного зору, ШІ може негайно надати кінцевим користувачам інструменти професійного рівня, навіть якщо навколишня програмна інфраструктура все ще створюється методом «vibe-coding».

Основні висновки

  • Швидке прототипування: LLM, такі як Gemini, можуть перейти від складного запиту природною мовою до функціонального, логічно організованого попереднього перегляду додатка всього за кілька хвилин.
  • Цикл ітерацій: Vibe-coding — це не принцип «зробив і забув»; він потребує виснажливого циклу написання запитів для виправлення нечитабельності інтерфейсу, логічних помилок та прогалин в інтеграції.
  • Мультимодальна цінність: Найбільш очевидна цінність для людей, які не є розробниками, полягає у спеціалізованих функціях ШІ, таких як використання розпізнавання зображень для діагностичних завдань.