추가 iOS 9 프레임워크 변경 내용

이 문서에서는 iOS 9용 기존 프레임워크에 대한 추가적인 사소한 변경 또는 향상된 기능을 설명합니다.

iOS 9 로고

Apple은 iOS의 주요 변경 사항 외에도 iOS 9의 여러 기존 프레임워크를 수정하고 개선했습니다.

AVFoundation Framework 추가

AVFoundation 프레임워크 에서 AVSpeechSynthesisVoice 클래스를 사용하면 언어 외에 식별자별로 음성을 지정할 수 있습니다.

예를 들어 다음 코드는 사용 가능한 모든 음성 목록을 가져옵니다.

var voices = AVSpeechSynthesisVoice.GetSpeechVoices ();

그런 다음 AVSpeachUtterance 클래스 인스턴스의 속성으로 Voice 설정하여 목록의 음성 중 하나를 사용할 수 있습니다.

AVQueuePlayer 클래스는 이제 큐에 인터넷 스트리밍과 파일 기반 미디어가 혼합되어 지원됩니다. 이전 버전은 동일한 유형의 미디어만 큐에 대기할 수 있습니다.

자세한 내용은 Apple의 AVSpeechSynthesisVoice 참조를 참조하세요.

AVKit 프레임워크 추가

새로운 PIP(Picture-in-Picture) 기능을 사용하려면 AVKit 프레임워크에 새 AVPictureInPictureControllerAVPlayerViewController 클래스가 포함됩니다.

  • AVPictureInPictureController - 이 클래스를 사용하면 iOS 9 앱이 iPad의 부동 크기 조정 가능한 PIP 창에서 비디오 재생을 시작하는 사용자에게 응답할 수 있습니다.
  • AVPlayerViewController - iPad의 AVPlayer 부동 크기 조정 가능한 PIP 창에 비디오를 표시하는 데 사용되는 컨트롤러를 관리합니다.

자세한 내용은 iPad용 멀티태스킹 설명서와 Apple의 AVPictureInPictureController 참조AVPlayerViewController 참조를 참조하세요.

CloudKit 웹 서비스 소개

CloudKit 프레임워크는 iCloud에 액세스하는 애플리케이션 개발을 간소화합니다. 여기에는 애플리케이션 데이터 및 자산 권한 검색뿐만 아니라 애플리케이션 정보를 안전하게 저장할 수 있는 기능이 포함됩니다. 이 키트는 개인 정보를 공유하지 않고 iCloud ID로 애플리케이션에 액세스할 수 있도록 하여 사용자에게 익명의 계층을 제공합니다.

CloudKit Web Services 프레임워크는 Xamarin.iOS 앱과 동일한 CloudKit 기반 데이터 및 콘텐츠에 대한 액세스를 제공하기 위해 웹 사이트에 통합할 수 있는 JavaScript 라이브러리(CloudKit JS)를 제공합니다.

Important

CloudKit JS를 사용하여 CloudKit 데이터베이스에서 콘텐츠에 액세스, 프레젠테이션 또는 업데이트하려면 이전에 해당 데이터베이스의 스키마를 정의해야 합니다.

자세한 내용은 다음 문서를 참조하세요.

Important

Apple에서는 개발자가 유럽 연합의 GDPR(일반 데이터 보호 규정)을 제대로 처리하는 데 도움이 되는 도구를 제공합니다.

Foundation Framework 추가

Apple은 iOS 9에서 Foundation 프레임워크에 다음과 같은 변경 내용을 포함했습니다.

NSBundle에 대한 변경 내용

iOS 9용 NSBundle 클래스는 다음과 같이 변경되었습니다.

  • GetPreservationPriorityForTag (NSString tag) - 지정된 태그가 있는 리소스의 현재 보존 우선 순위를 가져옵니다. 유효한 값은 범위 0.0 에서 1.0우선 순위가 가장 낮은 리소스가 먼저 제거됩니다.
  • SetPreservationPriorityForTag (double priority, NSSet tags) - 지정된 태그가 있는 리소스의 현재 보존 우선 순위를 설정합니다. 유효한 값은 범위 0.0 에서 1.0우선 순위가 가장 낮은 리소스가 먼저 제거됩니다.

