Наконец-то появился PagerView в чистом SwiftUI

Мы невероятно рады представить PagerTabStripView, самое мощное представление пейджера, полностью написанное на SwiftUI.

Создание готового к производству представления пейджера может занять несколько часов или даже дней у команды инженеров. Apple недавно представила пейджерную версию поверх своего собственного TabView, пытаясь удовлетворить растущий спрос на пейджерные представления, но ей не хватает гибкости. Это в значительной степени TabView с жестами смахивания. Его уровень настройки настолько ограничен, что в большинстве случаев он не работает.

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

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

В настоящее время почти каждое популярное приложение для iOS содержит представление пейджера, преимущества которого очевидны. Часто информационная архитектура приложения лучше всего работает с пейджером, поскольку легко переключаться между этой «одинаково актуальной» информацией. Такие приложения, как YouTube, Instagram, Spotify и Twitter, используют пейджеры для улучшения UX, но ни один из этих пейджеров нельзя создать с помощью родного TabView. Это неприятная вещь, но это правда.

Кроме того, мы являемся создателями XLPagerTabStrip, самого популярного пейджера в UIKit с почти 7 тысячами звезд на GitHub. Мы также заметили, что сообщество Apple постоянно ищет мощное представление пейджера SwiftUI, которое использует возможности SwiftUI, такие как декларативный синтаксис и способ обновления пользовательского интерфейса на основе состояния. Давайте будем честными, сложно найти повторно используемые компоненты SwiftUI, кроме тех, что разработаны Apple, поэтому мы приняли вызов поднять состояние компонентов сообщества, и PagerTabStripView — наш первый шаг.

С самого начала мы разрабатывали библиотеку таким образом, чтобы обеспечить те же возможности разработки, что и при использовании собственного компонента Apple, такого как TabView. Так что, если вы знакомы с TabView, PagerTabStripView покажется очень простым в использовании; просто добавьте дочерние представления и предоставьте представление pagerTabItem для каждого из них.

PagerTabStripView определяет пользовательский интерфейс с помощью элегантного декларативного подхода SwiftUI. С самого первого дня мы запретили наборы представлений для обновления пользовательского интерфейса.

Мы никогда не взаимодействуем с UIKit, что означает, что мы никуда не импортируем UIKit. Не используются протоколы UIViewRepresentable и UIViewControllerRepresentable.

Интерфейс PagerTabStripView выглядит как нативные интерфейсы компонентов SwiftUI. Он использует практически тот же синтаксис и подход для настройки представления пейджера, что и нативный TabView.

Переменные состояния и условные блоки используются для декларативного обновления отображаемых страниц в представлении пейджера. Конечно, вы также можете использовать SwiftUI ForEach (как показано в приведенном выше примере) для предоставления дочерних представлений по запросу из базового сборник, если хотите.

Связанные представления для выбора страницы жестом касания декларативно определяются с помощью модификатора представления для каждого представления дочерней страницы.

И многое другое вы узнаете в будущем 😜!

Мы считаем, что первый выпуск PagerTabStripView обладает супервозможностями, но мы планируем его дальнейшее усовершенствование. У нас есть планы интегрировать каждый стиль XLPagerTabStrip, помимо других функций.

Поскольку этот пост предназначен только для анонса библиотеки, если вы заинтересованы в использовании PagerTabStripView, я предлагаю вам ознакомиться с его Readme репозитория GitHub. Вы также можете запустить пример проекта, содержащийся в рабочей области PagerTabStripView, который демонстрирует различные представления пейджера.

Если вам понравилась библиотека, вы хотите внести свой вклад в проект или вам нужна помощь в ее использовании, напишите нам в Твиттере, прокомментируйте ниже или откройте вопрос или запрос на включение.

Вот и все, народ! Надеюсь, библиотека когда-нибудь спасет вас! Увидимся в следующем посте!

Давайте создадим продукт, который приносит результаты!

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

Первоначально опубликовано на https://blog.xmartlabs.com.