TGViewer
EasySwift iOS🍏 EasySwift iOS🍏 @swift_ioss · 2.82K subscribers
Post #815 618
Backporting SwiftUI APIs

❓ Как безопасно «доделать» новые SwiftUI API из iOS 27.1 для старых таргетов с помощью паттерна backport?
Два подхода:
➡️ отдельный namespaced тип Backport (через .backport)
➡️ расширение View с пометками @available и префиксом ported
Оба варианта делают availability проверку за вас - на новых платформах вызывается нативный modifier toolbarVerticalBehavior, на старых просто возвращается исходный view (или можно добавить собственную реализацию).

👀 Код показывает реализацию Backport<Content> и функцию toolbarVerticalBehavior, которая внутри использует if #available(anyAppleOS 27.1, *) и вызывает нативный modifier только при поддержке. Второй вариант помечен @available(iOS, introduced: 26.0, deprecated: 27.1, obsoleted: 28.0) - это полезно, потому что компилятор будет предупреждать вас, когда портируемая версия станет ненужной и её можно удалить.

✔️ Это подходит для небольших API, которые можно безопасно игнорировать на старых версиях или эмулировать простым поведением. Если поведение критично отличается на старых ОС, придётся реализовать совместимый код
  • 👍 1
More from @swift_ioss
  1. Oct 9, 2026TLS certificate validation on iOS ℹ️ Если вы не знаете, что такое TLS и проверка сертифика…
  2. Oct 7, 2026Rich Push Notifications в iOS: Notification Service Extension, Notification Content Extens…
  3. Oct 5, 2026Применение gRPC при разработке приложений под iOS ❓ Хороший туториал по gRPC. В целом расс…
  4. Oct 2, 2026Letting AI See SwiftUI: Xcode Preview MCP in Practice — Pitfalls and Hopes 🆕 В Xcode 26.3…
  5. Sep 28, 2026Post #814
  6. Sep 25, 2026ArrangementView: Think Before You Arrange 👀 Автор пробует новый ArrangementView в Xcode 2…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →