Mad Brains
ТЕХНОЛОГИИ СТАТЬИ

На чем пишут приложения для IOS

Разбираемся, на каких языках и платформах пишут приложения для iOS — Swift, Objective-C, Dart, JavaScript, C# — и как выбрать стек под конкретный проект.

Опубликовано: 1 января 2023 г.

Время чтения: 7 мин.

Поделиться: VK Telegram WhatsApp

iOS — одна из двух главных мобильных платформ в мире, и спрос на приложения для неё растёт вместе с числом устройств Apple в обращении. По собственным оценкам компании, речь идёт о нескольких миллиардах активных iPhone, iPad и iPod touch — а значит, и о большом рынке для бизнеса, который выпускает под них приложения. Разберёмся, на каких языках и платформах их пишут и как выбрать подходящий стек под конкретную задачу.

Что представляет собой iOS как платформа для разработчика

Прежде чем выбирать язык, полезно понимать, из чего вообще складывается разработка под iOS:

  • Пользовательский интерфейс. Apple даёт готовый набор элементов управления — кнопки, таблицы, текстовые поля — из которых собираются интуитивно понятные интерфейсы.
  • Core-фреймворки. Множество встроенных библиотек закрывают типовые задачи: Core Data — для работы с базами данных, Core Location — для геолокации, Core Animation — для анимаций.
  • App Store. Собственный магазин приложений, через который пользователи ищут, скачивают и обновляют софт, а разработчики монетизируют продукт — платным входом или покупками внутри приложения.
  • Строгие правила публикации. Apple предъявляет требования к безопасности, дизайну и функциональности — без соответствия им приложение не пройдёт модерацию.
  • Интеграции с сервисами Apple. Apple Pay для платежей, Apple Maps для карт, Siri для голосового управления — на них можно и нужно опираться, а не изобретать аналоги с нуля.
  • Адаптивный дизайн. Одно приложение должно одинаково хорошо работать на экранах iPhone и iPad разных поколений.

На каком языке пишут приложения для iOS

Swift — основной язык для новых проектов

Swift — современный язык программирования от Apple, представленный в 2014 году как замена Objective-C. Он создавался с конкретной целью: упростить разработку приложений, не жертвуя производительностью и безопасностью.

Что важно знать про Swift:

  • простой, лаконичный синтаксис — ниже порог входа для новых разработчиков;
  • встроенные механизмы защиты от типичных runtime-ошибок;
  • полная поддержка нативных возможностей iOS «из коробки»;
  • широкое комьюнити и активно растущая экосистема библиотек.

Для подавляющего большинства новых проектов, ориентированных только на iOS, сегодня выбирают именно Swift.

Objective-C — язык для поддержки legacy-кода

Objective-C появился ещё в 1980-х в компании StepStone, а статусом основного языка Apple он обзавёлся после покупки NeXT в 1997 году — сперва для Mac OS X, а с 2007 года и для iOS.

Синтаксис Objective-C сложнее, чем у Swift, а сам язык более уязвим к ошибкам времени выполнения. Тем не менее он остаётся востребованным там, где:

  • нужно поддерживать существующую кодовую базу, написанную до появления Swift;
  • проект завязан на сторонние библиотеки, доступные только на Objective-C.

Для новых проектов Apple и сообщество рекомендуют Swift, а Objective-C рассматривают как язык сопровождения, а не старта.

Dart — язык для кроссплатформенной разработки на Flutter

Dart был представлен Google в 2011 году изначально как язык для веб-приложений, но сегодня известен прежде всего как язык фреймворка Flutter. Он компилируется в нативный код, даёт хорошую производительность и удобный синтаксис — а главное, позволяет вести одну кодовую базу сразу для iOS и других платформ.

JavaScript — язык для гибридных приложений

JavaScript, созданный Бренданом Айком в Netscape Communications в 1995 году, — один из самых распространённых языков программирования в мире. Для мобильной разработки он используется в связке с фреймворками React Native и Cordova, что позволяет переиспользовать код между iOS, Android и вебом и опираться на огромное существующее сообщество.

C# — язык для разработки на Xamarin

C# был разработан Microsoft в конце 1990-х и представлен в 2000 году как часть платформы .NET. Для iOS его применяют вместе с фреймворком Xamarin: это даёт доступ к обширной экосистеме библиотек .NET, хорошую производительность и кроссплатформенность — но требует именно Xamarin для сборки и развёртывания под iOS.

Способы разработки: где писать код

Независимо от выбранного пути, разработчику в любом случае понадобится зарегистрироваться в Apple Developer Program и получить необходимые сертификаты — это условие публикации в App Store, а не опция.

1. Xcode — официальная IDE от Apple

Xcode даёт полный набор инструментов для нативной разработки: редактор кода, компилятор, отладчик и визуальный конструктор интерфейса. Здесь пишут на Swift или Objective-C и получают максимальный доступ ко всем возможностям платформы.

