- PVSM.RU - https://www.pvsm.ru -

Из огромного количества iOS-библиотек нет особого смысла составлять какие-то рейтинги. Поэтому просто представляем двадцатку эффектных/полезных инструментов для тех, кто пишет приложения под гаджеты Apple.
Все анимации являются ссылками на свои полноразмерные версии.
[1]
Перевод сделан при поддержке компании EDISON.Мы занимаемся доработкой и сопровождением сайтов на 1С-Битрикс [2], а также разработкой мобильных приложений Android и iOS [3].
[6]![]()
[7]Начнем с Gmenu, мощной библиотеки, созданной в Swift 5.1 и реализованной с использованием SwiftUI. Это переработанное меню, созданное для приложения Gmail, но его можно легко внедрить в ваш проект!
Начиная с кнопки в верхней панели поиска, эта библиотека показывает меню с большими значками и прокручивает строки (в табличном виде) вниз.![]()
ImageViewer.swift — это простая в использовании библиотека, используемая для галереи изображений.
Поддерживает «ночной» режим, альбомную ориентацию, перетаскивание.
[12]
[13]SideMenu — боковое меню с настраиваемыми элементами управления. Может быть реализовано в раскадровке или программно, доступно восемь разных стилей анимации.
Настраиваемо, поддерживается жест «смахивание» для перехода между боковыми меню в обе стороны.![]()

SPPermissions — API, запрашивающий у пользователя разрешения. Три разных режима: список, диалог и нативный.
Интерфейс в стиле Apple, поддерживает iPhone, iPad, «ночной» режим и tvOS.
Поддерживаемые запросы на разрешение: • Камера • Библиотека фотографий • Уведомления • Локации • Микрофон • Календарь • Контакты • Движения • Медиа • Голосовые сообщения • Bluetooth
[15]
Наконец, SPStorkController — контроллер, созданный в Swift, похожий на приложения Apple Music, Mail и Podcast.
Он просто добавляет кнопку закрытия слева от панели навигации и стрелку в середине.![]()
[18]
Для затравки — PhoneNumberKit, облегченная iOS-библиотека, полностью созданная в Swift 5.0, для анализа, форматирования и проверки международных телефонных номеров.
И впрямь проста в использовании — для работы нужны только такие строки кода:![]()
import PhoneNumberKit
let phoneNumberKit = PhoneNumberKit()
do {
let phoneNumber = try phoneNumberKit.parse("+39 3 12 542644")
let phoneNumberCustomDefaultRegion = try phoneNumberKit.parse("+39 23 2245 23442", withRegion: "IT", ignoreType: true)
}
catch {
print("Generic parser error")
}
Эта библиотека также включает в себя красивый PhoneNumberTextField, который можно настроить следующими способами:
withFlag покажет флаг страны для текущего региона. Флаг будет отображаться в левой части текстового поля.withExamplePlaceholder будет использовать атрибут attributePlace для показа номера примера для currentRegion.
[20]
DateScrollPicker — полностью настраиваемое представление даты с функцией выбора, написанное в Swift 5.
Этот календарь содержит коллекцию с бесконечными ячейками дат и анимированным выбором, который можно настроить, выбрав собственный шрифт и цвет.
Например, легко настроить количество отображаемых дней, отметить формат даты, изменить шрифт/цвет и настроить многие другие параметры.![]()