자세한 내용은 Apple의 NSBundle 참조를 참조하세요.

NSProcessInfo에 대한 변경 내용

iOS 디바이스에서 실행되는 각 프로세스에는 단일 PIA(프로세스 정보 에이전트 )가 있습니다. NSProcessInfo 클래스를 사용하여 현재 PIA에 대한 정보를 제공하고 지정된 프로세스에 대한 전원 및 열 관리를 제어합니다.

예를 들어 프로세스의 자동 종료를 제어하려면 다음 코드를 사용할 수 있습니다.

// Disable automatic termination
var activity = NSProcessInfo.ProcessInfo.BeginActivity(NSActivityOptions.AutomaticTerminationDisabled, "Define reason for change here...");

// Perform the required task
...

// Return to normal operation
NSProcessInfo.ProcessInfo.EndActivity(activity);

자세한 내용은 Apple의 NSProcessInfo 참조를 참조하세요.

저전력 모드에 대응

LowPowerModeEnabled NSProcessInfo 클래스의 속성을 사용하여 앱이 실행 중인 iOS 디바이스에서 저전력 모드가 활성화되었는지 확인합니다. 예시:

// Is the device in low power mode?
if (NSProcessInfo.ProcessInfo.LowPowerModeEnabled) {
    // Reduce activity to conserve energy...
} else {
    // Return to normal activity...
}

HealthKit 프레임워크 변경 내용

Apple은 iOS 9에서 HealthKit 프레임워크에 다음과 같은 변경 내용을 포함했습니다.

  • HealthKit 데이터베이스에서 항목의 대량 삭제 및 삭제 추적을 지원합니다. 자세한 내용은 Apple의 HKDeletedObject, HKAnchoredObjectQueryHKHealthStore 클래스 참조를 참조 하세요.
  • 새 추적 범주 및 특성이 클래스(예: UVExposure)와 클래스(예: OvulationTestResult)에 HKCategoryTypeIdentifier 추가 HKQuantityTypeIdentifier 되었습니다.

Xamarin.iOS에서 HealthKit 작업에 대한 자세한 내용은 HealthKit 소개 설명서를 참조하세요.

로컬 인증 프레임워크 변경 내용

Apple은 iOS 9에서 로컬 인증 프레임워크에 다음과 같은 변경 내용을 포함했습니다.

  • EvaluateAccessControl 이제 LAContext 클래스의 메서드 및 EvaluatePolicy 메서드를 사용하여 이전에 성공한 잠금 해제 시도에서 터치 ID 일치를 다시 사용할 수 있습니다.
  • 현재 등록된 손가락 목록을 가져오는 기능입니다.
  • 손가락이 인증에서 추가되거나 제거되는 경우 추적을 지원합니다.
  • 키 집합 호출에서 인증 컨텍스트를 사용하는 기능 및 키 집합 액세스 제어 목록 평가를 지원합니다.
  • 코드에서 사용자 프롬프트를 취소하는 기능입니다.

자세한 내용은 Xamarin.iOS를 사용한 Touch ID 및 Face ID를 참조하세요.

LAContext 변경 내용

iOS 9용 LAContext 클래스는 다음과 같이 변경되었습니다.

  • TouchIdAuthenticationMaximumAllowableReuseDuration - 터치 ID 인증을 다시 사용할 수 있는 최대 시간을 반환합니다.
  • EvaluatedPolicyDo기본State - 평가된 정책의 상태를 가져오거나 설정합니다.
  • MaxBiometryFailures - iOS 9에서 사용되지 않습니다.
  • TouchIdAuthenticationAllowableReuseDuration 터치 ID 인증을 다시 사용할 수 있는 시간을 가져오거나 설정합니다.
  • EvaluateAccessControl - 인증 정책을 비동기적으로 평가합니다.
  • 무효화 - 지정된 터치 ID 인증을 무효화합니다.
  • IsCredentialSet - 자격 증명이 현재 설정되어 있는지를 반환 true 합니다.
  • SetCredentialType 은 지정된 자격 증명 형식을 설정합니다.

