Какой у вас опыт работы с SwiftUI?

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

Ответ

Да, есть практический опыт разработки на SwiftUI.

Основные компетенции:

  • Декларативный UI: Создание интерфейсов с использованием модификаторов и композиции View.
  • Управление состоянием: Работа с @State, @Binding, @StateObject, @ObservedObject, @EnvironmentObject.
  • Навигация: Использование NavigationStack, NavigationLink, .sheet, .fullScreenCover.
  • Анимации: Применение модификаторов .animation() и withAnimation.
  • Интеграция: Встраивание SwiftUI в UIKit через UIHostingController и UIKit в SwiftUI с помощью UIViewRepresentable / UIViewControllerRepresentable.

Пример кода (Toggle с состоянием):

struct ContentView: View {
    @State private var isToggleOn = false

    var body: some View {
        VStack {
            Toggle("Включить", isOn: $isToggleOn)
                .padding()
            Text(isToggleOn ? "Активно" : "Неактивно")
                .foregroundColor(isToggleOn ? .green : .gray)
        }
    }
}

Почему SwiftUI? Фреймворк обеспечивает более быструю итеративную разработку за счет live preview, реактивной модели данных и сокращения boilerplate-кода по сравнению с UIKit.