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 Store | iOS 13, с 9 сентября 2026 года |
| Сборка для App Store | Xcode 26 или новее, с 28 апреля 2026 года |
| Xcode 27 | macOS 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 по шагам
- Откройте Xcode 26 или новее и выберите File › New › Project › App.
- Введите имя, выберите команду для подписи в поле Team, в поле Interface укажите SwiftUI и нажмите Create.
- Откройте ContentView.swift и опишите экран внутри body, например
VStackсTextиButton. - Убедитесь, что под структурой есть
#Preview { ContentView() }, и смотрите результат на холсте. - Добавьте счётчик нажатий через
@Stateи проверьте, что текст меняется сам. - Выберите симулятор iPhone и нажмите Run, чтобы проверить экран в настоящем приложении.
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