추가 tvOS 10 프레임워크 변경 내용
TvOS의 주요 변경 사항 외에도 Apple은 tvOS 10의 여러 기존 프레임워크를 수정하고 개선했습니다.
AVFoundation Framework 추가
AVFoundation 프레임워크에는 다음과 같은 향상된 기능이 포함되어 있습니다.
- tvOS 10에서 앱은 더 이상 콘텐츠 형식에 따라 다른 AVPlayerItem 동작을 구현하지 않습니다. 속성을 설정
Rate
하기만 하면 AVFoundation은 중단 없이 재생에 충분한 콘텐츠를 사용할 수 있는 시기를 결정합니다. - 새
AVPlayerLooper
클래스를 사용하면 재생 중에 지정된 미디어를 더 쉽게 반복할 수 있습니다.
AVKit 프레임워크 개선 사항
AVKit 프레임워크에는 다음과 같은 향상된 기능이 포함되어 있습니다.
- 이제 앱에서 AVPlayerViewController의 건너뛰기 동작을 제어할 수 있으므로 건너뛰는 제스처가 재생 목록의 다음 항목으로 이동하거나 현재 항목 내에서 앞으로 이동할 수 있습니다.
핵심 데이터 향상
tvOS 10에는 핵심 데이터 프레임워크에 대한 다음과 같은 향상된 기능이 포함되어 있습니다.
- 루트 NSManagedObjectContext 개체는 serialization 없이 동시 오류 및 페치를 지원합니다.
- NSPersistentStoreCoordinator 클래스는 SQLite 데이터 저장소 풀에 기본.
- WAL 저널 모드에서 SQLite 데이터 저장소가 있는 NSManagedObjectContext 개체는 MOC(Managed Object Contexts)를 특정 데이터베이스 버전에 고정하여 나중에 트랜잭션을 페치하고 오류를 발생시킬 수 있는 새로운 쿼리 생성 기능을 지원합니다.
- 상위 수준을
NSPersistenceContainer
사용하여 NSManagedObjectModel 및 기타 핵심 데이터 구성 리소스를 참조NSPersistentStoreCoordinator
합니다. - 페치를
NSManagedObject
수행하고 서브클래스를 쉽게 만들 수 있도록 몇 가지 새로운 편의 메서드가 추가되었습니다.
자세한 내용은 Apple의 핵심 데이터 프레임워크 참조를 참조하세요.
핵심 그래픽 향상
tvOS 10에는 Core 그래픽 프레임워크에 대한 다음과 같은 향상된 기능이 포함되어 있습니다.
- 새 CGColorConverterRef 클래스를 사용하여 일련의 색 변환을 수행할 수 있습니다.
핵심 이미지 향상
tvOS 10은 핵심 이미지 프레임워크를 다음과 같이 향상시킵니다.
ImageWithExtent
CIFilter 클래스의 메서드를 사용하여 필터 작업에 사용자 지정 처리를 삽입할 수 있습니다. 코어 이미지는 출력 또는 디스플레이에 대한 이미지를 처리할 때 필터 간에 지정된 콜백을 호출합니다.- 이제 앱은 처리 전후에 색 공간 내부 및 외부로 변환하여 Core Image 컨텍스트의 작업 색 공간 외부에 있는 색 공간에서 이미지를 처리할 수 있습니다.
- 개체의 렌더링(Core Image 이미지 저장소에서 지원되는 경우)
UIImageView
에는 몇 가지 렌더링 성능이 향상되었습니다UIImage
. UIImage
와이드 영역 태그가 지정된 개체는 넓은 색을 지원하는 iOS 디바이스의 개체에서UIImageView
와이드 영역 색으로 렌더링됩니다.- 코어 이미지 커널 코드는 이제 특정 픽셀 출력 형식을 요청할 수 있습니다.
또한 다음과 같은 새로운 핵심 이미지 필터가 추가되었습니다.
CINinePartTiled
CINinePartStretched
CIHueSaturationValueGradient
CIEdgePreserveUpsampleFilter
CIClamp
파운데이션 향상
tvOS 10용 Foundation 프레임워크에 다음과 같은 향상된 기능이 적용되었습니다.
- 새 NSDateInterval 클래스를 사용하여 간격을 비교하고 간격 교차에 대한 테스트를 위해 기간과 같은 날짜 및 시간 간격 계산을 수행합니다.
- 로컬 정보와 사용 가능한 표시 형식을 얻기 위해 NSLocal 클래스에 몇 가지 새로운 속성이 추가되었습니다.
- 새 NSMeasurement 클래스를 사용하여 다른 UOM(단위)을 변환하거나 다른 UOM의 값에 대한 계산을 수행합니다.
- 새 NSMeasurementFormatter 클래스를 사용하여 최종 사용자에게 표시할 지역화된 측정값의 서식을 지정합니다.
- 새 NSUnit 및 NSDimension 클래스를 사용하여 특정 UOM을 나타냅니다.
GameKit 향상된 기능
tvOS 10에서 GameKit 프레임워크에 다음과 같은 향상된 기능이 적용되었습니다.
- GKCloudPlayer 클래스에서 새 iCloud 전용 계정 유형을 구현했습니다.
- 새로운 GKGameSession 클래스는 Game Center에서 영구 데이터 스토리지를 관리하기 위한 일반화된 솔루션을 제공합니다.
GKGameSession
기본 플레이어 목록을 확인하고 앱은 참가자 날짜가 플레이어 간에 저장, 검색 또는 교환되는 방법과 시기를 구현하는 책임 있는 형식입니다. 대부분의 경우 게임 세션은 기존 턴 기반 일치, 실시간 일치 또는 영구 게임 저장 방법을 대체할 수 있습니다.
GameplayKit 향상된 기능
tvOS 10에서 GameplayKit 프레임워크에 다음과 같은 향상된 기능이 적용되었습니다.
- 절차적 노이즈 생성이 추가되었으며 자연스러운 질감의 리얼리즘을 향상시키고 카메라 움직임에 리얼리즘을 추가하고 풍부한 게임 세계를 생성하는 데 사용할 수 있습니다.
- 공간 분할을 사용하여 효율적인 검색을 위해 게임 세계 데이터를 분할합니다.
- 철저한 이동 계산을 위해 새로운 몬테카를로 전략가(GKMonteCarloStrategist)가 추가되었습니다.
- 게임 빌드 AI를 향상시키기 위해 새로운 의사 결정 트리 API(GKDecisionTree 및 GKDecisionNode)가 추가되었습니다.
- 새 GKAgent3D 및 GKGraphNode3D 클래스를 사용하여 기존 에이전트 및 경로 찾기 동작에 3D 지원이 추가되었습니다.
- 새 GKMeshGraph 클래스를 사용하여 자연스러운 고성능 경로를 제공합니다.
- 새로운 GKScene 및 GKSKNodeComponent 클래스를 사용하면 GameplayKit과 SpriteKit를 그 어느 때보다 쉽게 결합할 수 있습니다.
금속 기능 향상
tvOS 10의 Metal 프레임워크에 다음과 같은 향상된 기능이 적용되었습니다.
- 이제 3D 앱과 게임은 테셀레이션을 사용하여 GPU를 통해 복잡한 장면과 기하 도형을 효율적으로 렌더링할 수 있습니다.
- 함수 특수화를 사용하여 장면에 대해 매우 최적화된 재질 및 조명 조합 함수 컬렉션을 만듭니다.
- 리소스 힙 및 메모리 없는 렌더링 대상을 사용하여 Metal 기반 앱의 성능을 최적화하기 위해 리소스 할당에 대한 세분화된 제어를 제공합니다.
자세한 내용은 Apple의 금속 프로그래밍 가이드를 참조하세요.
금속 성능 셰이더 향상된 기능
tvOS 10의 금속 성능 셰이더 프레임워크에 다음과 같은 향상된 기능이 적용되었습니다.
- 앱이 색 공간 변환 및 신경망 작업과 같은 고도로 최적화된 데이터 병렬 계산을 활용할 수 있도록 금속 성능 셰이더 프레임워크에 많은 새 커널이 추가되었습니다.
ModelIO 향상된 기능
tvOS 10에서 ModelIO 프레임워크에 다음과 같은 향상된 기능이 적용되었습니다.
- 이제 USD 파일 형식이 지원됩니다.
- 새
MDLMaterialPropertyGraph
클래스를 사용하여 모델에 대한 런타임 변경 내용을 쉽게 지원할 수 있습니다. - 서명된 거리 필드 지원이 MDLVoxelArray 클래스에 추가되었습니다.
- 새
MDLLightProbeIrradianceDataSource
클래스를 사용하여 광원 프로브 배치를 지원합니다.
SceneKit 향상된 기능
tvOS 10의 SceneKit 프레임워크에 다음과 같은 향상된 기능이 적용되었습니다.
- 이제 SceneKit에는 더 간단한 자산 작성을 통해 보다 현실적인 결과를 위한 새로운 PBR(물리적 기반 렌더링) 시스템이 포함되어 있습니다.
- 새로운 SCNLightingModelPhysicallyBased 음영 모델을 사용하여 세 가지 기본 속성(
Diffuse
Metalness
및Roughness
)만 요구하면서 광범위한 사실적인 음영 효과를 제공합니다. - PBR 음영은 환경 기반 조명에서 가장 잘 작동하므로 이 속성을 사용하여
LightingEnvironment
이미지 기반 조명을 황갈색 전체 장면에 할당합니다. IESProfileURL
이 속성을 사용하여 강도(루멘) 및 색 온도(켈빈도)와 같은 실제 값에 대한 조명 기반을 정의하는 실제 조명 기구를 가져옵니다.- SCN카메라 클래스는 HDR 기능 및 효과를 사용하여 더 큰 리얼리즘을 제공할 수 있습니다. 적응형 노출을 사용하여 자동 효과를 만들거나 비네팅, 컬러 프링 및 색 채점 기능을 사용하여 게임에 필름 효과를 추가합니다.
- PBR 및 HDR 카메라 기능 모두 기존 렌더링 기술보다 더 나은 결과를 제공하므로 이제 SceneKit은 선형 색 공간에서 모든 색 계산을 수행합니다(와이드 컬러 디바이스 디스플레이에서 P3 색 영역 사용).
- 이제 SceneKit 색은 색 프로필 정보를 읽어 모든 색과 일치합니다.
- SceneKit은 모든 셰이더 형식에 대한 선형 RGB 색 공간의 색 구성 요소 값을 해석합니다.
- SceneKit은 텍스처 이미지의 색 프로필 정보를 읽고 조정하므로 모든 이미지에 자산 카탈로그를 사용하여 이 정보가 제공되도록 합니다.
- 선형 색 공간 렌더링과 와이드 컬러는 모두 앱의
Info.plist
키와SCNDisableWideGamut
키를 지정하여SCNDisableLinearSpaceRendering
사용하지 않도록 설정할 수 있습니다. - 임의의 다각형 영장류(파일에서 로드되거나 프로그래밍 방식으로 생성됨)를 빌드하여 새 SCNGeometryPrimitiveTypePolygon 클래스를 사용하여 기하 도형을 지정합니다.
SpriteKit 향상된 기능
tvOS 10의 SpriteKit 프레임워크에 다음과 같은 향상된 기능이 적용되었습니다.
- 이제 Tilemaps는 2D, 2.5D 및 사이드 스크롤 게임에
SKTileMapMode
SKTileGroup
SKTileGroupRule
SKTileSet
대해 사각형, 육각형 및 등각 타일 셰이프를 지원합니다. - 새
SKWarpGeometry
클래스를 사용하여 SKSpriteNode 또는 SKEffectNode 렌더링을 확장하거나 왜곡합니다. 새 SKAction 클래스를 사용하여 워프 효과 간의 전환에 애니메이션 효과를 줄 수 있습니다. - 사용자 지정 셰이더는 특성 값(
SKAttribute
)을 제공하여 셰이더를 사용하는 각 노드에서 개별적으로 구성할 수 있는 특성(SKAttributeValue
)을 제공할 수 있습니다. - SKView 클래스는 장면이 렌더링되는 시기와 방법을 세밀하게 제어할 수 있는 몇 가지 새로운 메서드를 제공합니다.
UIKit 향상된 기능
tvOS 10에서 UIKit 프레임워크에 다음과 같은 향상된 기능이 적용되었습니다.
- 포커스 API는 뷰가 아닌 항목의 포커스를
UIViews
지원하도록 향상되었습니다. 포커스를 지원하는 항목은 인터페이스를IUIFocusItem
구현해야 합니다. - 새
UIGraphicsRender
클래스는 UIKit 렌더링 또는 코어 그래픽에서 비트맵 또는 PDF를 만드는 개체 지향 메서드를 제공하고 사용되지 않는UIGraphicsBeginImageContext
메서드를 대체합니다. UIUserInterfaceStyle
현재 활성 상태인 사용자 인터페이스 테마(어둡거나 밝은)를 확인하기 위해 클래스가 추가되었습니다.- 완전히 대화형 개체 기반의 인터럽트 가능한 애니메이션 지원이 새로 추가되었으며 밴이 제스처에 연결됩니다. 자세한 내용은 Apple의 UIViewAnimating 프로토콜 참조, UIViewPropertyAnimator 클래스 참조, UITimingCurveProvider 프로토콜 참조, UICubicTimingParameters 클래스 참조 및 UISpringTimingParameter 클래스 참조 를 참조하세요.
- 앱이 미리 보기 및
UIPreviewInteractionDelegate
팝 작업을 위한 사용자 지정 인터페이스를 제공할 수 있도록 하는 새로운UIPreviewInteraction
기능입니다. - 새
UIAccessibilityCustomRotor
클래스를 사용하면 앱이 Voice Over와 같은 보조 기술에 사용자 지정 컨텍스트별 기능을 제공할 수 있습니다. UIAccessibilityIsAssistiveTouchRunning
UIAccessibilityAssistiveTouchStatusDidChangeNotification
및 기호를 사용하여 AssistiveTouch를 사용할 수 있는지 확인합니다.UIAccessibilityHearingDevicePairedEar
기호와UIAccessibilityHearingDevicePairedEarDidChangeNotification
기호를 사용하여 페어링된 MFi 보청기의 상태 가져옵니다.- 새 UIPasteboard API는 새로운 옵션(예: 수명 제한)을 제공하고 공통 클래스 형식에 대해 호환되는 콘텐츠 형식을 자동으로 선언합니다.
- 레이블에서 동적 형식을 지원하기 위해 텍스트 필드와 텍스트 상자는 클래스의 새
PreferredFontForTextStyle
메서드를UIFont
사용합니다. - 디바이스
UIContentSizeCategory
가 변경되면 요소가 글꼴을 업데이트해야 하는지 여부를 결정하려면 대리자의AdjustsFontForContentSizeCategory
UIContentSizeCategoryAdjusting
속성을 사용합니다. - 이제 앱은 텍스트 및 배경색과 같은 탭 표시줄 항목의 배지 모양을 제어할 수 있습니다.
- 이제 모든 스크롤 보기 및 스크롤 보기 하위 클래스(예:
UICollectionView
)에서 새로 고침 컨트롤이 지원됩니다. OpenURL
이제 클래스 메서드UIApplication
가 비동기적으로 호출되어 열기가 완료된 후 호출되는 완료 처리기를 지원합니다.- CloudKit 공유를 시작하고 새
UICloudSharingController
클래스와UICloudSharingControllerDelegate
클래스를 사용하여 해당 속성을 수정합니다. - 프리페치된 셀을 활용하여 새
UICollectionViewDataSourcePrefetching
대리자의 스크롤 환경을UICollectionViews
개선합니다.