자세한 내용은 Apple의 LAContext 참조를 참조 하세요.

MapKit 프레임워크 변경 내용

Apple은 iOS 9에서 MapKit 프레임워크에 다음과 같은 변경 내용을 포함했습니다.

자세한 내용은 xamarin.iOS 및 Apple의 CLGeocoder 참조에서 지도 및 주석 작업에 대한 자세한 내용은 MapKit 설명서의 iOS 지도 및 연습 - 주석 및 오버레이를 살펴보세요.

PassKit 프레임워크 추가

Apple은 iOS 9에서 PassKit 프레임워크에 다음과 같은 변경 내용을 포함했습니다.

Xamarin.iOS에서 PassKit 작업에 대한 자세한 내용은 PassKit 소개 설명서를 참조하세요.

Safari Services 프레임워크 추가

Apple은 iOS 9에서 Safari Services 프레임워크에 다음과 같은 변경 내용을 포함했습니다.

  • 이제 새 SFSafariViewController 클래스를 사용하여 Xamarin.iOS 앱 내에서 웹 콘텐츠를 표시할 수 있습니다. Safari 앱과 웹 사이트 데이터 및 쿠키를 공유하는 기능을 제공하며 Safari의 여러 기능(예: 판독기 및 자동 채우기)을 포함합니다. SFSafariViewController에는 웹 콘텐츠 보기가 완료되면 앱으로 사용자를 반환하는 완료 단추가 있습니다.

SFSafariViewController 클래스는 웹 콘텐츠의 단일 페이지를 표시하도록 조정되었으므로 기존 Xamarin.iOS 앱 내에서 WKWebKit 또는 UIWebView 컨트롤을 바꾸는 데 사용하는 것이 좋습니다.

웹 사이트 표시

아래 코드는 다른 뷰 컨트롤러 내에서 SFSafariViewController를 호출하는 예제입니다.

// Create an instance of the Safari Services View Controller
var controller = new SFSafariViewController(new NSUrl("http://www.xamarin.com"));

// Display website
PresentViewController(controller, true, null);

UIKit 프레임워크 변경 내용

Apple은 iOS 9용 UIKit 프레임워크의 여러 요소에 많은 향상된 기능을 포함하고 있습니다. 다음 섹션에서는 이러한 변경 내용을 자세히 설명합니다.

3D 터치 이벤트

iOS 9 및 i전화 6s 및 i전화 6s Plus의 새로운 3D Touch는 iOS 앱에 압력 민감 제스처를 추가합니다. 따라서 앱이 iOS 9 이상에서 실행 중이고 iOS 디바이스가 3D Touch를 지원할 수 있는 경우 압력의 변화로 인해 TouchesMoved 이벤트가 발생합니다.

이러한 동작 변경으로 인해 X/Y 좌표가 변경되지 않은 경우에도 이벤트를 더 자주 호출할 수 있도록 iOS 앱을 준비 TouchesMoved 해야 합니다.

자세한 내용은 3D Touch 소개 가이드를 참조하세요.

문서 열린 위치 기능

이제 UIApplicationDelegate 클래스의 메서드 또는 WillFinishLaunching (Application, launchOptions) 메서드를 사용하여 FinishedLaunching (application, launchOptions) 문서를 열고 복사본 작업과는 달리 현재 위치에서 수정할 수 있습니다.

새 현재 위치 열기 기능을 지원하려면 값을 YES사용하여 Xamarin.iOS 앱의 Info.plist 파일에 키를 추가 LSSupportsOpeningDocumentsInPlace 합니다.

자세한 내용은 Apple의 UIApplicationDelegate 참조 를 참조하세요.

향상된 터치 이벤트

Apple은 iOS 9에서 터치 이벤트에 몇 가지 향상된 기능을 제공했습니다. 여기에는 터치 예측을 사용하고 디스플레이 새로 고침 간에 중간 터치에 액세스할 수 있는 기능이 포함됩니다.

