Что такое декларативный подход в iOS-разработке?

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

Ответ

Декларативный подход — это парадигма, при которой код описывает что должно быть (желаемый результат), а не как этого достичь (последовательность шагов). В 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 // Изменение состояния
            }
        }
    }
}

Ключевые принципы и преимущества:

  1. Единый источник истины: UI является функцией от состояния (@State, @ObservedObject).
  2. Автоматическое обновление: система сама вычисляет необходимые изменения в UI при изменении состояния.
  3. Композиция: интерфейс строится из небольших, переиспользуемых компонентов.
  4. Сокращение кода: отсутствие boilerplate-кода для обновлений и анимаций.
  5. Повышение читаемости: код ближе к описанию конечного результата.