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

SwiftUI-Adapter: поддерживаем новые модификаторы SwiftUI на старых версиях iOS

SwiftUI-Adapter

SwiftUI-Adapter

Друзья, привет! Сегодня хочу представить вам свою библиотеку - SwiftUI-Adapter, которая избавит вас от головной боли при работе с новыми модификаторами SwiftUI.

Недавно я наткнулся на удобную Android-библиотеку, которая упрощает работу с разными версиями API и подумал: «Почему бы не сделать что-то подобное для SwiftUI?». После этого родилась идея разработать инструмент, который избавит вас от бесконечных проверок available и сделает код чище.

Ссылка на библиотеку в GitHub [1]

Установка библиотеки выполняется через Swift Package Manager.


Зачем это нужно?

Каждый раз, когда Apple выпускает новый модификатор в SwiftUI, нам приходится писать такие конструкции:

if #available(iOS 15.0, macOS 12.0, *) {
  YourView()
    .badge(5)
} else {
  YourView()
}

SwiftUI-Adapter делает эту рутину за вас! Просто используйте единый синтаксис – проверки версий останутся под капотом:

YourView()
  .adapter.badge(5)

Преимущества:

  • Не повлияет на производительность: все проверки производятся на этапе компиляции.

  • Чистая кодовая база: больше никаких available в каждом втором файле.

  • Простота интеграции: добавляется за пару минут через SPM.

  • Открытый исходный код: полная прозрачность, возможность вносить правки и участвовать в развитии.

  • Библиотека поддерживает модификаторы доступные с iOS 15 и выше, а так же macOS 12 и выше.


SwiftUI-Adapter поддерживает большое количество модификаторов, включая новые модификаторы, которые были добавлены в iOS 26 и macOS 26. Описание каждого из модификаторов доступно на странице в GitHub [1].

Ознакомиться с другими моими публикациями и разработками можно в моем телеграм канале [2].

Автор: den_apps

Источник [3]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/xcode/436394

Ссылки в тексте:

[1] Ссылка на библиотеку в GitHub: https://github.com/Wolfaks/SwiftUI-Adapter

[2] телеграм канале: https://t.me/hardworkerIT

[3] Источник: https://habr.com/ru/articles/965732/?utm_source=habrahabr&utm_medium=rss&utm_campaign=965732