> · 8 мин

Как создать iOS-игру с помощью Claude Code — от терминала до App Store, два пути и все грабли

Как создать iOS-игру с помощью Claude Code — от терминала до App Store, два пути и все грабли

Как создать iOS-игру с помощью Claude Code — от терминала до App Store, два пути и все грабли

Короткий ответ: да, можно. Люди делают iOS-игры через Claude Code прямо сейчас — от ретро-шутеров до головоломок. Но дьявол, как обычно, в деталях: есть два принципиально разных подхода, и выбор между ними определит, сколько вы потратите времени на борьбу с инструментами вместо создания самой игры.

TL;DR: Два пути: нативный (Swift + SpriteKit + XcodeBuildMCP) и кроссплатформенный (Expo + React Native). Первый даёт максимальную производительность и доступ ко всем фреймворкам Apple, но требует Xcode и macOS. Второй — быстрый старт без Xcode, запуск на телефоне через QR-код, но с ограничениями для тяжёлой графики.

Путь первый: нативный — Swift, SpriteKit и XcodeBuildMCP

Этот путь для тех, кому нужна реальная производительность: 2D-шутеры на SpriteKit, 3D-сцены на SceneKit, кастомные шейдеры на Metal. Claude Code умеет работать со Swift и SwiftUI — по данным разработчиков, модель генерирует корректный SwiftUI-код и находит правильные решения для большинства задач.

Ключевой инструмент здесь — XcodeBuildMCP. Это MCP-сервер с 59 инструментами, который позволяет Claude Code собирать проект, запускать на симуляторе, гонять тесты и даже дебажить через LLDB — всё без ручного переключения в Xcode.

Установка XcodeBuildMCP

claude mcp add XcodeBuildMCP \
  -s user \
  -e XCODEBUILDMCP_SENTRY_DISABLED=true \
  -- npx -y xcodebuildmcp@latest mcp

Если у вас Xcode 26.3+, можно добавить ещё и нативный Apple MCP:

claude mcp add --transport stdio xcode \
  -s user -- xcrun mcpbridge

Проверить, что оба подключились:

claude mcp list

После установки перезапустите сессию Claude Code — инструменты появятся в списке.

Что умеет XcodeBuildMCP

  • build_sim / build_device — сборка под симулятор и реальное устройство
  • test_sim — запуск тестов с чётким pass/fail результатом
  • list_sims / boot_sim / open_sim — управление симуляторами
  • debug_attach_sim / debug_stack / debug_variables — LLDB-дебаг прямо из Claude Code
  • snapshot_ui / screenshot — скриншоты и снимки accessibility tree

Принципиальное отличие от ручного xcodebuild: ошибки возвращаются как структурированный JSON с файлом, строкой и категорией — Claude Code не тратит контекст на парсинг логов, а сразу чинит баг. По замерам Blake Crosley, весь цикл «сборка → ошибки → фикс» занимает ~90 секунд вместо 8-10 минут при ручной работе.

CLAUDE.md для iOS-игры

Создайте CLAUDE.md в корне проекта — это файл, который Claude Code читает при каждом запуске. Для iOS-игры на SpriteKit он может выглядеть так:

# iOS Game Project

## Platform
- iOS 17+, Swift 6.0, SpriteKit
- Architecture: MVC with GameScene as main controller

## Build Rules
- Use XcodeBuildMCP tools for ALL build operations
- NEVER use raw xcodebuild commands
- NEVER modify .xcodeproj or .pbxproj files directly
- Create new files, then add them to Xcode manually

## Game Structure
- GameScene.swift — основная сцена
- Player.swift — логика игрока
- Enemy.swift — типы врагов
- Assets.xcassets — спрайты и текстуры

## Coding Standards
- Swift 6 strict concurrency
- SKAction для всех анимаций
- Физика через SKPhysicsBody, не кастомные коллизии

Пример: создание SpriteKit-игры

Промпт для Claude Code:

Создай 2D space shooter на SpriteKit:
- Корабль игрока внизу экрана, управление свайпом
- Волны врагов сверху, 3 типа с разным поведением
- Стрельба автоматическая, power-ups раз в 30 секунд
- Счёт и 3 жизни
- Используй XcodeBuildMCP для сборки и тестирования

Claude Code создаст структуру проекта, напишет GameScene, настроит физику коллизий и сразу соберёт через build_sim. Если что-то не компилируется — увидит ошибку в JSON и поправит.

Путь второй: Expo + React Native — без Xcode за 20 минут

Этот подход популяризировал Carl Vellotti и он идеален для простых игр: головоломок, квизов, казуальных аркад.

Суть: Claude Code генерирует React Native код через Expo, вы запускаете его на реальном телефоне через Expo Go, а в App Store отправляете через EAS Build — без единого открытия Xcode.

Как это работает

Шаг 1 — скажите Claude Code:

Создай мобильную игру с помощью Expo и React Native.
Игра — простой тетрис. Используй NativeWind для стилей.

Claude Code создаст проект, установит зависимости и запустит dev-сервер.

Шаг 2 — установите Expo Go на iPhone, отсканируйте QR-код из терминала. Игра запустится на вашем телефоне.

Шаг 3 — итерируйте. Меняете промпт, Claude Code правит код, Expo hot reload показывает изменения мгновенно.

