SwiftUI был представлен на WWDC 2019 как декларативная платформа для создания приложений для всех платформ Apple. Это быстро стало предметом разговоров на WWDC и было поддержано сообществом iOS. Apple нарисовала картину того, что SwiftUI - это будущее разработки под iOS. В этом посте я расскажу, почему вам следует сосредоточиться на изучении SwiftUI в 2021 году.

Кривая обучения

По моему личному опыту, изучение SwiftUI было относительно простым процессом. Несмотря на то, что фреймворк полностью отличается от своего предшественника, UIKit, я смог поделиться своими знаниями о ReactJS и Flutter, чтобы чувствовать себя комфортно со SwiftUI. Если вы никогда раньше не работали в декларативном фреймворке, таком как React или Flutter, вы можете столкнуться с некоторыми трудностями при освоении фреймворка SwiftUI.

Изучение новых языков и платформ всегда окупается в долгосрочной перспективе

Предварительные просмотры в реальном времени

Одна из основных сильных сторон SwiftUI - мгновенное обновление пользовательского интерфейса. Это обрабатывается функцией под названием Xcode Live Previews. Предварительный просмотр в реальном времени дает вам почти мгновенный предварительный просмотр реального изображения. Это снимает временной барьер для запуска и ожидания запуска приложения в симуляторе. Это также помогает быстро создать прототип приложения, выполнив несколько итераций пользовательского интерфейса.

Функция обновления в реальном времени также существует в фреймворках React и Flutter и известна как «горячая перезагрузка».

Предварительные просмотры Xcode Live не идеальны, иногда они не обновляются без каких-либо полезных сообщений об ошибках. Консольные сообщения не появляются даже в режиме отладки. Хотя это и раздражает, этого можно ожидать от нового фреймворка, выпущенного всего несколько лет назад.

Жажда Скорости

Одно из главных преимуществ использования SwiftUI - скорость разработки пользовательского интерфейса. Есть несколько случаев, когда на создание интерфейса в SwiftUI у меня уходило всего 1-2 часа, а в UIKit - 5-6 часов. Это ускорение вызвано декларативным характером SwiftUI и Xcode Live Previews.

Управление исходным кодом

Если вы использовали раскадровки в UIKit, то знаете, насколько болезненно разрешать конфликты слияния в раскадровках. Файл раскадровки - это, по сути, XML-файл, и он может быть довольно беспорядочным, в зависимости от сложности интерфейса. Представления SwiftUI представляют собой простые структуры, поэтому управлять конфликтами в системе управления версиями намного проще.

Шаблоны проектирования

В отличие от UIKit, SwiftUI не начинается с шаблона проектирования MVC. Вы всегда можете реализовать архитектуру MVC для приложения SwiftUI, но это не рекомендуется. Основная причина в том, что есть другие шаблоны, которые больше подходят для создания приложений SwiftUI. Эти шаблоны включают шаблон проектирования MVVM и шаблон проектирования Redux. Вы можете узнать больше об этих паттернах на моих курсах.

Шаблон проектирования MVVM в SwiftUI

Компостируемая архитектура SwiftUI с использованием Redux

Стабильность

После внедрения сотен прототипов в SwiftUI я могу с уверенностью сказать, что в большинстве случаев он стабилен и работает должным образом. Да, в некоторых случаях SwiftUI не справится, и вам может понадобиться помощь UIKit. Но я обнаружил, что эти случаи не так распространены, как можно представить.

Приложения SwiftUI могут работать вместе с UIKit. Это означает, что у вас может быть приложение UIKit, которое состоит из нескольких представлений SwiftUI.

Принятие компании

Как и любая новая технология, внедрение SwiftUI в компании потребует времени. Я слышал о нескольких компаниях, которые начинают новые внутренние проекты, полностью написанные на SwiftUI. Некоторые компании интегрируют SwiftUI в свои приложения UIKit и создают новые интерфейсы явно в SwiftUI. Только время покажет, насколько быстро компании воспользуются подножкой SwiftUI.

Заключение

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

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

использованная литература

  1. SwiftUI - Декларативная структура для приложений Apple Devices
  2. Шаблон проектирования MVVM в SwiftUI
  3. Компостируемая архитектура SwiftUI с использованием Redux