Ответ
Декларативный подход — это парадигма, при которой код описывает что должно быть (желаемый результат), а не как этого достичь (последовательность шагов). В iOS он реализован во фреймворке SwiftUI.
Сравнение с императивным подходом (UIKit):
- Императивный (UIKit): "Создай UILabel, установи ему текст
Hello, цвет синий, добавь на view." - Декларативный (SwiftUI): "Здесь должен быть синий текст
Hello."
Пример на SwiftUI:
struct ContentView: View {
@State private var counter = 0 // Источник истины (source of truth)
var body: some View {
VStack {
Text("Счёт: (counter)") // UI автоматически обновляется при изменении counter
.foregroundColor(counter > 5 ? .red : .blue) // Декларативное условие
Button("Увеличить") {
counter += 1 // Изменение состояния
}
}
}
}
Ключевые принципы и преимущества:
- Единый источник истины: UI является функцией от состояния (
@State,@ObservedObject). - Автоматическое обновление: система сама вычисляет необходимые изменения в UI при изменении состояния.
- Композиция: интерфейс строится из небольших, переиспользуемых компонентов.
- Сокращение кода: отсутствие boilerplate-кода для обновлений и анимаций.
- Повышение читаемости: код ближе к описанию конечного результата.