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.
Удачного кодирования!