iOS 9 소개

이 문서에서는 Xamarin.iOS 개발자를 위해 iOS 9에서 사용할 수 있는 새로운 수정된 API 및 기능을 모두 소개합니다.

The iOS 9 logo

Apple은 기존 기능에 많은 향상된 기능과 함께 iOS 9에 몇 가지 새로운 API 및 서비스를 추가했습니다.

3D 터치

iOS 9 및 i전화 6s 및 i전화 6s Plus의 새로운 3D Touch는 iOS 앱에 압력 민감 제스처를 추가합니다. 3D Touch를 사용하면 i전화 앱이 사용자가 디바이스의 화면을 터치하고 있음을 알 수 있을 뿐만 아니라 사용자가 얼마나 많은 압력을 가하고 있는지를 감지하고 다양한 압력 수준에 대응할 수 있습니다.

3D Touch는 앱에 다음과 같은 기능을 제공합니다.

  • 압력 민감 도 - 이제 앱은 사용자가 화면을 터치하는 데 얼마나 힘들거나 가벼우는지 측정하고 해당 정보를 활용할 수 있습니다. 예를 들어 그리기 앱은 사용자가 화면을 터치하는 정도에 따라 선을 더 두껍거나 얇게 만들 수 있습니다.
  • 피킹 앤 팝 - 이제 앱에서 사용자가 현재 컨텍스트를 벗어나지 않고도 데이터와 상호 작용할 수 있습니다. 화면에서 열심히 눌러 관심 있는 항목(예: 메시지 미리 보기)을 피킹할 수 있습니다. 더 세게 누르면 항목에 팝업할 수 있습니다.
  • 빠른 작업 - 사용자가 데스크톱 앱에서 항목을 마우스 오른쪽 단추로 클릭할 때 팝업될 수 있는 상황에 맞는 메뉴와 같은 빠른 작업을 생각해 보세요. 빠른 작업을 사용하면 iOS 디바이스의 홈 화면 아이콘에서 앱의 함수에 대한 일반적이고 빠르고 쉽게 액세스할 수 있는 바로 가기를 추가할 수 있습니다.

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

앱 전송 보안

iOS 9를 새롭게 접하는 ATS(App Transport Security)는 인터넷 리소스(예: 앱의 백 엔드 서버)와 앱 간에 보안 연결을 적용합니다. ATS를 사용하면 모든 인터넷 통신이 보안 연결 모범 사례를 준수하므로 앱 또는 사용하는 라이브러리를 통해 중요한 정보가 실수로 공개되지 않도록 방지할 수 있습니다.

ATS는 iOS 9 및 OS X 10.11(El Capitan)용으로 빌드된 앱에서 기본적으로 사용하도록 설정되므로 NSUrl커넥트ion, CFUrl 또는 NSUrlSession을 사용하는 모든 연결에는 ATS 보안 요구 사항이 적용됩니다. 연결이 이러한 요구 사항을 충족하지 않으면 예외로 실패합니다.

ATS에 대한 자세한 내용은 앱 전송 보안 가이드를 참조하세요.

iPad용 멀티태스킹

iOS 9를 통해 Apple은 특정 iPad 하드웨어에서 동시에 두 개의 앱을 실행하기 위한 멀티태스킹 지원을 추가했습니다. 따라서 Xamarin.iOS 앱은 지정된 시간에 실행되는 유일한 앱이거나 디바이스의 전체 화면 또는 리소스에 액세스할 수 있다고 더 이상 가정할 수 없습니다.

iPad용 멀티태스킹은 다음 기능을 통해 지원됩니다.

  • 슬라이드 오버 - 사용자가 현재 실행 중인 기본 앱의 약 25%를 차지하는 슬라이드 아웃 패널(언어 방향에 따라 화면의 오른쪽 또는 왼쪽)에서 두 번째 iOS 앱을 일시적으로 실행할 수 있습니다. 슬라이드 오버는 iPad Pro, iPad Air, iPad Air 2, iPad Mini 2, iPad Mini 3 또는 iPad Mini 4에서만 사용할 수 있습니다.
  • 분할 보기 - 지원되는 iPad 하드웨어(iPad Air 2, iPad Mini 4 및 iPad Pro만 해당)에서 사용자는 두 번째 앱을 선택하고 분할 화면 모드에서 현재 실행 중인 앱과 나란히 실행할 수 있습니다. 사용자는 각 앱이 차지하는 기본 화면의 백분율을 제어할 수 있습니다.
  • 그림 의 그림 - 비디오 콘텐츠를 재생하는 앱의 경우 이제 iOS 디바이스에서 현재 실행 중인 다른 앱에 떠 있는 이동 가능하고 크기 조정 가능한 창에서 비디오를 재생할 수 있습니다. 사용자는 이 창의 크기와 위치를 완전히 제어할 수 있습니다. 사진의 사진은 iPad Pro, iPad Air, iPad Air 2, iPad Mini 2, iPad Mini 3 또는 iPad Mini 4에서만 사용할 수 있습니다.

