~/VibeHandbook
PDF бесплатно

Приложения / Mobile

developer.apple.com

SwiftUI

Что это такое

Представьте, что вы хотите обставить комнату. Можно описать декоратору, как должна выглядеть готовая комната, и он сам всё расставит — вместо того чтобы двигать мебель самому шаг за шагом. SwiftUI работает по такому же принципу. Это декларативный UI-фреймворк (User Interface — пользовательский интерфейс, видимая часть приложения) от Apple для создания интерфейсов на всех платформах Apple с помощью единого, общего набора инструментов. Вместо того чтобы самостоятельно изменять представления шаг за шагом, вы описываете, как UI должен выглядеть при заданном состоянии, а фреймворк держит экран в синхроне по мере изменения этого состояния. Он работает в Xcode с холстом живого предпросмотра, так что вы видите изменения по мере набора кода.

Сильные стороны

  • Декларативность и лаконичность — гораздо меньше шаблонного кода, чем в старом подходе UIKit/AppKit.
  • Автоматические обновления, управляемые состоянием, через @State, @Binding и наблюдение.
  • Живые предпросмотры делают итерации над вёрсткой быстрыми и наглядными.
  • Один фреймворк нацелен на iPhone, iPad, Mac, Watch и TV с общим кодом.
  • Встроенная поддержка анимации, доступности, тёмной темы и динамического шрифта.

Компромиссы

  • Более новые (Application Programming Interface — готовые блоки, которые программа вызывает для нужных функций) требуют свежих версий ОС (Operating System — основное ПО устройства, например iOS или macOS), что может быть проблемой, если нужно поддерживать старые устройства.
  • Для глубоко кастомного или необычного UI иногда приходится откатываться к взаимодействию с UIKit/AppKit.
  • Некоторые поведения непрозрачны, и отладка проблем с вёрсткой или состоянием может раздражать.
  • Он быстро эволюционирует, поэтому примеры могут устаревать между релизами ОС.

Лучше всего подходит для

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

Подходит для вайб-кодинга

SwiftUI подходит для создания с помощью ИИ, потому что представления маленькие, компонуемые и самодостаточные — их легко генерировать модели и легко проверять вам на холсте предпросмотра. Попросите ассистента явно моделировать состояние экрана с помощью @State/@Observable, разбивать крупные представления на маленькие подпредставления и управлять списками из идентифицируемых данных. Держите один источник истины для состояния и пусть привязки текут вниз; это единственное правило предотвращает большую часть путаницы в сгенерированном коде SwiftUI.

import SwiftUI

struct CounterView: View {
    @State private var count = 0
    var body: some View {
        VStack {
            Text("\(count)").font(.largeTitle)
            Button("Add") { count += 1 }
        }
    }
}