
Эдуард Еленский
Компания: Ozon
В жизни каждого, кто работает с SwiftUI, наступает момент, когда он сталкивается с задачей создания кастомных контейнеров. Однако непросто сделать их такими же интуитивными, как нативные. В докладе разберемся, почему предоставленные Apple подходы не покрывают задачи этого рода, и как в их решении помогут полуприватные инструменты SwiftUI.
Рассмотрим, почему публичные механизмы не решают нашу задачу. Для более глубокой кастомизации углубимся в ViewBuilder, исследуем TupleView и Group и заметим особенность работы модификаторов и контейнеров с ними.
Далее рассмотрим, как в SwiftUI реализован VStack, где впервые увидим использование _VariadicView API. Примеры использования _VariadicView в swiftinterface-файле SwiftUI дадут понимание того, как можно использовать это API под свои нужды. Обсудим безопасность использования этого инструмента в продакшене.
Покажу пример использования изученного и разберу, как Apple закрыла эту потребность разработчиков в iOS 18.
Завершим юзкейсами, где такие решения могут быть полезны — например, для кастомных контейнеров в дизайн-системах.
Компания: Ozon