iOS 9의 새로운 멀티태스킹 능력에 대한 자세한 내용은 iPad용 멀티태스킹 가이드를 참조하세요.

새 연락처 및 연락처 UI 프레임워크

iOS 9의 도입으로 Apple은 iOS 8 및 이전 버전에서 사용하는 기존 주소록 및 주소록 UI 프레임워크를 대체하는 두 개의 새로운 프레임워크인 Contacts 및 ContactsUI를 출시했습니다.

이러한 새로운 개체 지향 프레임워크는 다음을 제공합니다.

  • 연락처 – 사용자의 연락처 정보에 대한 Xamarin.iOS 액세스를 제공합니다. 대부분의 앱은 읽기 전용 액세스만 필요하므로 이 프레임워크는 스레드로부터 안전한 읽기 전용 액세스에 최적화되었습니다.
  • ContactsUI – iOS 디바이스에서 연락처를 표시, 편집, 선택 및 만들 수 있는 Xamarin.iOS UI 요소를 제공합니다.

자세한 내용은 연락처 및 연락처 UI 설명서를 참조하세요.

새 검색 API

Xamarin.iOS 앱 내에서 정보에 액세스할 수 있는 새로운 방법을 제공하기 위해 iOS 9에서 검색이 확장되었습니다. 새 검색 API를 사용하면 추천 및 Safari 검색 결과, 핸드오프 및 Siri 미리 알림 및 제안을 통해 앱의 콘텐츠를 검색할 수 있습니다. 이를 통해 사용자는 앱 내에서 활동 및 정보에 빠르게 액세스할 수 있습니다.

또한 새 Search API를 사용하면 이전 검색 구현 환경 없이 앱에서 검색을 보다 쉽게 통합할 수 있습니다. 이 때문에 Apple은 일반적으로 App Search를 사용하여 iOS 9 앱의 콘텐츠를 보편적으로 검색할 수 있도록 하는 데 몇 시간이 걸린다고 주장합니다.

자세한 내용은 향상된 검색 설명서를 참조하세요.

새 스택 보기

