Что такое SwiftUI?

«Что такое SwiftUI?» — вопрос из категории SwiftUI, который задают на 23% собеседований IOS Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

SwiftUI — это современный декларативный фреймворк Apple для построения пользовательских интерфейсов на всех её платформах (iOS, macOS, watchOS, tvOS) с использованием синтаксиса Swift.

Ключевые принципы и особенности:

  1. Декларативный синтаксис: Вы описываете, как должен выглядеть UI в зависимости от состояния данных, а не последовательность команд для его изменения (как в императивном UIKit).
  2. Единый код для всех платформ: Одно описание интерфейса адаптируется под идиомы каждой платформы (iOS, macOS и т.д.).
  3. Реактивность на основе состояния: UI автоматически перерисовывается при изменении связанных с ним данных, помеченных как @State, @ObservedObject, @StateObject и др.

Базовый пример:

import SwiftUI

struct ContentView: View {
    // @State — свойство-источник истины, при его изменении View пересоздается
    @State private var counter = 0

    var body: some View {
        VStack {
            Text("Счётчик: \(counter)")
                .font(.title)
            Button("Увеличить") {
                counter += 1 // Изменение состояния -> автоматическое обновление Text
            }
            .padding()
            .background(Color.blue)
            .foregroundColor(.white)
            .cornerRadius(10)
        }
    }
}

Преимущества перед UIKit:

  • Меньше кода: Отсутствие boilerplate-кода (например, не нужны делегаты для таблиц).
  • Live Preview в Xcode: Мгновенный предпросмотр изменений без запуска симулятора.
  • Автоматическая доступность: Многие компоненты из коробки поддерживают динамический тип шрифта, темную тему и VoiceOver.

Ограничения:

  • Требует iOS 13+ / macOS 10.15+.
  • Некоторые сложные или специфичные UI-компоненты могут отсутствовать и требовать интеграции с UIKit (UIViewRepresentable).