Оптимизация AI-инструментов для iOS: Cursor, Claude Code, Qwen, AGENTS.md | AiManual
AiManual Logo Ai / Manual.
24 Апр 2026 Гайд

Как я оптимизировал AI-инструменты для iOS-разработки: Cursor, Claude Code, локальные Qwen и AGENTS.md

Личный опыт iOS-разработчика: как уменьшить AGENTS.md в 10 раз, настроить локальные Qwen на Mac M3, комбинировать Cursor и Claude Code для Xcode-проектов. Рабоч

Я перепробовал всё. Cursor, Claude Code, GitHub Copilot, локальные модели — каждый обещал рай. Но реальность оказалась проще: стопка токенов, лимиты запросов и AI, который не понимает архитектуру моего проекта. Через три месяца экспериментов я сложил пазл. Вот что реально работает для iOS-разработки на M3 Pro в 2026.

Спойлер: серебряной пули нет. Но есть схема, где каждый инструмент делает своё дело, а AGENTS.md перестаёт быть монстром на 500 строк.

Почему я выбросил половину инструментов

Сначала я установил Cursor, открыл свой SwiftUI-проект на 50 тысяч строк и попросил «помоги». Cursor открыл 40 файлов, задумался на минуту и предложил переименовать переменную. (Спасибо, кэп.) Потом я запустил Claude Code — он генерировал отличные сниппеты, но после пятого запроса вылезал лимит. Локальный Qwen на M3 работал быстро, но его ответы были плоскими, без учёта специфики iOS.

Проблема оказалась не в моделях, а в том, как я их кормил. AGENTS.md — тот самый файл, который должен описывать контекст проекта, — был свалочным полигоном. Я записал туда всё: архитектуру, требования, историю багов, имена разработчиков. AI тонул в этом шуме и выдавал среднюю температуру по больнице.

Как НЕ надо: AGENTS.md на 500 строк, где 80% — устаревшая документация. AI читает его каждое утро и забывает, что вы просили 10 минут назад.

Стек: три инструмента, одна цель

После нескольких недель A/B-тестов я остановился на такой конфигурации:

  • Cursor — для ежедневного редактирования кода. Беру на себя быстрые правки, рефакторинг одной функции, генерацию тестов.
  • Claude Code (через Apple MCP в Xcode 26.3) — для сложных архитектурных изменений. Поднимает руку, когда нужно переписать сетевой слой или добавить обработку ошибок.
  • Локальный Qwen2.5-Coder-7B (Q4 квантование) — для офлайн-задач, когда нет интернета или жалко тратить токены. Отлично справляется с простыми запросами и автодополнением.

Ключевой момент: ни один из них не получает полный AGENTS.md. Каждый видит только ту часть контекста, которая ему нужна. Как это сделать — ниже.

Оптимизация AGENTS.md — как я сократил его в 10 раз

Исходный AGENTS.md был монстром. Я выкинул всё, что не относится к текущему спринту. Теперь файл состоит из трёх блоков:

1 Контекст принятия решений

Только то, что изменилось за последнюю неделю. Новые архитектурные решения, выбранные библиотеки, известные баги в текущем спринте. Всё остальное — в отдельный `ARCHITECTURE.md`, который AI читает только по запросу.

2 Правила взаимодействия с кодом

Чёткие запреты и разрешения. Например: «Не изменяй файлы в папке `Pods/». «Используй Combine, а не RxSwift». «Тесты пиши в экстеншенах `// MARK: - Tests`». Без этих правил AI постоянно пытался править чужой код или использовал устаревшие фреймворки.

3 Специфичные для инструмента настройки

Cursor читает блок `cursor:`, Claude Code — `claude:`, локальный Qwen — `qwen:`. Это позволяет давать разные указания. Например, Cursor я прошу «не рефакторить, пока не спросит разрешения», а Claude Code — «предлагай два варианта реализации». Qwen получает только короткие шаблоны для генерации кода.

# AGENTS.md (сокращённая версия)
---
project: MyApp
context:
  - SwiftUI + Combine
  - Core Data для кэша
  - Минимальная iOS 17

cursor:
  - Не меняй архитектуру без подтверждения
  - Используй `// MARK:` для навигации

claude:
  - Предлагай два варианта: простой и производительный
  - Анализируй дерево зависимостей перед рефакторингом

qwen:
  - Генерируй только шаблонный код
  - Не используй асинхронные замыкания, если не нужно

Результат: средняя длина AGENTS.md — 50 строк. Скорость первого ответа выросла в 2 раза, потому что AI перестал пережёвывать тонну лишнего текста.

Cursor + Xcode MCP: тандем, который я не ожидал

