{"id":13657,"url":"\/distributions\/13657\/click?bit=1&hash=566d340c54b853eeeda9db62318bf71978b30f8d7cf7d9099caa6c0c5d13ed5b","title":"\u041a\u0430\u043a \u0434\u0438\u0432\u0435\u0440\u0441\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u0440\u0442\u0444\u0435\u043b\u044c? \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u00ab\u0437\u0435\u043b\u0451\u043d\u044b\u043c\u0438\u00bb \u043e\u0431\u043b\u0438\u0433\u0430\u0446\u0438\u044f\u043c\u0438","buttonText":"\u0423\u0437\u043d\u0430\u0442\u044c","imageUuid":"d34c044f-5676-50b8-b978-ab47dfaf9fed","isPaidAndBannersEnabled":false}
Anton Vilyams

Почему в 2022 году вы просто обязаны создать ваше новое iOS-приложение используя SwiftUI

Все данные описанные в данной статье получены на реальном опыте работы продуктовой команды внутри крупного холдинга.

Прошло 3 года с того момента, как Apple представили фреймворк SwiftUI на WWDC 2019. SwiftUI (в связке с Combine) предлагался, как более “легкая” и “нативная” альтернатива популярному тогда RxSwift, и за это время стал “платформой по умолчанию” при создании нового проекта в Xcode.

Переход от UIKit к SwiftUI

Чтобы использовать новую технологию, естественно, сначала ее нужно изучить. Как показал опыт нашей команды, на то, чтобы достаточно хорошо ориентироваться в SwiftUI iOS-разработчику уровня middle потребовалось примерно две недели погружения в новую среду, iOS-разработчику уровня senior - около недели. При этом нужно учитывать, что помимо Swift (а также Objective-C) и UIKit, у членов команды был определенный опыт работы с RxSwift, однако, отсутствовал какой-либо опыт SwiftUI в продакшн проектах.

Скорость разработки

Необходимость использовать меньшее, по сравнению со связкой Swift+UIKit, количество кода для равноценных задач, а также возможность мгновенного мониторинга изменений в Previews (сочетание Option+⌘+P всё ещё необходимо) при верстке UI, дает серьезный прирост в общей скорости разработки.

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

Введение же в проект таких возможностей SwiftUI, как @ObservableObject, @Published, @State, @Binding и др. значительно упрощает работу с данными и состояниями.

Добавим сюда быструю компиляцию и сборку (подготовка тестового билда проекта на SwiftUI происходит примерно в 6 раз быстрее, чем этого же проекта, написанного на Objective-C) и мы получаем то, чем хочется пользоваться прямо сейчас.

Пользователи

В первое время, после своего выхода SwiftUI имел один существенный минус - это новая технология, и, как следствие, она поддерживалась только новой версией iOS.

Однако, сейчас то оптимальное время, когда SwiftUI уже набрал необходимую для крупных проектов массу возможностей, и используя iOS 15, как deployment target проекта, вы получаете хороший баланс фич по отношению к количеству аудитории. В iOS 15 мы имеем тот же набор поддерживаемых девайсов, что и в iOS 14, а также в iOS 13, что доводит потенциальный adoption-уровень свыше 97% от всех пользователей iOS (по данным Mixpanel).

Будущее

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

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

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

0
Комментарии
Читать все 0 комментариев
null