Swift

Язык программирования Apple для приложений на iPhone, iPad и Mac: безопасный, быстрый и современный преемник Objective-C.

Swift — язык программирования, который Apple представила в 2014 году для разработки приложений под iOS, iPadOS, macOS, watchOS и tvOS. Он пришел на смену Objective-C, на котором экосистема Apple жила с 1980-х. Swift проектировали так, чтобы целые классы ошибок стали невозможны, а код оставался коротким и быстрым. С 2015 года язык развивается как проект с открытым исходным кодом.

Пример: защита от пустых значений

// Swift
struct Client {
    let name: String
    let phone: String?   // телефона может не быть
}

func notify(_ client: Client) {
    guard let phone = client.phone else {
        print("У клиента \(client.name) нет телефона")
        return
    }
    sendSMS(to: phone)
}

Знак ? говорит, что значения может не быть. Компилятор не даст использовать phone, пока код явно не проверит его наличие. Ошибка «обращение к пустому значению», одна из самых частых причин падения приложений, в Swift ловится еще при сборке.

Особенности языка

  • Статическая типизация с выводом типов — надежность без лишних слов.
  • Управление памятью через ARC — автоматический подсчет ссылок, который расставляет компилятор. В отличие от сборки мусора, нет пауз, но нужно следить за циклическими ссылками, иначе возникают утечки памяти.
  • Значимые типы и протоколы. Структуры копируются, а не передаются по ссылке, что снижает число неожиданных изменений; протоколы описывают поведение, как интерфейсы в других языках (подробнее о принципе — в термине «Полиморфизм»).
  • Современная асинхронность — async/await и защита от гонок между потоками на уровне языка.

Интерфейсы: SwiftUI

С 2019 года Apple развивает SwiftUI — декларативный способ описывать интерфейс, близкий по идее к React: экран описывается как функция от данных, а система сама обновляет то, что изменилось. Старый подход UIKit по-прежнему используется в больших приложениях, и оба часто сочетаются.

Когда выбирают нативную разработку на Swift

  • Приложению нужны глубокая работа с камерой, датчиками, Bluetooth (BLE), фоновые задачи.
  • Важны максимальная плавность, сложная графика и анимации.
  • Нужны новые возможности iOS сразу после их выхода.

Если же приложение — это в основном формы, списки и работа с сервером, часто выбирают кроссплатформенные React Native или Flutter, а на Swift пишут только отдельные модули. Для Android ту же роль, что Swift для iOS, играет Kotlin.