스택 뷰 컨트롤(UIStackView 는 자동 레이아웃 및 크기 클래스의 기능을 활용하여 iOS 디바이스의 방향 및 화면 크기에 동적으로 응답하는 하위 보기 스택(가로 또는 세로)을 관리합니다.

스택 뷰 컨트롤을 사용하면 사용자 인터페이스를 레이아웃하는 데 필요한 작업량이 크게 줄어듭니다. 스택 뷰에 연결된 모든 하위 보기의 레이아웃은 축, 분포, 맞춤 및 간격과 같은 개발자 정의 속성에 따라 자동으로 관리됩니다.

자세한 내용은 스택 보기 소개 설명서를 참조하세요.

컬렉션 보기 변경 내용

iOS 9에서 컬렉션 뷰(UICollectionView 는 이제 새 기본 제스처 인식기와 몇 가지 새로운 지원 메서드를 추가하여 항목의 끌어오기 다시 정렬을 기본적으로 지원합니다.

이러한 새 메서드를 사용하면 컬렉션 뷰에서 끌어서 다시 정렬을 쉽게 구현할 수 있으며 다시 정렬 프로세스의 모든 단계에서 항목 모양을 사용자 지정할 수 있습니다.

iOS 9의 컬렉션 보기 변경 내용에 대한 자세한 내용은 컬렉션 보기 변경 내용 가이드를 참조하세요.

향상된 게임 기능

iOS 9를 통해 Apple은 Xamarin.iOS 앱에서 게임 그래픽 및 오디오를 보다 쉽게 구현할 수 있도록 게임 API를 몇 가지 기술로 개선했습니다. 여기에는 높은 수준의 프레임워크를 통한 개발 용이성과 낮은 수준의 향상된 기능으로 향상된 속도와 그래픽 기능을 위해 iOS 디바이스의 GPU 기능을 활용하는 것이 모두 포함됩니다.

여기에는 GameplayKit, ReplayKit, 모델 I/O, MetalKit 및 금속 성능 셰이더와 Metal, SceneKit 및 SpriteKit의 새로운 향상된 기능이 포함됩니다.

자세한 내용은 게임 향상 설명서를 참조하세요.

HomeKit 프레임워크 변경 내용

iOS 8에 도입된 HomeKit 프레임워크는 Xamarin.iOS 앱에서 다양한 HomeKit 지원 액세서리(예: 자동화된 조명, 도어 잠금 장치 및 차고 도어 오프너)를 설정하고 제어할 수 있는 기능을 제공합니다. HomeKit 액세서리는 설치 및 구성이 용이할 뿐만 아니라 음성 Siri 명령을 통해 제어할 수 있습니다.

iOS 9에서 Apple은 설정을 더 쉽게 만들고, 지원되는 액세서리 유형을 확장하고, 더 많은 액세서리 상호 작용(예: iCloud를 통해 원격으로 액세서리 제어)을 제공했습니다.

자세한 내용은 HomeKit 소개, HomeKitIntro iOS 샘플 앱 및 Apple의 HomeKit 설명서를 참조하세요.

핸드오프 프레임워크 변경 내용

핸드오프(연속성이라고도 함)는 사용자가 iOS 8 및 OS X Yosemite(10.10)에서 사용자가 디바이스 중 하나(iOS 또는 Mac)에서 작업을 시작하고 다른 장치에서 동일한 작업을 계속하는 방법으로 도입되었습니다(사용자의 iCloud 계정으로 식별됨).

핸드오프는 새로운 향상된 검색 기능도 지원하도록 iOS 9에서 확장되었습니다. 자세한 내용은 향상된 검색 설명서를 참조하세요. 핸드오프 사용에 대한 자세한 내용은 핸드오프 소개 설명서를 참조하세요.

새 확장점

iOS 8에서 Apple은 알림 센터 내, 사용자가 키보드를 요청할 때 또는 사진을 편집할 때와 같은 표준 컨텍스트에서 운영 체제에서 제공하는 확장 라이브러리를 도입했습니다.

Apple은 iOS 9를 사용하여 사용 정책을 정의하고 지정된 영역 내에서 작업하기 위한 API를 제공하는 몇 가지 새로운 확장 지점을 제공하여 확장 지원을 확장하고 있습니다.

  • 새 오디오 단위 확장 지점 – 다른 오디오 장치 호스트 앱(예: GarageBand) 내에서 사용할 오디오 효과, 악기, 사운드 생성기 등을 제공하려면 이 확장 지점을 사용합니다. 또한 이 확장 지점을 사용하면 App Store에서 오디오 단위(오디오 플러그 인)를 판매할 수 있습니다.
  • 새 인덱스 유지 관리 확장 지점 - 이 확장 지점을 사용하여 앱을 다시 시작하지 않고도 앱 데이터의 다시 인덱싱을 지원합니다.
  • 새 네트워크 확장 지점 (Apple의 특별한 권한이 필요)
    • 앱 프록시 공급자 확장 - 이 확장 지점을 사용하여 사용자 지정 투명 클라이언트 쪽 네트워크 프록시를 구현합니다.
    • 필터 데이터 공급자/필터 제어 공급자 확장 - 이러한 확장 지점을 사용하여 디바이스에서 동적 네트워크 콘텐츠 필터링을 구현합니다.
    • 패킷 터널 공급자 확장 - 이 확장 지점을 사용하여 사용자 지정 VPN 터널링 프로토콜 클라이언트 쪽을 구현합니다.
  • 새 Safari 확장 지점:
    • 콘텐츠 차단 확장 — 사용자가 웹을 탐색할 때 표시되지 않는 차단된 콘텐츠 목록을 정의하려면 이 확장 지점을 사용합니다.
    • 공유 링크 확장 — 이 확장 지점을 사용하여 Safari의 공유 링크에서 앱 콘텐츠를 볼 수 있습니다.

자세한 내용은 확장 소개 및 Apple의 앱 확장 프로그래밍 가이드 설명서를 참조하세요.

키 집합 향상된 기능

iOS 9에서 Apple은 다음과 같이 보안 Enclave에 대한 새로운 암호화 키 유형 및 더 많은 항목 보호 옵션을 제공하도록 키 집합을 향상시켰습니다.

  • 지문 데이터베이스가 수정될 때 키 집합 항목을 무효화하는 새 Touch ID 제약 조건입니다.
  • 터치 ID 또는 암호만 사용하여 Access Control 목록 항목을 만들 수 있는 새로운 제약 조건입니다.
  • 호출과 SecItem 별도로 인증을 호출할 수 있는 새 인증 컨텍스트입니다.
  • 앱에서 제공하는 키체인 항목 암호화에 대한 액세스 제어 목록 엔트로피(애플리케이션 암호 옵션 사용).
  • 특성을 통해 kSecAttrTokenIDSecureEnclave 보안 Enclave 내에서 키 생성 및 사용을 지원합니다.

자세한 내용은 Xamarin.iOS의 터치 ID 및 얼굴 ID를 참조하세요.

오른쪽에서 왼쪽으로 언어 지원

iOS 9에서 Apple은 오른쪽에서 왼쪽 언어에 대한 전폭적인 지원을 제공하여 그 어느 때보다 쉽게 뒤집힌 사용자 인터페이스를 제공합니다. 여기에는 다음과 같은 사항이 포함됩니다.

  • 표준 UIKit 컨트롤은 iOS 디바이스 로캘 및 언어 설정에 따라 오른쪽에서 왼쪽으로 자동으로 대칭 이동됩니다.
  • UIView 클래스는 오른쪽에서 왼쪽으로 대칭 이동 시 지정된 보기가 표시되는 방식을 정의할 수 있는 특성을 제공합니다.
  • UIImage 클래스의 FlipsForRightToLeftLayoutDirection 속성을 사용하여 프로그래밍 방식으로 이미지를 대칭 이동하는 기능입니다.

자세한 내용은 Apple의 오른쪽에서 왼쪽으로 지원하는 언어 설명서를 참조하세요.

추가 프레임워크 변경 내용

위에서 설명한 주요 변경 내용 외에도 Apple은 다음을 포함하여 iOS 9에 대한 여러 기존 프레임워크를 수정하고 개선했습니다.

  • AV Foundation Framework
  • AVKit 프레임워크
  • CloudKit Framework
  • Foundation Framework
  • 핸드오프 프레임워크
  • HealthKit 프레임워크
  • HomeKit 프레임워크
  • 로컬 인증 프레임워크
  • MapKit 프레임워크
  • PassKit 프레임워크
  • Safari Services 프레임워크
  • UIKit 프레임워크

자세한 내용은 추가 iOS 9 프레임워크 변경 설명서를 참조하세요.

사용되지 않는 API 및 함수

Apple은 iOS 9에서 다음 API 및 기능을 더 이상 사용하지 않습니다.

  • 주소록 및 주소록 UI - 이러한 API는 연락처 및 연락처 UI 프레임워크로 대체되었습니다. 자세한 내용은 연락처 및 연락처 UI 설명서를 참조하세요.
  • CBCentralManager - RetrievePeripherals 클래스의 CBCentralManager 메서드 및 RetrieveConnectedPeripherals 메서드가 iOS 9에서 제거되었습니다. 이러한 메서드를 호출하면 액세서리를 페어링하거나 앱 시작 시 앱이 충돌합니다.
  • FetchAllChanges - FetchAllChanges 클래스의 CKFetchRecordChangesOperation 사용이 중단되었으며 iOS 9에서 제거됩니다.
  • 미디어 플레이어 - 미디어 플레이어 프레임워크는 iOS 9에서 더 이상 사용되지 않습니다. AVKit 또는 AV Foundation API를 대신 사용합니다.

특정 API 사용 중단의 전체 목록은 Apple의 iOS 9.0 API Diffs 설명서를 참조하세요.

iOS 9 샘플 앱

시작하기 위한 몇 가지 iOS 9 관련 샘플 이 있습니다.

또한 이러한 샘플의 iOS 부분(Mac OS X 버전 포함)을 검사.