SwiftUI действительно изменил то, как мы разрабатываем и думаем о приложениях для iOS. После дебюта на WWDC 2019, Apple пошла еще дальше, представив кучу новых представлений, оберток свойств и настраиваемых типов.
Однако декларативный фреймворк все еще находится на начальной стадии развития. Ошибки SwiftUI затрудняют его использование в производственной среде и нам еще предстоит увидеть много сложных вариантов использования SwiftUI в приложениях для iOS.
Тем не менее, многие разработчики поддержали идею и создали несколько потрясающих библиотек, которые вы можете подключить и использовать в своих проектах.
Давайте пройдемся по некоторым из них.
1. PermissionsSwiftUI
Apple, как известно, усложняет работу с разрешениями каждый год — будь то введение приблизительного доступа к местоположению, ограничения доступа к библиотеке фотографий или последнее разрешение на отслеживание рекламы в iOS 14.5.
Эта прозрачность разрешений является благом для потребителей и головной болью для рекламодателей.
Эта библиотека предлагает запрос всех 12 разрешений iOS в стиле Apple. Вы можете легко переключаться между ними, вызывая меню из bottom sheet.
Модификатор JMPermission может быть установлен в любом представлении для отображения модального окна, как показано ниже:
.JMPermissions(showModal: $showModal, for: [.photo, .microphone])
Библиотека позволяет установить собственный текст, изображения и иконки, чтобы дать пользователю лучший контекст.
2. Liquid
Сплеш скрины желательны в любом приложении. Часто команды нанимают дизайнеров для создания привлекательных картинок.
К счастью, у нас есть готовый пакет Swift, который делает именно это. Эта библиотека позволяет интегрировать жидкие анимированные представления в интерфейс SwiftUI, просто используя кастомный вью Liquid():
3. FontAwesomeSwiftUI
Иконки FontAwesome широко используются разработчиками в своих приложениях и на веб-сайтах. Тот факт, что иконки имеют векторную форму, означает, что при изменении размера качество не снижается.
Универсальная библиотека гарантирует, что можно изменять значки своих Android, iOS и веб-приложений на лету из облака.
Эта библиотека помогает добавить значки FontAwesome 5 в ваши приложения SwiftUI, используя возможности перечислений. Для приложений iOS все, что вам нужно сделать, это:
FontAwesome.register ()
После этого вы можете установить векторные иконки в Text SwiftUI, как показано ниже:
Text(AwesomeIcon.btc.rawValue) .font(.awesome(style: .brand, size: 20)) .foregroundColor(.white)
4. StepperView
Степперы сегодня являются жизненно важным компонентом приложений. Они помогают показывать пользователю ход выполнения действия в режиме реального времени. К сожалению, у SwiftUI на данный момент нет родного представления степпера.
Но эта библиотека стремится упростить разработку, предоставляя готовую поддержку “пошагового” вида. Вы можете быстро создавать вертикальные и горизонтальные степперы с пользовательскими представлениями индикаторов, типами, линиями и выравниванием текста.
5.PopupView
В отличие от Android, встроенные тосты отсутствуют в iOS. Несмотря на появление iOS 14, в которой есть уведомление «AirPods Connected», этот UI практически отсутствует в системе Apple.
PopupView — это просто библиотека для решения этой проблемы. Как следует из названия, этот пакет помогает отображать тосты и всплывающие сообщения в интерфейсе SwiftUI.
6. AlertX
Всплывающие окна отличаются от диалоговых окон предупреждений, поскольку для первых не требуются кнопки и их можно закрыть автоматически.
Если оповещения iOS по умолчанию выглядят слишком скучно, вот библиотека, которая сделает их намного интереснее.
AlertX — помогает легко создавать красивые пользовательские оповещения в SwiftUI. От изменения фона до добавления закругленных углов, нескольких кнопок и анимации — есть длинный список вещей, которых вы можете достичь с помощью этой библиотеки.
7. ActivityIndicatorView
SwiftUI в iOS 14 принес несколько улучшений. Однако в нем по-прежнему отсутствует собственный индикатор активности. Правда, в какой-то степени можно использовать ProgressView для отображения загрузки. С другой стороны, его нельзя настраивать.
Библиотека ActivityIndicatorView представляет множество предустановленных индикаторов загрузки, созданных в SwiftUI. От выбора типа индикатора до добавления цветов и градиентов — вы можете выбрать множество вещей, чтобы сделать свой любимый индикатор прогресса.
8. MarkdownUI
Мы все любим Markdown-редакторы, не так ли? Они позволяют писать форматированный текст со стандартным синтаксисом.
В SwiftUI нет этого важного инструмента, и хотя можно использовать UITextView с помощью протокола UIViewRepresentable, лучше задействовать готовый редактор.
И снова у нас есть библиотека для рендеринга Markdown-текста в SwiftUI. Вы можете использовать полужирный шрифт, курсив, код и многое другое. Вот его синтаксис:
Markdown( #""" Make some words **bold** and other words *italic* with Markdown. ## Inline code Wrap them in backticks: `var example = true`. """# )
9. SlideOverCard
Карточка, которая появляется в нижней части экрана — это шаблон, который все чаще используется разработчиками iOS. Это неудивительно, поскольку он используется по умолчанию в пользовательском интерфейсе Apple HomeKit и обмена WiFi.
SlideOverCard — это библиотека, которая привносит этот шаблон в SwiftUI. Вы можете использовать либо SlideOverCardView, либо модификатор представления slideOverCard с необязательными логическими параметрами для дополнительных представлений, таких как displayExitButton, dragEnabled и dragToDismiss.
10. SwiftUICharts
Графики сегодня являются основным компонентом большинства приложений. Помимо приятных для глаза визуальных эффектов, они полезны для отображения данных, а также для различных статистических инструментов.
Эта библиотека позволяет быстро создавать линейные, вертикальные и горизонтальные гистограммы в SwiftUI-приложениях. В качестве бонуса она также поддерживает доступность.
Заключение
В программировании есть популярная цитата: «Не изобретайте велосипед, если не планируете больше узнать о колесах». Это, безусловно, относится к библиотекам.
Когда вы создаете сложные проекты и у вас мало времени, наличие готовых библиотек, безусловно, ускорит вашу разработку и гарантирует, что вы не будете тратить время на то, что уже было решено кем-то другим.
Я надеюсь, что этот набор SwiftUI-библиотек вдохновит вас на создание более удивительных приложений для iOS и, возможно, на работу в проектах с открытым исходным кодом.
Вот и все. Спасибо за прочтение.
Больше библиотек и кода — в нашем разделе!