PostalCodeValidator является валидатором для почтовых индексов, поддерживающий более 200 регионов.
Всего несколько строк кода, чтобы заработало:![]()
import Foundation
import PostalCodeValidator
if let validator = PostalCodeValidator(locale: .current) { // United States (IT)
validator.validate(postalCode: "43100")) // true
validator.validate(postalCode: "123456789")) // false
}
[23]
liquid-swipe — простой в использовании элемент управления swipe-container, который можно использовать в своём приложении — например, для первого запуска учебника или для адаптации.
Чтобы использовать его, необходимо создать экземпляр класса LiquidSwipeContainerController из раскадровки или кода, а затем установить источник данных в соответствии с классом LiquidSwipeContainerDataSource.
[25]
Напоследок в этом разделе, FloatingPanel — чистый и легкий пользовательский интерфейс с плавающей панелью для приложений iOS, таких как Apple Maps.
Библиотека предлагает множество настроек дизайна, например, маркер захвата, компоновку дескриптора захвата, заполнение контентом, а также размеры полей и события для жестов. Также можете создать дополнительную плавающую панель для деталей.
Для получения дополнительной информации есть официальный README [26].![]()
[29]
Тут перво-наперво идёт BSZoomGrid ScrollView, iOS-библиотека на Swift, предоставляющая представление с прокруткой сетки, содержащее весь массив изображений с возможностью масштабирования, наподобие приложения Apple Photos.
Библиотека активизирует изображение, выбранное пользователем долгим нажатием и жестом масштабирования. Интерфейс также можно настроить для изменения количества столбцов и строк.![]()
BouncyLayout — это библиотека, работающая с каждым UICollectionView и заставляющая ячейки подпрыгивать! Написано полностью на Swift, поддерживает горизонтальную и вертикальную прокрутку.
Что нужно сделать, чтобы заработало — импортировать BouncyLayout, создать экземпляр данного класса и добавить в свой UICollectionView. Например:
import BouncyLayout
let collectionLayout = BouncyLayout()
UICollectionView(frame: .zero, collectionViewLayout: collectionLayout)
[35]
Gliding-collection — это красивый, настраиваемый вид горизонтальной и вертикальной прокрутки, реализованный в UICollectionView.
Чтобы использовать его, необходимо создать класс контроллера представления, добавить UIView на Storyboard и изменить класс на GlidingCollection, затем подключить представление к вашему коду с помощью @IBOutlet, настроить контроллер представления на GlidingCollectionDatasource и настроить контроллер представления соответстввующий UICollectionViewDatasource.
Если вам нужна дополнительная информация о том, как реализовать эту библиотеку, обратитесь к разделу «как использовать [36]» на Github.![]()
[38]
CarLensCollectionViewLayout — простой в использовании макет представления коллекции, который позволяет создавать анимацию в виде карты в UICollectionView с помощью нескольких строк кода!
Вы также можете настроить макет, изменив параметры, доступные в CarLensCollectionViewLayoutOptions. Например:
MinimumSpacing — минимальное расстояние между ячейками.
DecelerationRate — замедление для прокрутки.
ShouldShowScrollIndicator — нужен ли индикатор прокрутки.
Item Size — Устанавливает размер ячеек.![]()

