К содержанию

Wiki · Технологии разработки

Swift

Swift – это язык программирования Apple для приложений под iPhone, iPad, Mac, Apple Watch, Apple TV и Vision Pro. Язык открытый, кроме устройств Apple он работает на Linux и Windows.

Если подрядчик предлагает «нативное приложение для iOS», скорее всего, писать будут на Swift. Это означает отдельный проект под устройства Apple со своими требованиями: компьютер Mac, среда Xcode, аккаунт разработчика и ежегодные обновления под новую iOS. Разберём, что из этого важно заказчику.

От замены Objective-C до Swift 6.4

Apple представила Swift в 2014 году как замену Objective-C, на котором до этого писали приложения для iPhone и Mac. В декабре 2015 года язык открыли по лицензии Apache 2.0, сейчас он развивается на swift.org при участии сообщества. В сентябре 2024 года вышел Swift 6 с новым режимом, где компилятор находит гонки данных: ошибки, когда две части программы одновременно меняют одни и те же данные. На октябрь 2026 года актуальна версия Swift 6.4 (сентябрь 2026).

Как выглядит код и чем он защищает

Возьмём заказ, у которого может не быть телефона:

struct Order {
    let id: Int
    var phone: String?
}
let order = Order(id: 15, phone: nil)
print(order.phone ?? "not set")

Знак вопроса после String означает, что значения может не быть, и компилятор не даст использовать его без проверки. Apple перечисляет и другие встроенные защиты: переменные всегда получают значение до использования, выход за границы массива и переполнение чисел проверяются, памятью язык управляет сам. Для бизнеса это означает понятную вещь: при переполнении приложение остановится с ошибкой, а не посчитает итог заказа молча и неправильно.

Swift компилируется в машинный код через LLVM, поэтому приложения на нём работают быстро.

iPhone, Mac, часы и сервер: где работает Swift

  • Приложения для iPhone и iPad. Это основная область, на ней держится почти вся заказная iOS-разработка.
  • Программы для Mac, Apple Watch, Apple TV и Vision Pro. Язык и многие библиотеки Apple общие для всех её устройств, поэтому версию для часов или планшета часто делают рядом с приложением для iPhone, в том же проекте.
  • Серверы на Linux и встраиваемые устройства. Apple прямо называет эти области, но в заказной разработке для бизнеса они встречаются намного реже.
Схема: где работает Swift. iPhone и iPad, Mac, Apple Watch, Apple TV и Vision Pro, а также серверы на Linux, Windows и встраиваемые устройства
Где работает код на Swift

Swift, Objective-C, Flutter или Kotlin Multiplatform

ВариантДля какой задачи подходит
Swift и SwiftUIНовое приложение для iPhone, нужны свежие возможности iOS сразу после выхода
Objective-CПоддержка старого кода. Swift и Objective-C работают в одном проекте
Flutter, React NativeОдно приложение с общим кодом на iOS и Android
Kotlin MultiplatformОбщая логика на Kotlin для обеих платформ, интерфейс iOS на SwiftUI

Что нужно iOS-проекту, кроме программиста

  • Нужен Mac. Xcode, в котором собирают и публикуют приложения для iPhone, работает только на macOS.
  • Нужен свой аккаунт в программе Apple Developer. Оформляйте его на компанию, а не на исполнителя.
  • Ежегодные обновления обязательны. С 28 апреля 2026 года App Store принимает только сборки из Xcode 26 с SDK iOS 26. Приложение, которое год не трогали, сначала придётся обновить под новый Xcode, и только потом выпускать срочную правку.
  • Новую iOS лучше встречать заранее. Apple выпускает бета-версии системы для разработчиков за несколько месяцев до релиза, и на них стоит проверить приложение, чтобы не узнавать о проблемах из отзывов.
  • Отдельная команда. Swift-разработчик пишет под Apple, приложение для Android на Kotlin делает другой специалист.

При пересборке в Xcode 26 стандартные элементы интерфейса сами получают новый вид Liquid Glass, а нестандартные кнопки и панели придётся проверить и, возможно, доработать. Подробнее об этом в статье про SwiftUI.

Ещё одна деталь для того, кто отвечает за сервер. По умолчанию iOS требует, чтобы приложение обменивалось данными с сервером только по HTTPS (механизм App Transport Security). Если API вашего сайта до сих пор работает по HTTP, это нужно исправить до запуска приложения.

Что посмотреть в репозитории iOS-проекта

Попросите доступ к репозиторию и посмотрите на файлы. Код на Swift лежит в файлах .swift, на Objective-C в парах .h и .m. В настройках проекта Xcode есть параметр Swift Language Version: он показывает, в каком режиме собирается код, Swift 5 или Swift 6. Перевод большого проекта в режим Swift 6 со строгой проверкой гонок данных бывает заметной работой, её стоит оценить отдельно.

