Когда бизнес решает запустить iOS-приложение, первый вопрос — не «какие фичи», а «на чём писать». Выбор технологии определяет бюджет (разница до 2x), сроки, доступность разработчиков и стоимость поддержки на годы вперёд. Неправильный выбор стека на старте — это +30-50% бюджета на переписывание через год.
В статье — честное сравнение трёх подходов: нативный Swift, кроссплатформенный Flutter и React Native. Без фанатизма, с цифрами и рекомендациями для конкретных сценариев.
смартфонов в РФ
пользователя vs Android
iOS-приложения
Три подхода к разработке iOS-приложений
Сначала разберёмся в терминологии, потому что путаница здесь колоссальная.
Нативная разработка (Swift). Приложение написано на языке Apple — Swift (или устаревшем Objective-C) с использованием нативных фреймворков (UIKit, SwiftUI). Работает только на iOS/iPadOS/macOS. Максимальная производительность, полный доступ ко всем API устройства.
Кроссплатформенная разработка (Flutter). Один код → приложения для iOS и Android одновременно. Язык — Dart. Собственный движок рендеринга (Skia/Impeller) — рисует каждый пиксель сам, не использует нативные компоненты UI. Результат: идентичный вид на обоих платформах.
Кроссплатформенная разработка (React Native). Один код → iOS и Android. Язык — JavaScript/TypeScript. В отличие от Flutter, использует нативные компоненты UI через «мост». Результат: приложение выглядит нативно на каждой платформе, но архитектура «моста» создаёт ограничения.
Swift: нативный подход
Когда выбирать
Приложение только для iOS. Если Android не нужен (или будет позже, отдельной командой) — нативный Swift даёт лучший результат при том же бюджете.
Высокие требования к производительности. AR/VR (ARKit), 3D-графика (Metal), сложные анимации, обработка видео в реальном времени. Нативные фреймворки дают 100% производительности устройства, кроссплатформенные — 85-95%.
Глубокая интеграция с экосистемой Apple. Apple Watch, AirPods, CarPlay, HomeKit, HealthKit, NFC, Siri Shortcuts. Кроссплатформенные фреймворки поддерживают базовые API, но продвинутые — с ограничениями или через «костыли».
Длительный жизненный цикл. Если приложение будет развиваться 3-5+ лет — нативный Swift проще поддерживать. Apple выпускает новые API → нативное приложение получает их в день релиза, кроссплатформенное — через 1-6 месяцев (пока обновится фреймворк).
Технические детали
SwiftUI vs UIKit. SwiftUI — декларативный фреймворк (аналог Flutter/Compose), UIKit — императивный (классический). В 2026 SwiftUI зрелый и подходит для большинства задач. UIKit — для сложных кастомных интерфейсов и legacy-проектов. Новые проекты стоит начинать на SwiftUI.
Стоимость разработчика. iOS-разработчик (middle): 250-400К/мес в штат, 2500-4000 руб/час на аутсорсе. Рынок iOS-разработчиков в России уже — меньше, чем Flutter/React Native. Это влияет на скорость найма и стоимость.
Flutter: единый код, идентичный UI
Когда выбирать
Нужны iOS и Android одновременно. Один код, одна команда, один бюджет. Экономия: 30-40% по сравнению с двумя нативными приложениями. При бюджете до 1.5 млн — часто единственный способ выпустить оба приложения.
Кастомный UI. Свой дизайн, не привязанный к платформенным гайдлайнам. Flutter рисует всё сам — можно сделать любой интерфейс. Анимации, градиенты, нестандартные элементы — всё из коробки.
Быстрый MVP. Hot reload (мгновенное обновление при изменении кода) ускоряет разработку на 20-30%. Один разработчик может выпустить MVP за 2-3 месяца для обеих платформ.
Стартапы с ограниченным бюджетом. Один Flutter-разработчик заменяет iOS + Android разработчиков. При бюджете 200-500К на мобильное приложение — Flutter оптимальный выбор. Подробнее о разработке MVP — в нашей статье «Разработка MVP».
Технические детали
Dart. Язык от Google. Легко учится для разработчиков с опытом в Java/C#/JavaScript. Строгая типизация, null safety, хороший тулинг. Минус: меньше сообщество и библиотек, чем у JS/Swift.
Производительность. Компилируется в нативный ARM-код. В большинстве задач — неотличим от нативного. Проблемы возникают при: сложных списках с тяжёлой графикой, работе с камерой/видео (нужны нативные плагины), heavy metal/OpenGL. Для 95% бизнес-приложений производительность Flutter достаточна.
Стоимость разработчика. Flutter-разработчик (middle): 200-350К/мес в штат, 2000-3500 руб/час на аутсорсе. Рынок растёт быстро, найти разработчика проще, чем iOS-специалиста. Подробнее о сравнении — в статье «Flutter vs React Native».
React Native: JavaScript для мобильных
Когда выбирать
Команда уже знает JavaScript/React. Если у вас есть веб-разработчики на React — переход на React Native минимален. Переиспользование 30-50% кода между веб и мобайл — реальность (бизнес-логика, API-клиенты, типы данных).
Приложение — «обёртка» над веб-сервисом. Каталоги, новостные ленты, дашборды, CRM-интерфейсы — задачи, где нет тяжёлой графики и анимаций. React Native справляется отлично.
Быстрый выход на рынок. OTA-обновления (Over-The-Air) — можно обновлять JavaScript-часть приложения без публикации в App Store. Баг в продакшене? Фикс через 5 минут, а не через 1-3 дня ревью Apple.
Технические детали
New Architecture (Fabric + TurboModules). В 2024-2025 React Native перешёл на новую архитектуру, убрав асинхронный «мост» — главную причину проблем с производительностью. Результат: производительность приблизилась к Flutter, но экосистема плагинов ещё мигрирует.
Expo. Фреймворк поверх React Native, упрощающий разработку: управляемые сборки, OTA-обновления, готовые модули для камеры/геолокации/пушей. Для 80% приложений Expo достаточно. Для оставшихся 20% (кастомные нативные модули) — придётся «выйти» из Expo.
Стоимость разработчика. React Native-разработчик (middle): 200-350К/мес в штат. Рынок JS-разработчиков — самый большой. Найти React Native-специалиста проще всего. Но «знает React» ≠ «знает React Native»: мобильная разработка имеет свою специфику.
Сравнение: Swift vs Flutter vs React Native
Сводная таблица для принятия решения:
Производительность. Swift: 10/10 (нативный). Flutter: 9/10 (компиляция в ARM). React Native: 8/10 (JavaScript + мост, улучшено в New Architecture).
Стоимость разработки (iOS + Android). Swift: от 400К (только iOS, Android отдельно). Flutter: от 200К (обе платформы). React Native: от 200К (обе платформы).
Сроки MVP. Swift: 2-4 месяца (только iOS). Flutter: 2-3 месяца (обе платформы). React Native: 2-3 месяца (обе платформы).
Доступ к нативным API. Swift: 100%. Flutter: 90% (через плагины). React Native: 85% (через модули).
Hot reload. Swift: есть в SwiftUI (ограниченно). Flutter: да, полноценный. React Native: да, полноценный + OTA-обновления.
Рынок разработчиков в РФ. Swift: средний. Flutter: растущий. React Native: большой (JS-экосистема).
Итог: для бизнес-приложений (CRM, каталог, e-commerce, сервисное приложение) — Flutter или React Native. Для performance-critical (AR, видео, игры) — Swift. Для компаний с React-командой — React Native. Для стартапов с нуля — Flutter.
Стоимость разработки iOS-приложения
(3-5 экранов, базовый функционал)
(10-20 экранов)
(интеграции, real-time)
Что влияет на стоимость:
Количество экранов. Каждый уникальный экран — 15-50К (дизайн + разработка + тестирование). MVP с 5 экранами — 75-250К только на UI. Сложный экран (карта, чат, видеозвонок) — 50-150К.
Бэкенд. Если API уже есть — приложение подключается к нему. Если нет — разработка бэкенда удваивает стоимость. Для MVP: Firebase или Supabase (BaaS) — экономия 50-100К на старте. Для серьёзного продукта: кастомный бэкенд (Node.js, Python, Go).
Дизайн. Базовый UI (стандартные компоненты): 50-100К. Кастомный дизайн с анимациями: 150-400К. Не экономьте на дизайне — плохой UX убивает конверсию. Подробнее — в статье «UX/UI дизайн для бизнеса».
Интеграции. Платёжная система (ЮKassa, Stripe): 30-80К. Push-уведомления: 15-30К. Аналитика: 10-20К. Чат/мессенджер: 50-200К. Каждая интеграция — отдельная статья бюджета.
Публикация. Apple Developer Program: $99/год. Ревью App Store: 1-7 дней (может потребовать доработок). Первая публикация — 10-30К на подготовку скриншотов, описаний, ASO.
Подробнее о стоимости — в нашей статье «Сколько стоит мобильное приложение». Для оценки вашего проекта — наши услуги по разработке мобильных приложений.
Процесс разработки: от идеи до App Store
FAQ
Можно ли написать iOS-приложение на React/JavaScript?
Да, с помощью React Native. Код на JavaScript/TypeScript компилируется в нативное iOS-приложение. Для большинства бизнес-задач результат неотличим от нативного. Ограничения: AR/VR, тяжёлая графика, глубокая интеграция с экосистемой Apple — здесь лучше Swift.
Сколько стоит поддержка iOS-приложения после запуска?
Базовая поддержка (баг-фиксы, обновление под новые версии iOS): 30-80К/мес. Развитие (новые фичи, улучшения): 100-300К/мес. Apple выпускает iOS-обновления ежегодно — минимум 50-100К в год на адаптацию. Кроссплатформенные фреймворки (Flutter, React Native) обычно обновляются в течение 1-3 месяцев после релиза новой iOS.
Нужен ли Mac для разработки iOS-приложений?
Для нативного Swift — да, обязательно (Xcode работает только на macOS). Для Flutter и React Native — разработка возможна на Windows/Linux, но для сборки iOS-билда и публикации в App Store всё равно нужен Mac (или облачный сервис сборки — Codemagic, Bitrise). Если выбираете кроссплатформу — Mac нужен минимально (только для сборки и тестирования).
Flutter или React Native — что выбрать в 2026?
Flutter: если нужен кастомный UI, команда готова изучить Dart, проект с нуля. React Native: если команда знает JavaScript/React, нужно переиспользовать код с веб-версией, важны OTA-обновления. По производительности в 2026 — примерно равны. По размеру сообщества — React Native чуть больше (за счёт JS-экосистемы). По скорости разработки — Flutter чуть быстрее (hot reload + виджеты из коробки). Подробное сравнение — в статье «Flutter vs React Native».
Как проходит ревью Apple? Что могут отклонить?
Apple ревью — 1-7 дней. Типичные причины отклонения: приложение — просто обёртка над сайтом (минимальная нативная функциональность), нет политики конфиденциальности, запрос лишних разрешений (камера, геолокация без обоснования), наличие багов при тестировании, нарушение Human Interface Guidelines. Первую подачу лучше готовить с опытным разработчиком — это экономит 1-2 недели на переподачу.