Cursor из коробки не умеет запускать симулятор или парсить логи Xcode. Решение — mobile-mcp: MCP-сервер, который даёт Cursor доступ к Xcode через Model Context Protocol. Пока это экспериментальный проект на GitHub, но он работает.

Я настроил Cursor так:

  1. Установил mobile-mcp через Homebrew. Подключил к Cursor в настройках MCP.
  2. Дал Cursor доступ к чтению последних логов сборки и ошибок Xcode.
  3. Написал правило в AGENTS.md: «Если видишь ошибку компиляции, сначала прочитай лог через mobile-mcp, потом предложи исправление».

Раньше я вручную копировал ошибки из Xcode в Cursor. Теперь это автоматизировано. Cursor сам анализирует лог, находит строку с ошибкой и предлагает патч. (И да, иногда предлагает чушь — но это уже вопрос качества модели.)

Интересный факт: интеграция Apple Claude и Codex в Xcode 26.3 использует тот же MCP. Значит, mobile-mcp совместим с любым AI-агентом, который поддерживает MCP. Cursor их поддерживает, Claude Code в Xcode — тоже.

Локальный Qwen: когда облако недоступно

На M3 Pro с 36 ГБ я запускаю Qwen2.5-Coder-7B в Q4 квантовании через Ollama. Модель жрёт ~6 ГБ ОЗУ и выдаёт 60-70 токенов в секунду. Не хватает контекстного окна в 32K? Для быстрых подсказок — хватает.

Как я использую Qwen:

  • Генерация шаблонного кода (модели Core Data, ViewModel для SwiftUI). Это быстро и не требует глубокого анализа.
  • Автодополнение в Neovim (да, я иногда выхожу из Cursor, когда нужно быстро поправить файл).
  • Черновики комментариев и документации — Qwen пишет сносные DocC-комментарии.

Сравнение с Claude Code: если задача требует понимания 10 файлов, Qwen тупит. Claude Code справляется легко. Но зато Qwen не имеет лимитов и не отправляет код на чужие сервера.

Claude Code и агентный режим в Xcode 26.3

Как Apple интегрировала Claude и Codex в Xcode 26.3, я уже описывал. Агенты видят весь проект через MCP. Я подключаю свой AGENTS.md прямо в Xcode — он лежит в корне проекта, и Claude его читает. Отдельно настраивать ничего не пришлось.

Но есть нюанс. Агентный режим в Xcode медленнее, чем Cursor. Потому что Claude сначала сканирует проект, а потом думает. Для быстрых правок я переключаюсь на Cursor. Claude Code запускаю только для задач, где нужен глубокий анализ: рефакторинг сетевого слоя, оптимизация Core Data, написание UI-тестов.

Три ошибки, которые стоили мне недели времени

  1. Дублировать контекст. Я написал одно и то же в AGENTS.md, в комментариях кода и в README. AI читал всё и путался. Решение: AGENTS.md — единственный источник истины для AI. Остальное — для людей.
  2. Давать доступ ко всему. Я разрешил Claude Code читать все файлы проекта. Он начал предлагать править Pods и Carthage (facepalm). Решение: запретить мусорные папки в AGENTS.md и в настройках инструмента.
  3. Доверять одному инструменту. Cursor идеален для мелких правок, но когда нужно перепроектировать архитектуру, он даёт узкие решения. Claude Code видит шире, но медленнее. Qwen — для черновиков. Три разных мозга работают лучше одного.

Итоговый рабочий процесс

Задача Инструмент Почему
Быстрая правка (переименовать, исправить баг) Cursor Низкая задержка, хорош для одной функции
Рефакторинг модуля Claude Code (через Xcode MCP) Видит весь проект, даёт архитектурные предложения
Написание тестов (шаблон) Qwen (локальный) Бесплатно, быстро, не уходит в облако
Создание новой фичи Claude Code + Cursor Сначала Claude предлагает архитектуру, потом Cursor реализует

Этот стек работает для меня уже месяц. Главное — не пытаться оптимизировать всё сразу. Начните с одного инструмента, добавьте AGENTS.md с правилами, потом подключите остальные по мере необходимости.

💡
Если ваш Mac позволяет — попробуйте локальные модели. Даже 7B-модель снимает нагрузку с облачных API и ускоряет работу. Я описал подробности настройки в статье «Claude Code на Mac M3: как заменить облако локальными моделями».

Ещё один совет: не храните AGENTS.md в гите? Храните. Но сделайте его частью ревью. Пусть команда обсуждает правила, записанные там. Так AI будет работать в одном направлении с людьми.

Я не стал выбрасывать половину инструментов. Я просто перестал просить их делать одно и то же. Разделение труда — единственное, что реально повышает продуктивность. А если у вас до сих пор один AI на всё — вы либо платите в три раза больше, либо ждёте в три раза дольше.

Подписаться на канал