Программирование SwiftUI

Чего ожидать от нового фреймворка Apple

SwiftUIопределенно знаменует собой начало новой эры в истории программирования Apple. В последние годы мы стали свидетелями распространения фреймворков, основанных на концепции декларативных интерфейсов и реактивного программирования; веб — яркий пример этого явления, но есть и другие примечательные примеры в области мобильной разработки. Нас постоянно забавляют маркетинговые сообщения, в которых говорится, как:

«Поддержание единой кодовой базы для всех платформ — лучший способ повысить производительность бизнеса и предоставить эффективные решения для наших клиентов».

React Native (Facebook) и Flutter (Google) — отличный пример этого предложения. Целью данной статьи не является сравнительный анализ этих технологий; смысл, ради которого были приведены эти два примера, состоит в том, чтобы показать, как тенденция последних лет в программном обеспечении движется в направлении, отличном от того, к которому мы привыкли до сих пор.

Наши устройства становятся все более мощными, и эта мощь находит свое естественное применение во все более изощренных и сложных интерфейсах и парадигмах взаимодействия. В прошлом году я написал статью о выпуске iPhone X и о том чувстве текучести, которое вызвало у меня это новое устройство в сочетании с последними стилистическими решениями iOS 11 и 12.

Плавная, непрерывная и последовательная анимация, жесты объединены с навигацией. Это всего лишь несколько примеров того, что я пытаюсь донести до вас: планка ожиданий снова поднялась, и эти новые функции нелегко выразить с помощью традиционной структуры.

Дискретная природа императивных языков вызывает большие трудности по сравнению с чувством непрерывности и текучести, навязываемым новыми парадигмами интерфейса.

Apple всегда была очень консервативной компанией (Objective-C продолжает работать и компилироваться достаточно хорошо) в отношении своих сред разработки и вообще в отношении всего своего экосистема.

Появление Swift 5 лет назад с его новыми парадигмами и всплеском современности уже стало важным признаком перемен в Купертино. Но было ясно, что этого недостаточно. Итак, к удивлению всех, Apple отвечает другим гигантам Интернета: SwiftUI.

SwiftUI — это декларативная компонентно-ориентированная платформа. Поэтому давайте забудем шаблон MVC, в котором контроллеры выступали посредниками между представлениями и моделями. Все, что у нас есть в SwiftUI, — это состояние и представление, полученное из состояния. Как только статус изменяется, SwiftUI перестраивает интерфейс с учетом этих изменений.

В серии кросс-постов между моим личным сайтом и Медиумом я постараюсь поделиться своими мыслями и личными путевыми заметками, во время изучения этого нового и в какой-то степени загадочного фреймворка.

Я подумал, что это может быть полезно, в надежде, что это может стать отправной точкой для изучения чего-то нового и действительно захватывающего.


Удачного кодирования!