Основные инструменты, которые предоставляет Swift — это атрибуты @available и #available, которые позволяют тебе условно объявлять или выполнять код в зависимости от версии iOS во время выполнения или компиляции.
Всегда определяй минимальную целевую версию развёртывания в настройках проекта. Это говорит компилятору, какие версии iOS должно поддерживать твоё приложение, и выводит предупреждения, когда ты используешь API, недоступные в более старых версиях.
Используй #available в if или guard выражениях, чтобы разветвить логику в зависимости от версии запущенной ОС:
if #available(iOS 16, *) {
// Используй новый API
} else {
// Предоставь fallback для старых версий
}
Используй атрибут @available в объявлениях, чтобы ограничить типы или методы определёнными версиями:
@available(iOS 16, *)
func useNewFeature() { ... }
Никогда не предполагай, что последние API доступны. Для каждой новой возможности, которую ты используешь, предоставь fallback-реализацию, которая обеспечит эквивалентное или упрощённое — но рабочее — поведение на старых версиях iOS. Это гарантирует единообразный пользовательский опыт на всём диапазоне поддерживаемых версий.
#available для проверок во время выполнения и @available для ограничений во время компиляцииАтрибут @available используется внутри if statements для выполнения проверок во время выполнения, которые определяют, какой путь кода выполняется в зависимости от текущей версии iOS.
Новый — ещё не проверен сообществом
Вы