На Android Show в мае 2026 года Google представила функцию под названием Create My Widget. Эта функция позволяет Gemini создавать подходящий виджет, когда пользователь описывает необходимую ему функциональность. Проще говоря, это вайб-кодинг на телефоне. Возможно, это знаменует начало эпохи, в которой программирование больше не будет исключительной сферой разработчиков и любой человек со смартфоном сможет создавать нужную ему функциональность, не имея даже мощного ноутбука.
К сожалению, по разным причинам, включая вопросы безопасности и устаревшие среды, у меня пока не было много возможностей активно использовать ИИ в своей рабочей среде. Значит ли это, что в эту эпоху я, посредственный разработчик, который даже при разработке для устаревших систем не обладает такими же навыками, как разработчики высшего уровня, неизбежно отстану?
Я не могу предсказать, что нас ждёт в будущем, но решил поэкспериментировать с направлением, предложенным Google, — то есть с ChatGPT от OpenAI (смеётся). Моей целью не было разработать что-то на уровне коммерческого продукта или с расчётом на получение прибыли, и не было это также обучением. Скорее, идея была такой: «Давайте разработаем что-нибудь, что сможет решить неудобства, с которыми я сталкиваюсь в повседневной жизни».
1. Систематизация неудобств и требований
Мне лично интересен разговорный аспект, поэтому я изучаю разговорный английский. Пройдя через множество проб и ошибок, я шаг за шагом разработал подходящий мне метод и распорядок обучения, но каждый раз при его использовании продолжал сталкиваться с неудобствами.
<Мой трёхэтапный метод изучения разговорного английского>
Шаг 1: Подготовить видео с речью на интересующую тему, несколько раз его просмотреть и понять контекст
Шаг 2: Проверять понимание по одному предложению за раз
Шаг 3: Шэдоуинг
Хотя этот метод обучения занимает много времени, лично мне он кажется довольно подходящим. Однако проблема, как и прежде, заключается в том, что он требует много времени. Вполне естественно, что необходимое для обучения время зависит от моей продуктивности, но подготовка к занятиям занимала слишком много времени. В ходе разговоров с ИИ я выделил три области из множества неудобств, которые больше всего нуждались в улучшении, и сформулировал их как требования.
<Неудобства и требования>
-
Поиск или подготовка скриптов занимает много времени. Я хочу сократить это время.
-
Много лишнего времени уходит на действия, не связанные с обучением, поэтому завершение одного видео занимает слишком много времени. (Например, приходится перематывать на пять секунд назад, чтобы просто прослушать что-то, сказанное двумя или тремя секундами ранее.)
-
Я хочу создать среду, в которой можно заниматься в любое время и в любом месте, независимо от устройства или среды.
2. Проверка решения на соответствие требованиям
После самостоятельной систематизации требований, описанных выше, я вместе с Codex разработал и технически проверил решение. Сначала я решил устранить главное неудобство: чрезмерное количество лишнего времени, необходимого для изучения одного видео. Мой план заключался в том, чтобы передавать URL изучаемого видео, извлекать его скрипт, автоматически разбивать извлечённый скрипт на отдельные предложения с учётом контекста, назначать временные метки начала и конца каждого предложения и создавать учебные материалы, позволяющие быстро прослушивать видео по одному предложению за раз.
Я завершил план решения, создав мобильное учебное приложение, чтобы получившиеся учебные материалы можно было использовать в любое время и в любом месте, независимо от устройства или среды.
<Решение>
-
На основе URL изучаемого видео извлекать скрипт видео, разбирать его по одному предложению с учётом контекста и создавать учебные материалы, сохраняя временные метки начала и конца каждого предложения вместе с самим предложением.
-
Импортировать извлечённые учебные материалы в мобильное приложение и последовательно проходить этапы обучения.
-
Разработка
Я пришёл к выводу, что интеграция в мобильное приложение функций извлечения видео, извлечения его скрипта на основе аудиоданных видео и сопоставления временных меток с каждым предложением была бы нецелесообразна с точки зрения производительности. Поэтому сначала я создал настольное приложение, работающее на Mac, и настроил его для генерации учебных материалов.
После нескольких доработок я упростил процесс так, чтобы итоговые учебные материалы — с выполненным разбором по предложениям и сопоставлением временных меток — автоматически загружались в мой личный OneDrive. Для этого я использовал Microsoft Azure Entra ID, Application registration и Graph API, настроив автоматическую загрузку в мой личный OneDrive после завершения подготовки учебных материалов.
Мобильное приложение должно было интегрироваться с OneDrive, а его основными функциями являлись загрузка материалов и проведение занятий. Я разработал разные пользовательские интерфейсы для каждого этапа в соответствии с собственным методом обучения. В частности, на шаге 2 приложение было настроено на воспроизведение одного предложения за раз, а также я добавил возможность редактировать предыдущее и следующее предложения, чтобы пользователи могли настраивать слишком короткие или слишком длинные предложения. Я также добавил функцию отслеживания, которая считает количество завершённых занятий на каждом этапе и позволяет мне контролировать прогресс обучения.
Конечной целью был выпуск приложения на маркетплейсе. Однако после фактической разработки я пришёл к выводу, что поручать одному мобильному приложению одновременно подготовку учебных материалов — извлечение, разбор и сопоставление предложений — и само обучение было нецелесообразно. Можно было настроить облачный сервер и перенести функциональность настольного приложения в облако, но я отказался от этого варианта, поскольку расходы на сервер казались слишком обременительными для личного использования. Если в будущем я доработаю функциональность и задумаюсь о коммерциализации, возможно, стоит принять этот вызов.
В конечном итоге я считаю довольно значимым личным достижением то, что смог с помощью токенов Codex на сумму $20 разработать и настольное, и мобильное приложение до уровня, подходящего для реального использования. Если бы я руководствовался только своим энтузиазмом, то мог бы смело вложить $100 или $200 и попробовать ещё более разнообразные эксперименты, но как посредственный разработчик я всегда должен учитывать (Physical) Resource, верно?
С другой стороны, я убедился, что даже посредственный разработчик может достаточно хорошо практиковаться в превращении идей в своей голове в реальные продукты, имея всего $20 в месяц.
NZ