자세한 내용은 iOS용 Apple의 이벤트 처리 가이드를 참조하세요.

맞춤형 콘텐츠 가져오기

NSDataAsset 클래스를 사용하면 Xamarin.iOS 앱이 현재 실행 중인 iOS 디바이스의 메모리 및 그래픽 기능에 맞게 조정된 콘텐츠를 가져올 수 있습니다.

새 레이아웃 앵커

NSLayoutAnchor 앵커 및 NSLayoutDimension 레이아웃 앵커 클래스는 UIView 클래스의 새 앵커 속성(예: LeadingAnchor 및)과 WidthAnchor함께 작동하여 iOS 9에서 레이아웃을 더 쉽게 만듭니다.

자세한 내용은 Xamarin.iOS 앱 및 Apple의 NSLayoutAnchor 참조, NSLayoutDimension 참조 및 UIView 참조에서 AutoLayout 및 크기 클래스를 사용하는 방법에 대한 자세한 내용은 통합 스토리보드 소개 설명서를 참조하세요.

읽을 수 있는 새 콘텐츠 여백

UILayoutGuide 클래스를 사용하여 읽을 수 있는 콘텐츠 여백을 제공하고 보기 내의 콘텐츠에 대한 그리기 영역을 정의할 수 있습니다. 자세한 내용은 Apple의 UILayoutGuide 참조를 참조 하세요.

알림 수정의 텍스트 입력

UIUserNotificationAction 클래스에는 알림의 텍스트 입력을 지원하는 데 사용할 수 있는 새 Behavior 속성이 있습니다.

UIApplicationDelegate 변경 내용

Apple에서 공식적으로 사용되지는 않지만 UIApplicationDelegate 클래스의 메서드에 대한 FinishedLaunching (UIApplication application) 모든 호출을 또는 WillFinishLaunching (UIApplication application, NSDictionary launchOptions) 메서드로 FinishedLaunching (UIApplication application, NSDictionary launchOptions) 바꾸는 것이 좋습니다.

자세한 내용은 Apple의 UIApplicationDelegate 참조 를 참조하세요.

UIKit Dynamics 변경 내용

Apple은 iOS 9의 UIKit Dynamics에 다음과 같은 변경 내용을 포함했습니다.

  • 이제 Dynamics는 사각형이 아닌 충돌 경계를 지원합니다.
  • 사용자 지정 가능한 UIFieldBehavior 새 클래스는 다양한 필드 형식을 지원하는 데 사용됩니다.
  • 클래스에 추가 첨부 파일 형식이 UIAttachmentBehavior 추가되었습니다.

자세한 내용은 Apple의 UIAttachment 참조 를 참조하세요.

UIPickerView 및 UIDatePicker 변경 내용

iOS 9 이전에는 UIPickerViewUIDatePicker 컨트롤의 크기가 조정되지 않았으며 컨테이너의 너비(일반적으로 앱이 실행 중인 iOS 디바이스의 너비)를 채우기 위해 자동으로 크기가 조정되었습니다.

iOS 9에서는 이 자동 크기 조정이 더 이상 발생하지 않으며 화면 크기 및 방향에 관계없이 모든 iOS 디바이스에서 컨트롤이 320포인트 너비로 렌더링됩니다.

이 상황을 해결하려면 자동 레이아웃 및 크기 클래스를 사용하여 컨트롤의 너비를 부모 컨테이너(보기)의 가장자리에 고정하고 필요한 높이를 지정합니다. Xamarin.iOS 앱에서 자동 레이아웃 및 크기 클래스를 사용하는 방법에 대한 자세한 내용은 통합 스토리보드 소개 설명서를 참조하세요.

새 UITextInputAssistantItem 클래스

UITextInputAssistantItem 클래스를 사용하여 바로 가기 막대에서 막대 단추 그룹을 레이아웃합니다. 바로 가기 막대는 소프트 키보드에서 입력 바로 가기를 제공하는 새로운 영역입니다.