2. Кроссплатформенные фреймворки

React Native, Flutter и Xamarin позволяют вести одну кодовую базу для iOS и других платформ одновременно, сохраняя при этом нативный внешний вид интерфейса. Это способ сэкономить время и бюджет, если продукт нужен сразу на нескольких платформах.

3. Cordova и PhoneGap — гибридные приложения

Cordova позволяет писать приложения на веб-технологиях — HTML, CSS, JavaScript, — упаковывая их в нативный контейнер для запуска на iOS, Android и других платформах. PhoneGap работает по похожему принципу: использует WebView для отображения интерфейса и Apache Cordova — для доступа к нативным возможностям устройства.

4. Онлайн-платформы без кода

Bubble, FlutterFlow, Appmaster и подобные сервисы позволяют собирать приложения визуально, без установки среды разработки на компьютер. Подходят для прототипов, MVP и несложных продуктов.

Обзор платформ и фреймворков

  • Xcode — официальная IDE Apple с полной поддержкой Swift и Objective-C, максимум инструментов и ресурсов для нативной разработки.
  • React Native — фреймворк на JavaScript и React для кроссплатформенной мобильной разработки; собирает нативные приложения из компонентов на JS с хорошей производительностью.
  • Ionic — фреймворк для гибридных приложений на HTML, CSS и JavaScript, построен на Angular и использует Apache Cordova для доступа к нативным функциям устройства.
  • Flutter — фреймворк Google на языке Dart; использует собственный рендерер и набор виджетов, благодаря чему обеспечивает высокую производительность и единообразный внешний вид на всех платформах.
  • PhoneGap — фреймворк для гибридных приложений на веб-технологиях с поддержкой iOS, Android и других платформ.
  • PWA (Progressive Web Apps) — веб-приложения, которые запускаются в браузере без установки из App Store, поддерживают офлайн-режим и push-уведомления.

Если нужно нативное приложение — логичный выбор Xcode со Swift или Objective-C. Если задача кроссплатформенная — стоит рассмотреть Flutter, React Native, PhoneGap или Ionic.

Этапы разработки iOS-приложения

Конкретный набор этапов может отличаться в зависимости от проекта и методологии, но в общем виде путь выглядит так:

  1. Идея и планирование. Определить цель приложения, ключевые функции и целевую аудиторию, составить техническое задание, наметить сроки и ресурсы.
  2. UI/UX-дизайн. Разработать визуальные концепции и макеты, продумать навигацию и пользовательские сценарии, собрать прототип и протестировать удобство использования.
  3. Бэкенд и архитектура. Определить требования к серверной части, спроектировать базу данных, реализовать серверную логику и API.
  4. Клиентская разработка. Выбрать язык и среду разработки, реализовать функциональность по ТЗ, уделить внимание производительности, обработке ошибок и безопасности.
  5. Тестирование и отладка. Провести функциональное, интерфейсное тестирование, тестирование производительности и безопасности; проверить совместимость с разными устройствами и версиями iOS.
  6. Релиз и публикация. Завести аккаунт разработчика, зарегистрировать приложение в App Store Connect, подготовить скриншоты и промо-материалы, отправить на модерацию.
  7. Поддержка и обновления. Следить за обратной связью от пользователей, регулярно улучшать и обновлять приложение.

Что ещё важно учитывать при разработке под iOS

  • iOS SDK. Software Development Kit для iOS даёт набор инструментов и библиотек — API для графики, мультимедиа, сети, работы с базами данных.
  • Human Interface Guidelines. Apple публикует подробные рекомендации по дизайну интерфейса — их соблюдение напрямую влияет на восприятие приложения пользователями и на прохождение модерации.
  • Адаптивность. Приложение должно корректно работать на разных устройствах — от iPhone до iPad — и учитывать различия в размерах экранов и ориентации.
  • Тестирование на разных устройствах и версиях iOS. Xcode даёт для этого симуляторы и возможность подключать физические устройства.
  • Соответствие гайдлайнам Apple. Требования касаются не только интерфейса, но и безопасности, конфиденциальности данных и других политик App Store.

После релиза стоит следить за обновлениями от Apple — новыми API, фреймворками и технологиями, которые появляются регулярно и могут улучшить или упростить дальнейшую разработку.

Что в итоге

Выбор языка программирования и среды разработки зависит от знаний команды, опыта и требований конкретного проекта:

  • Swift — базовый выбор для нового нативного приложения под iOS.
  • Objective-C — оправдан для поддержки существующего legacy-кода или специфических библиотек.
  • Xcode — основной инструмент нативной разработки под iOS.
  • Flutter, React Native, Ionic — стоит рассмотреть, если приложение нужно сразу на нескольких платформах с общей кодовой базой.

Универсального «правильного» ответа здесь нет — важно выбрать стек, который соответствует задачам проекта и позволяет выпустить понятное, быстрое и функциональное приложение для пользователей iOS.