00:00:00У большинства ИИ-моделей для программирования есть одна огромная проблема — они просто не справляются со Swift.
00:00:06Мы все видели эффектные демо, где агенты за считанные секунды создают веб-приложения и инструменты на JavaScript,
00:00:11но стоит попросить их поработать со Swift, как всё тут же разваливается.
00:00:16Почему же умнейшие модели в мире пасуют перед iOS-разработкой?
00:00:22Именно это мы и выясним в сегодняшнем видео.
00:00:25Сегодня я устрою топовым ИИ-агентам проверку одним и тем же заданием по Swift, чтобы узнать,
00:00:30какие модели реально тянут задачу, а какие хороши только в веб-разработке
00:00:35и не более того.
00:00:36Небольшой спойлер: одна из моделей справилась с тестом просто блестяще.
00:00:40Какая именно — узнаете чуть позже.
00:00:43Будет интересно, так что погнали.
00:00:50Для начала давайте разберем корень проблемы.
00:00:52Почему ИИ-модели так плохи в разработке на Swift?
00:00:56И чтобы вы понимали, это не только моё наблюдение.
00:00:59Исследование под названием «Оценка больших языковых моделей для генерации кода: сравнительный анализ»,
00:01:05проведенное на Python, Java и Swift, показало, что у всех моделей, включая GPT и Claude,
00:01:12результаты в Swift были стабильно ниже, чем в Python или Java.
00:01:17Причина сводится к трём основным факторам, которые буквально связывают ИИ руки, когда дело касается
00:01:22экосистемы Apple.
00:01:24Во-первых, дефицит данных.
00:01:25Если сеть завалена открытым кодом на JS и Python, то огромная часть профессионального
00:01:31кода на Swift спрятана в приватных или коммерческих репозиториях.
00:01:36Во-вторых, «дрейф» API.
00:01:38Apple известна тем, что быстро внедряет новое и ломает старое.
00:01:42SwiftUI и модели многопоточности Swift изменились за последние три года сильнее,
00:01:47чем некоторые веб-стандарты за десятилетие.
00:01:49А поскольку у большинства ИИ есть дата отсечки знаний, они часто пытаются писать
00:01:54на Swift по устаревшим правилам, которые просто не работают в свежем Xcode.
00:01:59И наконец, предвзятость бенчмарков.
00:02:02Многие модели, вроде Qwen или Grok, натаскиваются под конкретные тесты.
00:02:08Их оптимизируют для прохождения бенчмарков типа HumanEval, которые почти целиком
00:02:13сфокусированы на Python и логике веб-приложений.
00:02:16Так как крупных бенчмарков для сложного iOS UI мало, эти модели просто не
00:02:21проверяли на умение создавать полноценные приложения.
00:02:25Я выбрал несколько самых популярных ИИ-моделей для кодинга и дал каждой
00:02:30абсолютно одинаковый промпт.
00:02:32Им нужно было собрать простой клон Тиндера для собак под названием Dogtinder на Swift,
00:02:38используя API Dog CEO.
00:02:43В приложении можно свайпать фото вправо или влево, а при совпадении —
00:02:47открывать чат, чтобы переписываться с понравившейся собакой.
00:02:52Задание кажется милым и достаточно простым для агента, но в нём есть свои вызовы,
00:02:58например, реализация анимации свайпа на чистом Swift.
00:03:03В нашем обзоре мы пойдём от худшего результата
00:03:07к самому лучшему.
00:03:09На последнем месте, к сожалению, оказалась новая модель Qwen 2.5 Coder.
00:03:15Её рекламировали как open-source альтернативу таким тяжеловесам,
00:03:20как Kimi или Claude, при меньшем размере, но высокой производительности.
00:03:25Для веба это, может, и так, но в тесте на Swift модель, увы, не сдюжила.
00:03:32Где возможно, я использовал родные CLI-инструменты моделей,
00:03:37и в данном случае я задействовал Qwen CLI.
00:03:42Когда генерация завершилась, я просто не смог открыть файл проекта,
00:03:46который выдала Qwen.
00:03:48Я попросил её исправить ошибку, возникавшую при открытии.
00:03:53Но даже тогда Qwen не справилась и вместо этого выдала длинную инструкцию
00:03:58о том, как мне самому собрать проект с нуля и перенести туда файлы,
00:04:03что делать вручную я не хотел, так как это
00:04:08противоречит самой идее челленджа.
00:04:09Как вы увидите позже, некоторым моделям было очень сложно создать
00:04:14готовый набор файлов, который открылся бы с первой попытки.
00:04:19Так что в случаях, как с Qwen, я решил упростить задачу.
00:04:20Я вручную создал проект iOS-приложения в Xcode и решил,
00:04:26что это отличный момент протестировать новые функции ИИ-помощника,
00:04:31которые теперь встроены в свежую версию Xcode.
00:04:37И это круто, что у Xcode наконец-то появился свой ассистент.
00:04:38Я подключил свой аккаунт OpenRouter, выбрал Qwen 2.5 Coder
00:04:43из списка и запустил тест снова.
00:04:49Даже с такой поддержкой Qwen не смогла создать рабочий проект с первого раза,
00:04:52так как возникли проблемы с правильной настройкой Swift-моделей.
00:04:57С новым ИИ-ассистентом можно выделить все эти ошибки
00:05:02и попросить его сгенерировать исправления для всех сразу.
00:05:07В итоге, после нескольких кругов правок, мы получили рабочую версию
00:05:12приложения Dogtinder, но, честно говоря, результат был так себе.
00:05:16Модель даже не смогла загрузить изображения из API, а интерфейс
00:05:23выглядел примитивно и совсем неинтересно.
00:05:29Не говоря уже о баге в разделе совпадений, где они просто не отображались.
00:05:32Так что Qwen полностью провалила испытание в Xcode.
00:05:36Двигаемся дальше. На предпоследнем месте у нас Grok с моделью Grok Code Fast.
00:05:37Я пробовал использовать её через расширение VS Copilot в VS Code, и снова
00:05:42столкнулся с тем, что Grok не смог выдать все файлы,
00:05:48необходимые для полноценного Swift-проекта.
00:05:53Вместо этого он прислал инструкции по ручному копированию.
00:05:59Пришлось опять вернуться к ассистенту Xcode, вызвав
00:06:02модель Grok через OpenRouter.
00:06:06У Grok тоже возникло несколько проблем, и мне пришлось дважды просить
00:06:12его исправить ошибки.
00:06:14Но после этого он всё же смог собрать приложение.
00:06:19На первый взгляд, дизайн у Grok получился ужасным.
00:06:20Всё выглядело скучно, и даже не было раздела, где можно увидеть
00:06:23свои мэтчи.
00:06:27Я поставил Grok выше Qwen только потому, что с точки зрения функций
00:06:32всё работало, включая чат, но оба результата были одинаково слабыми.
00:06:33Приложение не выглядит ни захватывающим, ни визуально приятным.
00:06:38Не скажу, что Grok провалился, но это самая низкая проходная оценка
00:06:44из возможных.
00:06:48Следующий в нашем списке — Kimi с их новейшей моделью Kimi K2.5.
00:06:51У Kimi была та же беда, что и у Qwen: родной CLI выдал файл проекта,
00:06:57но открыть его было невозможно.
00:06:58Попытки исправить это через CLI ни к чему не привели.
00:07:04Так что для теста Kimi я снова использовал встроенный ассистент Xcode
00:07:08через OpenRouter.
00:07:11Kimi показала себя почти как Qwen и Grok, не справившись
00:07:15с задачей с первого раза.
00:07:20Пришлось просить её доработать код.
00:07:23Но всего после одного раунда правок Kimi выдала результат.
00:07:29И эта версия была на голову выше Qwen и Grok — приложение хотя бы
00:07:31стало похоже на настоящий клон Тиндера.
00:07:34Тут появилась приятная анимация свайпа, стикеры «like» и «nope»
00:07:39по бокам и симпатичное всплывающее окно при совпадении.
00:07:44Правда, анимация была очень глючной.
00:07:47Иногда картинка вообще исчезала, улетая куда-то за пределы экрана.
00:07:53Но хотя бы совпадения сохранялись корректно.
00:07:57Был раздел со списком мэтчей, где можно было выбрать собаку
00:08:00и начать с ней переписку.
00:08:05Это уже большой шаг вперед по сравнению с Qwen и Grok.
00:08:08Но если сравнивать с примерами, которые будут дальше, результат
00:08:12всё равно посредственный.
00:08:14Поэтому Kimi занимает не самое высокое место.
00:08:18Далее у нас Gemini 1.5 Pro.
00:08:22Тут ситуация интересная: я получил абсолютно разные результаты, тестируя одну
00:08:25модель через её родной CLI и через ассистент Xcode.
00:08:29Сначала посмотрим, что выдал Gemini CLI.
00:08:31В CLI указано, что модель всё еще в режиме превью.
00:08:36Возможно, в этом и была причина.
00:08:41В очередной раз при использовании того же промпта модель
00:08:45не смогла сразу выдать файл проекта.
00:08:49Дело в том, что для создания проекта Xcode нужно сначала создать YAML-файл
00:08:50с деталями, а затем использовать команду CodeGen.
00:08:55Почему-то некоторые модели отказываются это делать или не умеют.
00:08:59Тем не менее, когда я прямо попросил Gemini создать файл, она это сделала.
00:09:04Мне оставалось только дать разрешение на выполнение команды CodeGen.
00:09:09При открытии проекта возникла ошибка ассетов.
00:09:14Но Gemini быстро её исправила.
00:09:18После этого приложение наконец скомпилировалось.
00:09:22Но результат был на удивление плохим.
00:09:25Всё было сломано.
00:09:28Система совпадений не работала, кругом одни баги.
00:09:31В этот момент я уже готов был поставить Gemini «незачёт».
00:09:35Но из любопытства я решил дать ей еще один шанс и прогнать тест
00:09:37через встроенный ассистент Xcode, используя Gemini 1.5 Pro через OpenRouter.
00:09:41И в этот раз она справилась с первой попытки!
00:09:45И не просто справилась — приложение получилось потрясающим.
00:09:50Отличный дизайн.
00:09:56Весь функционал на месте.
00:10:01Она даже добавила симпатичное лого сверху.
00:10:04Честно, к этой версии приложения не придерешься.
00:10:06Я в недоумении: почему один и тот же промпт и та же модель в разных
00:10:08инструментах дали настолько полярные результаты.
00:10:10Но как бы то ни было, версия Gemini через инструменты Xcode
00:10:14меня впечатлила, причём с первого раза.
00:10:20Поэтому Gemini занимает высокую строчку — финальный
00:10:24продукт вышел действительно крутым.
00:10:29Так, далее в нашем списке — GPT-4o.
00:10:32Поскольку у OpenAI есть своё приложение для кодинга, я решил провести тест именно в нём.
00:10:37И в отличие от предыдущих моделей, GPT-4o смогла выдать
00:10:38полностью рабочий продукт с первой попытки.
00:10:43Это уже серьезный уровень.
00:10:48Правда, само приложение выглядело не очень захватывающе.
00:10:49Всё в монотонных синих тонах.
00:10:55Но больше всего меня расстроило то, что она не вписала ширину картинки
00:10:58в границы экрана.
00:11:00Для некоторых собак контейнер получался слишком растянутым
00:11:03и вылезал за края приложения.
00:11:06Это серьезный огрех в дизайне, который модель не смогла исправить.
00:11:11Хотя само приложение функционально и содержит все нужные элементы UI.
00:11:13Раздел совпадений тоже работал, и в чате можно было общаться.
00:11:18GPT-4o получила такое высокое место потому, что стала
00:11:20первой моделью, создавшей полный пакет Swift-проекта вообще без помощи
00:11:25и предварительной настройки проекта в Xcode.
00:11:29В общем, неплохо, но и не вау.
00:11:34И наконец...
00:11:40Мы добрались до первого места.
00:11:46Даю вам секунду угадать, что это за модель.
00:11:50Думаю, мы все понимаем, о ком речь.
00:11:53Это, конечно же, Claude 3.5 Sonnet, которая просто разорвала этот тест.
00:11:54Я использовал тот же промпт, но через их собственный Claude Code CLI.
00:11:57Мне нужно было только выдать необходимые разрешения.
00:12:01Модель сделала всё сама, включая создание полностью рабочего Xcode-проекта
00:12:04с нуля, без моего вмешательства.
00:12:11И более того — приложение получилось по-настоящему красивым.
00:12:17Дизайн на высоте.
00:12:20Анимации плавные и приятные.
00:12:27Раздел совпадений и окно чата работали безупречно.
00:12:29Единственное, чего не хватило — это логотипа посимпатичнее,
00:12:34какой был у Gemini в её версии.
00:12:35Но во всём остальном это был лучший результат.
00:12:37И всё это — с первой попытки.
00:12:41Производительность Claude просто невероятная на фоне остальных.
00:12:46Она заслуженно занимает первую строчку.
00:12:48Но подождите, это ещё не всё.
00:12:52У меня для вас небольшой бонус.
00:12:55Есть ещё одна модель, которую мы не упоминали в рейтинге.
00:13:01Пока я монтировал это видео, вышел анонс пятой версии GLM.
00:13:05Разработчики смело заявляли, что в кодинге она даже круче Claude 3.5 Sonnet.
00:13:07Естественно, я должен был проверить её на том же задании со Swift.
00:13:09У GLM нет своего CLI, поэтому я снова использовал ассистент Xcode,
00:13:13подключив GLM-4 через OpenRouter.
00:13:14Во-первых, GLM не справилась с первой попытки.
00:13:18Это уже звоночек по сравнению с Claude.
00:13:23Во-вторых, мне пришлось пройти через три круга правок, чтобы проект завёлся.
00:13:26И вот что у GLM получилось в итоге.
00:13:31Как по мне, это полный провал.
00:13:37Она не смогла загрузить ни одного фото собаки.
00:13:41Функции свайпа просто нет.
00:13:45И что ещё хуже: она показывает всего три собаки и выдаёт сообщение,
00:13:49что больше никого нет.
00:13:56А если зайти в раздел совпадений, то нельзя кликнуть на контакт,
00:13:59чтобы открыть чат.
00:14:03Этот раздел явно не доделан.
00:14:06И куда нам приткнуть GLM с таким результатом?
00:14:08Боюсь, только на предпоследнее место, чуть выше Qwen,
00:14:13потому что это никуда не годится и близко не стоит к лидерам.
00:14:15Заявления, что GLM 5 сильнее Claude 3.5 Sonnet — очень смелые.
00:14:20Я не тестировал её на других задачах, и вполне возможно,
00:14:23что в простом веб-деве она хороша или даже лучше Claude.
00:14:25Но для кодинга на Swift это определенно плохой выбор.
00:14:29Какие выводы мы можем сделать?
00:14:36ИИ-революция летит на всех парах, но проблема со Swift всё еще актуальна.
00:14:42Claude 3.5 Sonnet и GPT-4o доказали: если модель достаточно большая
00:14:47и логика сильна, они могут компенсировать нехватку открытых данных по Swift.
00:14:52Но такие модели, как Qwen и Grok, сильно страдают от дефицита данных
00:14:57и быстрой смены API, о которых мы говорили.
00:14:59Также меня удивило, насколько полезным оказался новый ассистент Xcode.
00:15:02Разница между двумя версиями от Gemini это наглядно подтверждает.
00:15:04Так что iOS-разработчикам лучше использовать внутренние инструменты ИИ.
00:15:10На этом всё, надеюсь, вам понравился наш разбор.
00:15:18Думаю, это повод обсудить необходимость создания
00:15:23узкоспециализированных моделей под конкретные языки.
00:15:29Очевидно, что многие модели заточены под веб, JS
00:15:31или проекты на Python.
00:15:36Но для специфических решений нам могут понадобиться кастомные модели.
00:15:40А что вы думаете по этому поводу?
00:15:46Пишите своё мнение в комментариях.
00:15:47Если видео зашло, поддержите его лайком.
00:15:51И не забудьте подписаться на наш канал.
00:15:55С вами был Андрис из Better Stack. До встречи в новых роликах!
00:15:57Because clearly a lot of these models are more heavily biased towards web apps, JavaScript
00:16:03or Python projects.
00:16:04But for some bespoke coding solutions, we might need some custom coding models.
00:16:09But what is your take on all of this?
00:16:11Let us know in the comment section down below.
00:16:13And folks, if you enjoyed this video, please let me know by smashing that like button underneath
00:16:18the video.
00:16:19And also don't forget to subscribe to our channel.
00:16:22This has been Andris from better stack and I will see you in the next videos.