И на закуску, Hue — универсальная утилита, которая понадобится для работы с цветом.
С этой библиотекой легко использовать шестнадцатеричный цвет, вычислять цветовые свойства (такие как .isDarkColor или .isBlackOrWhite), применять альфа-каналы, создавать градиенты, получать синий/зеленый/красный компонент из цвета и многое другое!
Больше примеров — на официальном репо [39].![]()
Вначале TKSwitcherCollection, коллекция анимированных управляющих переключателей.
На данный момент доступно четыре различных переключателя:
TKSimpleSwitch → Традиционный вертикальный переключатель.
TKExchangeSwitch → Переключатель, меняющий форму при касании.
TKSmileSwitch → Эмо-переключатель (грустный/весёлый).
TKLiquidSwitch → Переключатель с анимацией в жидком стиле.
[45]
CocoaTextField — небольшая библиотека для работы с текстовыми полями. Может использоваться как программно, так и с раскадровками.
Настраиваются активный/неактивный цвет подсказок, цвет фона по умолчанию или в фокусе, цвета границ и ошибок и т.п. Если использовать программно, пример ниже:![]()
let v = CocoaTextField()
v.inactiveHintColor = UIColor(red: 145/255, green: 222/255, blue: 233/255, alpha: 1)
v.activeHintColor = UIColor(red: 777/255, green: 122/255, blue: 187/255, alpha: 1)
v.focusedBackgroundColor = UIColor(red: 200/255, green: 230/255, blue: 250/255, alpha: 1)
v.defaultBackgroundColor = UIColor(red: 250/255, green: 250/255, blue: 250/255, alpha: 1)
v.borderColor = UIColor(red: 239/255, green: 239/255, blue: 239/255, alpha: 1)
v.errorColor = UIColor(red: 231/255, green: 76/255, blue: 60/255, alpha: 0.7)
v.borderWidth = 3
v.cornerRadius = 14
[47]
EXPANDING COLLECTION — это Swift-библиотека, анимирующая дизайн UI-контроллера.
Чтобы использовать, требуется импортировать expanding_collection, а затем создать UICollectionViewCell, наследуемый от BasePageCollectionCell. После чего добавляется FrontView и BackView. Тогда можно создать UIViewController, наследуемый от ExpandingViewController, зарегистрировать ячейку, созданную на первом шаге, и добавить UICollectionViewDataSource.
Более подробную информацию о реализации можно найти в официальном репозитории [46].![]()
[49]
ICollectionView не имеет анимационного эффекта перехода по умолчанию при прокрутке между элементами. AnimatedCollectionViewLayout — это подкласс UICollectionViewLayout, который добавляет пользовательские переходы и анимацию в UICollectionView, не затрагивая существующий код!
Чтобы использовать его, нужно импортировать библиотеку в проект. Затем создать объект AnimatedCollectionViewLayout, в нём настроить animator и назначить для UICollectionView.![]()
[51]
Завершаем CollectionView Slanted Layout — ещё один подкласс UICollectionViewLayout, позволяющий отображать наклонные ячейки в UICollectionView. Работает с каждым UICollectionView, хоть с горизонтальным хоть с вертикальным, с динамической высотой ячеек.
Что можно настроить: размер/направление/угол наклона, направление прокрутки, межстрочный интервал, размер элемента и возможность исключить наклон первой/последней ячейки.![]()
Автор: EdisonSoftware
Источник [52]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/ios/344424
Ссылки в тексте:
[1] Image: https://www.edsd.ru/
[2] доработкой и сопровождением сайтов на 1С-Битрикс: https://www.edsd.ru/ru/o_kompanii/novosti/dorabotka-i-soprovozhdenie-sajta-na-1s-bitriks
[3] разработкой мобильных приложений Android и iOS: https://www.edsd.ru/ru/proekty/mobilnye_prilozhenija
[4] оригинал: https://medium.com/better-programming/5-ios-libraries-to-improve-your-projects-user-experience-c079fb81416f
[5] I.1. Gmenu: https://github.com/amirdew/gmenu
[6] Image: https://habrastorage.org/webt/rc/eg/em/rcegemxyjttnsylq1yyc527rfxc.gif
[7] Image: https://habrastorage.org/webt/9i/gz/hh/9igzhhdqjsmqiad0d1haibued6k.gif
[8] I.2. ImageViewer.swift: https://github.com/michaelhenry/ImageViewer.swift
[9] Image: https://habrastorage.org/webt/_k/dq/r-/_kdqr-0f_u3plabnzcxtyvs91ie.gif
[10] Image: https://habrastorage.org/webt/8a/2q/fc/8a2qfcgateb-yji1qletzaf-jnw.gif
[11] I.3. SideMenu: https://github.com/jonkykong/SideMenu
[12] Image: https://habrastorage.org/webt/c4/os/7u/c4os7uf5xk3h3cc0r2ov_m6ziqw.gif
[13] Image: https://habrastorage.org/webt/fh/vl/qf/fhvlqfsx-xs9svelcdetawg7w5c.gif
[14] I.4. SPPermissions: https://github.com/ivanvorobei/SPPermissions
[15] Image: https://habrastorage.org/webt/tv/-9/ex/tv-9exhavx1pvuzklhkpi0-ao14.gif
[16] оригинал: https://medium.com/better-programming/5-ios-libraries-to-use-on-your-next-app-5510659afcdb
[17] II.1. PhoneNumberKit: https://github.com/marmelroy/PhoneNumberKit
[18] Image: https://habrastorage.org/webt/qo/2n/hy/qo2nhy2a4pqqms_fk1yggmqzqj0.gif
[19] II.2. DateScrollPicker: https://github.com/alberdev/DateScrollPicker
[20] Image: https://habrastorage.org/webt/hk/mk/xj/hkmkxjsogvlsyeamjdfmq7pgd28.gif
[21] II.3. PostalCodeValidator: https://github.com/FormatterKit/PostalCodeValidator
[22] II.4. liquid-swipe: https://github.com/Cuberto/liquid-swipe
[23] Image: https://habrastorage.org/webt/en/ig/kp/enigkpq0cdffozjebhhwzclin34.gif
[24] II.5. FloatingPanel: https://github.com/SCENEE/FloatingPanel
[25] Image: https://habrastorage.org/webt/e-/vi/zn/e-vizny6pp5nbh9jjft_fof5wx4.gif
[26] README: https://github.com/SCENEE/FloatingPanel#usage
[27] оригинал: https://medium.com/better-programming/5-ios-libraries-to-make-your-app-interface-better-fcbb2292e0e8
[28] III.1. BSZoomGridScrollView: https://github.com/boraseoksoon/BSZoomGridScrollView
[29] Image: https://habrastorage.org/webt/eb/xz/zv/ebxzzvidxg1w9fet7tso_wsqrt4.gif
[30] III.2. BouncyLayout: https://github.com/roberthein/BouncyLayout
[31] Image: https://habrastorage.org/webt/tk/ch/zw/tkchzw9xyjb_ahajr9vgbkyxc4y.gif
[32] Image: https://habrastorage.org/webt/mj/op/4j/mjop4ju6aw2uwc_vybnfv8otdvu.gif
[33] Image: https://habrastorage.org/webt/io/77/ou/io77ouffxb8povxxaginlfempky.gif
[34] III.3. Gliding Collection: https://github.com/Ramotion/gliding-collection
[35] Image: https://miro.medium.com/max/1780/1*sGPAt59i6b0OrfnWhdQTgw.gif
[36] как использовать: https://github.com/Ramotion/gliding-collection#how-to-use
[37] III.4. CarLensCollectionViewLayout: https://github.com/netguru/CarLensCollectionViewLayout
[38] Image: https://habrastorage.org/webt/g9/kp/2f/g9kp2fdwwrsogk6v1q7mpjcpz2e.gif
[39] III.5. Hue: https://github.com/zenangst/Hue
[40] оригинал: https://medium.com/better-programming/5-ios-libraries-to-make-your-app-s-ui-really-pop-7037998772af
[41] IV.1.TKSwitcherCollection: https://github.com/TBXark/TKSwitcherCollection
[42] Image: https://habrastorage.org/webt/l3/fd/c_/l3fdc_lap2ix_k7shk7vufwokv8.gif
[43] Image: https://habrastorage.org/webt/8a/1q/x8/8a1qx8vv-sru0btyufi8cggrsae.gif
[44] IV.2.CocoaTextField: https://github.com/edgar-zigis/CocoaTextField
[45] Image: https://habrastorage.org/webt/3u/k5/ov/3uk5ov1naoh5q5y-odn6nl9av70.gif
[46] IV.3.EXPANDING COLLECTION: https://github.com/Ramotion/expanding-collection
[47] Image: https://miro.medium.com/max/1780/1*46_ZCYtpI2nc7glQ_dEy8A.gif
[48] IV.4 AnimatedCollectionViewLayout: https://github.com/KelvinJin/AnimatedCollectionViewLayout
[49] Image: https://habrastorage.org/webt/oz/b9/ia/ozb9iacg0zta0rqzzsu7hotv7w0.gif
[50] IV.5.CollectionViewSlantedLayout: https://github.com/yacir/CollectionViewSlantedLayout
[51] Image: https://habrastorage.org/webt/er/t4/gb/ert4gbc-ebfzttupo1zalz4lzkc.gif
[52] Источник: https://habr.com/ru/post/485460/?utm_source=habrahabr&utm_medium=rss&utm_campaign=485460
Нажмите здесь для печати.