Шаг 4 — когда игра готова:

Настрой EAS Build для отправки в App Store.

EAS Build соберёт приложение в облаке и подготовит бинарник для App Store Connect.

Expo-air: Claude Code прямо на iPhone

Есть ещё более интересный инструмент — expo-air. Это SDK, который позволяет отправлять промпты Claude прямо с iOS-устройства. Пишете промпт, код меняется, Expo Metro делает hot reload — изменения появляются мгновенно без ручного обновления.

Какой путь выбрать

  • Swift + SpriteKit — если нужна производительность (60+ FPS, сложная физика, частицы, Metal-шейдеры), доступ к GameKit для мультиплеера, или если игра использует специфичные для iOS API вроде ARKit
  • Expo + React Native — если игра не требует тяжёлой графики (головоломки, карточные игры, текстовые квесты, простые аркады), и вам важна скорость прототипирования. Бонус: тот же код работает и на Android

По бенчмаркам 2026 года, разница в производительности между React Native с New Architecture и нативным Swift составляет менее 5% для стандартных UI-операций. Но для тяжёлой графики и кастомных шейдеров — нативный путь по-прежнему безальтернативен.

Дополнительные инструменты

iOS Simulator Skill

ios-simulator-skill — скилл для Claude Code с 21 скриптом, который оптимизирует работу с симулятором. Использует accessibility tree вместо скриншотов для навигации — это дешевле по токенам и надёжнее, потому что оперирует структурированными данными вместо пиксельного анализа.

Claude в Xcode 26.3

С Xcode 26.3 Claude Agent SDK встроен нативно — субагенты, фоновые задачи и плагины работают прямо в IDE. Для тех, кто предпочитает Xcode терминалу, это может быть удобнее Claude Code.

Подводные камни

1. Никогда не давайте Claude Code трогать .pbxproj. Это главное правило iOS-разработки с AI. Файл .pbxproj — это проектная конфигурация Xcode в кастомном XML-подобном формате. Один битый символ — и проект перестаёт открываться. Создавайте файлы через Claude Code, но добавляйте их в проект через Xcode GUI (File → Add Files). Альтернатива: переключите папки на «blue folder» режим (правый клик → Convert to Folder) — тогда Xcode сам подхватывает новые файлы с диска.

2. Swift/SwiftUI — не самый сильный язык для LLM. Swift существует чуть больше 10 лет, SwiftUI — с 2019 года. У моделей объективно меньше тренировочных данных по сравнению с Python или JavaScript. Плюс исходники SwiftUI проприетарные и не входят в открытые датасеты. На практике это проявляется в использовании устаревших API — Claude может предложить NavigationView вместо NavigationStack или ObservableObject вместо @Observable. Пропишите актуальные стандарты в CLAUDE.md.

3. XcodeBuildMCP делает полную пересборку каждый раз. Инкрементальные сборки не поддерживаются — каждый вызов build_sim собирает с нуля. Для маленького проекта это 5-10 секунд, но для игры с кучей ассетов и зависимостей — 30-60 секунд на каждую итерацию. Есть обходные пути, но они требуют дополнительной настройки.

4. Apple MCP нестабилен. Нативный Xcode MCP (xcrun mcpbridge) требует запущенный Xcode для работы — если IDE упадёт, MCP-вызовы перестанут работать. Плюс инструменты недокументированы и могут измениться без предупреждения в следующем обновлении Xcode.

5. Expo не подходит для тяжёлых игр. Если ваш геймплей завязан на частицы, физику, 60 FPS анимации или кастомные шейдеры — React Native с Expo не справится. Для казуальной головоломки — ок, для bullet hell шутера — только SpriteKit или Metal.

Вердикт

Создать iOS-игру через Claude Code реально, и это работает прямо сейчас. Для быстрого прототипа или казуальной игры — Expo + React Native даёт результат за час без знания Swift. Для серьёзного геймдева — Swift + SpriteKit + XcodeBuildMCP закрывает 90% потребностей, но требует macOS с Xcode и правильно настроенный CLAUDE.md. Главный ограничивающий фактор — не Claude Code, а ваш CLAUDE.md: чем точнее вы опишете архитектуру, стандарты кода и запреты (.pbxproj!), тем меньше времени потратите на борьбу с инструментами.

Как попробовать

  1. Установите XcodeBuildMCP: claude mcp add XcodeBuildMCP -s user -- npx -y xcodebuildmcp@latest mcp
  2. Создайте CLAUDE.md в корне проекта с правилами из этой статьи — особенно запрет на модификацию .pbxproj
  3. Попробуйте промпт: «Создай простую 2D-игру на SpriteKit: падающие объекты, тап для уничтожения, счёт и 3 жизни. Собери через build_sim и запусти на симуляторе»
  4. Для быстрого пути без Xcode: «Создай мобильную игру через Expo и React Native. Простая аркада с нарастающей сложностью. Запусти dev-сервер» — и отсканируйте QR в Expo Go
  5. Документация: XcodeBuildMCP, Claude Code iOS Dev Guide, iOS Simulator Skill
$ ls ./related/

Похожие статьи

subscribe.sh

$ cat /dev/blog/updates

> Свежие заметки о программировании,

> DevOps и AI — прямо в мессенджер

./subscribe