Чек-лист проверки iOS-проекта на Swift: версия Xcode, режим языка, код на Objective-C, минимальная iOS, аккаунт Apple Developer, HTTPS
Что проверить в iOS-проекте

Решения, о которых потом жалеют в iOS-проекте

  • Планировать команду без Mac и надеяться собрать приложение для iPhone на Windows.
  • Переписывать рабочий код на Objective-C целиком вместо постепенного перехода.
  • Не выпускать обновления больше года, а потом в спешке догонять требования App Store.
  • Заказать нативное приложение, когда задачу закрыла бы удобная мобильная версия сайта.

Приложения для iPhone проектируем и разрабатываем по услуге «Разработка мобильного приложения», кабинеты для клиентов и сотрудников по услуге «Разработка личного кабинета». Если проект уже работает на Swift, берём его на доработку и поддержку.

Частые вопросы про Swift

Чем Swift отличается от Objective-C и стоит ли переписывать старый код?

Swift моложе, короче и сам ловит ошибки, которые в Objective-C всплывали уже у пользователей: пустые значения, выход за пределы массива, переполнение. Переписывать рабочий проект разом смысла нет. Оба языка уживаются в одном приложении, поэтому новые экраны пишут на Swift, а старые переводят, когда до них доходит доработка.

Как переводится swift и связан ли язык с банковской системой SWIFT?

По-английски swift значит «быстрый», а ещё так называют стрижа, отсюда птица на логотипе. С межбанковской системой SWIFT у языка общее только название.

Пишут ли на Swift серверную часть и API?

Пишут: Swift работает на Linux, и Apple сама относит серверы к областям применения языка. Но в заказной разработке это редкость. API для приложения чаще делают на том же стеке, что и сайт, под который проще найти команду и готовые решения.

Получится ли собрать приложение для iPhone на Windows?

Нет. Писать на Swift под Windows можно, язык там работает, но сборка, подпись и отправка в App Store идут через Xcode, а его выпускают только для macOS. Поэтому Mac обязательно есть в смете любого iOS-проекта.

Почему Swift называют безопасным языком?

Многие ошибки он не пропускает при сборке, а остальные останавливает сразу, не давая программе работать с испорченными данными. Переменную нельзя прочитать до присваивания, обращение к массиву проверяется на границы, освобождением памяти занимается сам язык. Начиная со Swift 6 компилятор вдобавок ищет гонки данных между потоками.

Что поменял Swift 6 и когда переводить на него проект?

Главная новинка Swift 6: строгий режим, в котором компилятор ловит одновременную запись в одни данные из разных потоков. Старый код может и дальше собираться в режиме Swift 5, режим задают в настройках Xcode. Переход большого приложения оценивают как отдельную задачу и ведут по модулям, а не попутно со срочной правкой.

Почему iOS-приложение приходится пересобирать каждый год?

Apple регулярно поднимает планку для сборок. Начиная с 28 апреля 2026 года в App Store проходят лишь приложения, собранные в Xcode 26 под iOS 26 SDK, так что даже срочную правку не выпустить, пока проект не обновлён. При пересборке стандартные элементы получают вид Liquid Glass, а самодельные кнопки и панели приходится проверять вручную.

Swift или Flutter: как выбрать для нового приложения?

Swift берут, когда приложение нужно прежде всего на iPhone и важны новинки iOS в день выхода, плотная работа с камерой, AR или датчиками. Flutter выгоднее, если нужны сразу iOS и Android с одинаковым интерфейсом и одна команда. При нативном пути помните, что Android-версию на Kotlin делает уже другой разработчик.

Зачем Swift-разработчик в команде, которая пишет на Flutter?

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

Какие требования iOS-приложение предъявляет к серверу сайта?

Главное из них: обмен данными только по HTTPS. Механизм App Transport Security по умолчанию блокирует запросы по открытому HTTP, а исключения из этого правила Apple просит обосновывать при проверке приложения. Поэтому сертификат на домен API ставят до первой тестовой сборки, а не накануне релиза.

Что почитать у Apple и на swift.org

  • Apple Developer: Swift
  • Swift.org: о проекте, Announcing Swift 6, Swift 6.4 Released
  • Apple Developer: требования к SDK для публикации в App Store

Остались вопросы по теме «Swift»?

Напишите нам в Telegram или MAX. Ответит специалист, который отвечает за эту тему, или руководитель проектов в рабочее время.

Сергей ЧерняковОтвечает по темеСергей ЧерняковWeb-разработчик

Посчитайте стоимость проекта за 2 минуты

Калькулятор соберёт смету по нашим тарифам: сайт, дизайн, интеграции и поддержка.