Лист ожиданияСкачать

Что такое SwiftUI и чем он отличается от UIKit

Фреймворк Apple для интерфейса приложений. Как он устроен, с какой iOS работает и где его найти в Xcode.

Коротко

SwiftUI это фреймворк Apple для интерфейса приложений на Swift, представленный 3 июня 2019 года. Экран в нём описывают кодом, а система сама рисует и обновляет его на iPhone, iPad, Mac, Apple Watch, Apple TV и Vision Pro, начиная с iOS 13.

Что такое SwiftUI

SwiftUI это фреймворк Apple для интерфейса приложений на языке Swift. Apple показала его 3 июня 2019 года на WWDC19 вместе с Xcode 11 (пресс-релиз Apple). Код в нём декларативный. Вы описываете, из чего состоит экран и как он зависит от данных, например «список песен, у каждой обложка, название и исполнитель». Когда данные меняются, SwiftUI сам перерисовывает нужную часть.

Каждый экран и каждый его кусок это структура, которая подчиняется протоколу View. Модификаторы меняют вид элемента, например .padding() добавляет отступы, а .font(.title) задаёт шрифт. Один код работает на iPhone, iPad, Mac, Apple Watch, Apple TV и Vision Pro.

Где SwiftUI в Xcode

Отдельно SwiftUI не ставят, он входит в Xcode и в систему. Новый проект открывается по пути Xcode › File › New › Project › App, в поле Interface выбирают SwiftUI (так в справке Xcode). Вход в приложение описан в файле с именем приложения и словом App, первый экран в ContentView.swift.

Справа от кода Xcode показывает холст (canvas) с живым предпросмотром экрана. Его задаёт макрос #Preview под описанием экрана, и правка в коде сразу видна на холсте.

Версии и числа Apple

ЧтоЗначение
Когда представлен3 июня 2019 года, WWDC19, вместе с Xcode 11
С каких версий систем работаетiOS и iPadOS 13.0, macOS 10.15, watchOS 6.0, tvOS 13.0, visionOS 1.0
UIKit для сравненияс iOS 2.0
Liquid Glass для своих элементовмодификатор glassEffect, с iOS 26.0
Минимальная iOS в App StoreiOS 13, с 9 сентября 2026 года
Сборка для App StoreXcode 26 или новее, с 28 апреля 2026 года
Xcode 27macOS Tahoe 26.6 или новее, только Мак на Apple M, Swift 6.4

По данным документации SwiftUI, требований App Store и таблицы версий Xcode, проверено 16.10.2026.

С 9 сентября 2026 года App Store принимает приложения с минимальной версией iOS 13 и новее, и SwiftUI начинается как раз с iOS 13. Значит, базовый SwiftUI подходит любому приложению, которое сейчас можно загрузить. Новые элементы приходят с каждой iOS, и ради них минимальную версию поднимают.

Первый экран на SwiftUI по шагам

  1. Откройте Xcode 26 или новее и выберите File › New › Project › App.
  2. Введите имя, выберите команду для подписи в поле Team, в поле Interface укажите SwiftUI и нажмите Create.
  3. Откройте ContentView.swift и опишите экран внутри body, например VStack с Text и Button.
  4. Убедитесь, что под структурой есть #Preview { ContentView() }, и смотрите результат на холсте.
  5. Добавьте счётчик нажатий через @State и проверьте, что текст меняется сам.
  6. Выберите симулятор iPhone и нажмите Run, чтобы проверить экран в настоящем приложении.
