Архив ИТ и интернет-сервисы · Поиск и интернет-сервисы
Яндекс Браузер: LLM переписывает код на Swift, ускорение примерно в 2,5 раза
По данным Яндекса, система из четырёх LLM-промптов и скриптов для миграции Яндекс Браузера для iOS с Objective-C на Swift ускорила переписывание примерно в 2,5 раза с учётом человеко-часов. В master влито 106 pull requests, из проекта удалено 97 500 строк старого кода.
/01 · ключевые результаты
-
результат
было 5,5 около 2,5 раза
ускорение переписывания кода с учётом человеко-часов
Яндекс, блог компании, 05.05.2026
раза — наивный подсчёт без учёта человеко-часов
за время проекта, на май 2026 года · iOS-версия Яндекс Браузера
данные компании
-
результат
97 500 строк
удалено старого кода Objective-C
Яндекс, блог компании, 05.05.2026
за время проекта, на май 2026 года · iOS-версия Яндекс Браузера
данные компании
-
масштаб
106 PR
pull requests влито в master
Яндекс, блог компании, 05.05.2026
за время проекта, на май 2026 года · iOS-версия Яндекс Браузера
данные компании
- 2 167 файлов сокращение объёма Objective-C-проекта · результат Яндекс, блог компании, 05.05.2026
- более 700 файлов с пометкой об автоматическом переписывании · масштаб Яндекс, блог компании, 05.05.2026
- 541 856 строк объём кода Objective-C до миграции · исходный уровень Яндекс, блог компании, 05.05.2026
оценка strategai
Оценку не приводим: источник не называет денежный эффект, затраты человеко-часов и их стоимость.
По данным Яндекса, система из четырёх LLM-промптов и скриптов для миграции Яндекс Браузера для iOS с Objective-C на Swift ускорила переписывание примерно в 2,5 раза с учётом человеко-часов. В master влито 106 pull requests, из проекта удалено 97 500 строк старого кода.
/02 · паспорт кейса
Бизнес
- Компания
- Яндекс
- Отрасль
- ИТ и интернет-сервисы · Поиск и интернет-сервисы
- Функция
- ИТ, разработка ПО и кибербезопасность
- Задача
- Генерация кода и модернизация ПО
Технология
- Класс AI
- Генеративный ИИ: LLM, ассистенты, RAG
- Тип решения
- Собственная разработка
- Данные
- Конфигурационный файл rules.md с архитектурой, системой сборки, code style и словарём замены типов; граф зависимостей из файлов BUILD.gn; существующий код Objective-C и тесты.
Внедрение
- Стадия
- Промышленная эксплуатация, на 05.05.2026
- География
- Россия
/03 · описание кейса
Зачем
Бизнес-задача
Яндекс Браузер вышел в 2013 году и был написан на Objective-C. После объединения кодовых баз Браузера и приложения Яндекс в 2020 году компания запретила писать новый код на Objective-C, но ручная миграция шла медленно: за пять лет, к второй половине 2025 года, было переписано чуть более 50% кода, а в проекте было 10 038 файлов и 541 856 строк Objective-C. Старый язык плохо сочетается со Swift Concurrency и SwiftUI, замедляет разработку, а найти разработчиков с опытом Objective-C сложнее с каждым годом. К моменту проекта оставалось переписать около 3700 файлов.
Что
Решение
Команда iOS-разработки Яндекс Браузера построила процесс миграции на LLM. Для каждого модуля работает система из четырёх промптов: Swift-conversion переписывает код и проверяет его компиляцией и тестами, Refactoring приводит код к практикам Swift, Review проверяет результат по чек-листу, ObjC-removal удаляет лишние @objc-аннотации. Промпты генерируются из файла rules.md, в котором описаны проект, система сборки, code style и словарь замены типов. Дополнительные скрипты до компиляции правят импорты и имена классов, а анализатор строит граф зависимостей и выбирает модули с «листьев». Команда использует SourceCraft Code Assistant.
Как
Внедрение
Модули переписывают целиком, в среднем по 2000–3000 строк. Для модулей с недостаточным тестовым покрытием LLM сначала составляет тест-план, разработчик его проверяет, затем модель пишет Swift-тесты, и они вливаются отдельным PR до самой миграции. Внутренние MCP-серверы позволяют модели получать комментарии ревьюеров и исправлять минорные замечания; финальная валидация остаётся за разработчиком. Каждый переписанный файл получает пометку об автоматическом переписывании, таких файлов уже больше 700. Подход проверили на открытом приложении Wikipedia для iOS: мигрировали один пакет и открыли PR. Промпты, скрипты и шаблон конфигурации опубликованы на GitHub и SourceCraft.
/04 · источники и проверка
Что подтверждено
- По данным Яндекса, с учётом затраченных человеко-часов переписывание кода Яндекс Браузера для iOS ускорилось примерно в 2,5 раза; наивный подсчёт даёт ускорение в 5,5 раза.
- В master влито 106 pull requests, удалено 97 500 строк старого кода и 2167 файлов.
- Процесс требует участия разработчика: он проверяет план тестов и итог миграции, а рутинное переписывание делегировано LLM.
Ограничения
- Ускорение в 2,5 раза получено аппроксимацией динамики сокращения Objective-C-кода; метод оценки человеко-часов и их объём в статье не приведены.
- Цифры описывают объём и скорость миграции. Статья не показывает число дефектов после миграции, стоимость LLM и деньги, сэкономленные компанией.
- Миграция не завершена: на момент публикации в проекте оставались файлы Objective-C, а 700 переписанных файлов ещё ждут дополнительной валидации и рефакторинга.
-
[1] Яндекс
За два месяца вместо года: как мы переписали 97 тысяч строк кода с Objective-C на Swift
компания · 05.05.2026
Открыть источник
АрхИИВ /strategai · CB-001720 · Версия 1 · 23.10.2026 · /c/CB-001720/