[iOS] 새로운 API 기능 도입하기

각 SDK 릴리스에는 새로운 기술, 프레임워크 및 언어 기능이 포함되어 있습니다. 이 문서에서는 이전 버전의 운영 체제와의 호환성을 유지하면서 새로운 API를 채택하는 방법에 대해 알아봅니다.
Apr 24, 2024
[iOS] 새로운 API 기능 도입하기

배포 대상 설정

Xcode 프로젝트의 각 대상에는 앱을 실행할 수 있는 운영 체제의 가장 초기 버전을 지정하는 배포 대상 설정이 있습니다. 이 설정은 앱 개발에 사용할 수 있는 프레임워크 버전을 결정합니다. 새로운 기능이나 프레임워크를 채택하려는 경우 이 설정을 변경할 수 있습니다.

Xcode 14에서 생성한 Scrumdinger 프로젝트의 배포 대상은 iOS 16.0입니다. iOS 16.0 이상을 실행하는 모든 기기에서 앱을 실행할 수 있습니다.

조직에서 iOS 15.x를 실행하는 구형 기기를 사용한다고 가정해 보겠습니다. 이러한 기기에서 실행되도록 앱을 빌드하려면 배포 대상을 iOS 15.0으로 설정해야 합니다. 탐색 계층 구조 만들기에서 추가한 NavigationStack은 iOS 16.0에 도입되었습니다. 배포 대상을 iOS 15.0으로 설정하면 내비게이션 스택을 사용한 모든 곳에서 컴파일러 오류가 발생합니다. 내비게이션뷰는 iOS 16.0에서 더 이상 사용되지 않으므로 내비게이션스택을 완전히 피하는 것이 최선의 해결책은 아닙니다.

가장 좋은 해결책은 앱을 실행하는 iOS 버전에 따라 뷰를 선택하는 것입니다. iOS 15.x에서 실행되는 앱은 내비게이션뷰를 사용하고, iOS 16.0 이상에서 실행되는 앱은 최신 내비게이션스택을 사용하도록 앱을 작성하세요. 이렇게 하면 이전 기기와의 호환성을 유지하면서 앱을 실행하는 기기에서 사용할 수 있는 최신 API를 사용할 수 있습니다. 이 작업은 가용성 조건으로 수행할 수 있습니다.

운영 체제 버전 확인

available조건을 사용하여 이전 버전의 운영 체제와의 하위 호환성을 유지할 수 있습니다. #available을 사용하면 특정 버전의 운영 체제에 대한 코드를 실행할 수 있습니다. 다음 예제의 보기는 iOS 16.0 이상을 실행하는 기기에서만 NavigationStack을 사용합니다

@available속성을 사용하여 특정 운영 체제에서 전체 유형을 사용 가능한 것으로 표시할 수 있습니다. 아래 구조를 표시하면 사용 가능성 확인 없이 뷰 본문 내에서 NavigationStack을 사용할 수 있습니다.

위의 ScrumsStackView 선언에 가용성 어노테이션을 추가하면 뷰 본문에서 NavigationStack을 사용할 수 있습니다. 그러나 이 어노테이션으로 인해 iOS 15.x에서 실행할 때 ScrumsStackView를 사용하는 데 오류가 발생하기도 합니다.

프로젝트에서 ScrumsStackView를 사용하려면 첫 번째 예제에서 확인한 방법과 유사하게 가용성을 확인하세요.

Swift 가용성 기능을 사용하면 여러 버전의 iOS에서 실행되는 앱에 대해 단일 코드 기반을 유지할 수 있습니다. Apple이 새로운 버전의 iOS를 출시하면 이전 기기와의 호환성을 유지하면서 최신 API를 사용하도록 코드를 발전시킬 수 있습니다.

Adopting new API features 번역 포스팅입니다.

Share article

More articles

See more posts

code-with-me