Первый экран на SwiftUI в XcodeПять шагов, чтобы сделать первый экран на SwiftUI в Xcode. 1. Новый проект через File › New › Project › App в Xcode 26 или новее. 2. В настройках проекта Interface SwiftUI, язык Swift, команда для подписи. 3. Экран описывается в ContentView.swift структурой View и её свойством body. 4. Макрос #Preview показывает экран на холсте, правка кода видна сразу. 5. Запуск кнопкой Run на симуляторе или iPhone, SwiftUI работает с iOS 13. По справке Xcode и документации SwiftUI на 16 октября 2026 года.Первый экран на SwiftUI в XcodeПять шагов от нового проекта до запуска на симуляторе, Xcode 26 и 27, на 16.10.20261Новый проектFile › New › Project › AppXcode 26 или новее2Интерфейс SwiftUIInterface › SwiftUIязык Swift, команда для подписи3Экран в кодеContentView.swiftструктура View и её body4Предпросмотр#Preview › canvasправка кода видна сразу5ЗапускRun › симулятор или iPhoneSwiftUI работает с iOS 13
Новый проект на SwiftUI делается в Xcode за пять шагов, и экран видно на холсте ещё до запуска. По справке Xcode, проверено 16.10.2026.

SwiftUI или UIKit

UIKit есть с iOS 2.0. В нём экран собирают из контроллеров и представлений и сами обновляют, когда меняются данные. В SwiftUI кода меньше, результат видно на холсте сразу, и одна кодовая база годится для iPhone, iPad, Mac и часов. UIKit остаётся там, где нужен тонкий контроль над прокруткой, текстом или большим старым кодом.

Выбирать одно из двух не обязательно, Apple делала SwiftUI для работы рядом с UIKit и AppKit (страница SwiftUI). UIHostingController вставляет экран SwiftUI в UIKit, UIViewRepresentable делает обратное, оба с iOS 13.0.

Что изменилось в 2025 и 2026 годах

С iOS 26, которая вышла 15 сентября 2025 года, стандартные элементы SwiftUI получают материал Liquid Glass сами, достаточно собрать приложение в Xcode 26. Для своих элементов есть модификатор glassEffect, подробнее на странице Liquid Glass.

В Xcode 27 @State стал макросом, и класс в нём создаётся лениво, один раз за жизнь экрана (что нового в SwiftUI). Ассистент по коду в Xcode 27 получил навыки для перехода на новые возможности SwiftUI, это пригодится тем, кто делает приложение с ИИ-агентом (вайбкодинг).

Частые ошибки

  • Новый элемент при старой минимальной iOS. Если элемент появился в iOS 17, а проект поддерживает iOS 15, сборка упадёт без проверки if #available.
  • Общие данные в @State. @State хранит состояние одного экрана. Данные для нескольких экранов держат в модели, иначе копии расходятся.
  • Тяжёлая работа внутри body. SwiftUI вызывает body при каждом изменении данных, загрузка из сети там тормозит прокрутку.

Appto пишет приложение на SwiftUI в обычном проекте Xcode, сама проходит каждый экран на симуляторе и чинит найденное. Проверить его руками можно на симуляторе, своём iPhone или через TestFlight, подробнее на странице о коде.

Вопросы

SwiftUI это язык программирования?

Нет. Язык называется Swift, а SwiftUI это фреймворк Apple для экранов приложений на Swift, показанный в июне 2019 года.

С какой версии iOS работает SwiftUI?

С iOS 13.0. На Mac с macOS 10.15, на часах с watchOS 6.0, по документации Apple на 16.10.2026. Новые элементы требуют более новых версий.

Что выбрать для нового приложения, SwiftUI или UIKit?

Обычно SwiftUI, кода меньше и результат виден на холсте сразу. Нужный элемент из UIKit встраивается через UIViewRepresentable.

Нужен ли Мак, чтобы писать на SwiftUI?

Да. Xcode работает только на Mac, а Xcode 27 требует macOS Tahoe 26.6 или новее и Мак на Apple M (таблица версий Xcode и заметки к Xcode 27, 17.10.2026).

Сделайте своё приложение в Appto

Appto сама проверит нишу по свежим данным App Store, нарисует экраны, напишет код, оформит страницу в App Store и отправит в Apple с вашего аккаунта или покажет, что нажать в App Store Connect. Работает на вашем Claude Code или Codex.

Скачать для Mac