Разработка свитчера раскладок для macOS с использованием ИИ-агентов: опыт и технические нюансы
Habr AI · оригинал
Материал подготовлен автоматизированной редакционной системой. Факты можно сверить по указанному первоисточнику.

Разработчик представил открытый инструмент для автоматического исправления ошибок при переключении языков на Mac, созданный с помощью ИИ-ассистента. Проект демонстрирует сложность работы с системными API macOS и важность тщательного тестирования даже в условиях автоматизированной разработки.
Материал раскрывает практические аспекты интеграции ИИ-агентов в разработку системных приложений, поднимая вопросы контроля качества кода и специфических ограничений операционных систем.
Разработчик представил QwertySwitcher — бесплатное приложение с открытым исходным кодом для macOS, предназначенное для автоматического исправления ошибок при переключении раскладок. Проект был создан в ответ на стагнацию популярного Punto Switcher и необходимость решения проблемы «ghbdtn» без использования горячих клавиш или передачи данных в сеть. За три месяца разработки было создано более 18 000 строк кода на Swift, при этом основная часть логики генерировалась с помощью ИИ-агента Claude Code под руководством автора.
Архитектура приложения опирается на многоуровневую систему принятия решений. Сначала используется словарь из почти 700 тысяч слов с фильтрацией через алгоритм Блума, затем анализируются биграммы и контекст предыдущего слова. Важным техническим решением стала перепечатка символов по одному через CGEvent, так как пакетная отправка нажатий приводила к потере ввода в Electron-приложениях вроде Slack или VS Code. Автор подчеркивает, что приложение полностью автономно: все данные остаются на устройстве пользователя, а сетевые запросы ограничены лишь опциональной проверкой обновлений.
В процессе разработки выявлено несколько критических багов, которые не были обнаружены стандартным тестированием. Например, фильтр Блума изначально портил русские слова из-за ложных срабатываний, а использование звуковых эффектов на главном потоке блокировало обработчик клавиатуры на десять секунд. Также была устранена проблема с дублированием процессов, которые конфликтовали при попытке одновременного управления вводом. Все эти ошибки были найдены автором вручную через анализ подробных логов, что подтверждает ограниченность возможностей ИИ-агентов в поиске логических дефектов.
Опыт работы с ИИ-ассистентами показал необходимость строгого контроля версий. Использование git stash в условиях параллельной работы нескольких агентов привело к потере тысяч строк кода, поэтому теперь требуется обязательный коммит перед каждой делегацией задач. Кроме того, автор внедрил практику независимого ревью кода второй моделью (Codex), которая позволила обнаружить дефекты, пропущенные при построчном чтении. Тесты интегрированы непосредственно в бинарный файл приложения, что упрощает процесс проверки стабильности.
Финансовая модель проекта также претерпела изменения. Изначально планировалась подписка с сервером лицензий, однако из-за малого числа пользователей и противоречия с принципом «офлайн-работы» автор отказался от монетизации. Приложение распространяется бесплатно под лицензией MIT, а сборка доступна для macOS 13 и новее. Разработчик отмечает, что текущая версия имеет ограничения: словари очищены только для коротких слов, а выученные пользователем термины могут ошибочно перебивать стандартные слова.
Проект демонстрирует, что создание системных утилит с помощью ИИ требует глубокого понимания низкоуровневых механизмов macOS и тщательной отладки. Несмотря на автоматизацию написания кода, ключевую роль играет человеческий контроль за логикой работы и качеством взаимодействия с операционной системой. Источник: web:Habr AI — https://habr.com/ru/articles/1092384/