Яндекс

Яндекс представил открытое решение на базе LLM для ускорения миграции iOS-кода на Swift

5 мая 2026

Разработчики Яндекса выложили в открытый доступ первое решение на базе большой языковой модели (LLM) для автоматизации миграции iOS-проектов с Objective-C на Swift, современный язык Apple. Оно особенно актуально для крупных проектов, накопивших сотни тысяч строк устаревшего кода. Решение ускоряет процесс миграции в 2,5 раза, позволяя разработчикам переключиться с рутинных задач на проверку качества.

Решение разработано при миграции кодовой базы Яндекс Браузера. Как и тысячи компаний, чьи приложения появились до 2018 года, команда при переписывании кода столкнулась с целым рядом проблем: огромные затраты времени и ресурсов, неизбежные при ручной работе ошибки, и всё это — при необходимости параллельно развивать проект. В результате за пять лет удалось сократить технический долг только наполовину.

Новый подход на базе LLM не только ускорил миграцию, но и позволил освободить разработчиков от монотонного переписывания кода — вместо этого они валидировали корректность миграции и выполняли сложный рефакторинг. За два месяца команда интегрировала 106 пул-реквестов, переписав около 97,5 тысячи строк устаревшего кода и более двух тысяч файлов. Обработка такого объёма данных вручную заняла бы больше года.

В отличие от существующих конвертеров, не учитывающих контекст, новое решение использует LLM-модель, способную понимать не только грамматику языка, но и архитектуру конкретного проекта. В основе подхода — система из четырёх специализированных промптов, каждый из которых отвечает за свой этап. Первый определяет оптимальный порядок миграции файлов, переписывает код и проверяет результат через компиляцию и тесты. Второй адаптирует полученный код под лучшие практики Swift. Третий проводит автоматическую проверку по чеклисту: заголовки файлов, корректность замены типов, соответствие стандартам. Четвёртый очищает код от устаревших аннотаций, когда необходимость в них отпадает.

Для проверки универсальности подхода команда применила его к стороннему проекту — приложению Wikipedia для iOS. Был успешно мигрирован один из пакетов, отвечающий за форматирование вики-разметки, и открыт пул-реквест в репозиторий проекта. Эксперимент продемонстрировал, что подход не привязан к специфике монорепозитория Яндекса. Чтобы внедрить подобное решение в своём проекте, достаточно заполнить конфигурационный шаблон, который также выложен в открытый доступ. В него нужно внести данные об архитектуре проекта, системе сборки, стандартах кода и структуре тестов, а также словарь типов и паттернов для замены. Далее важно определить правильный порядок миграции: начинать с компонентов, которые не зависят от старого кода — так называемых «листьев» графа зависимостей. Это позволит писать чистый Swift без промежуточных слоёв совместимости. Для сохранения качества кода в процессе миграции можно использовать дополнительный промпт для генерации интеграционных тестов.

Готовые промпты автоматически подгружаются в контекст диалога в большинстве современных агентских IDE, поэтому решение совместимо с популярными инструментами для работы с кодом.

Все промпты, скрипты и шаблоны уже доступны на GitHub и SourceCraft. Подробнее об ИИ-решении можно узнать в статье на «Хабре».

Контакты:

Пресс-служба компании «Яндекс»
Елена Тарасова
Тел.: +7 495 739-70-00
Электронная почта: pr@yandex-team.ru

МКПАО «ЯНДЕКС»

Основной офис
119021, Москва, ул. Льва Толстого, 16
Коммерческий отдел
Отдел по связям с инвесторами
Отдел по связям с общественностью
Корпоративный секретарь
Отдел устойчивого развития