iOS 8 소개
iOS 8을 통해 Apple은 개발자를 흥분시키고 즐겁게 하기 위해 다양한 새로운 프레임워크와 API를 제공했습니다. 이 가이드에서는 이러한 새로운 API를 소개하고 iOS 8이 개발자와 사용자 모두에게 어떻게 도움이 되는지 알아봅니다.
iOS 7은 첫 번째 i전화 OS에서 사용자와 개발자가 기대했던 것과 전체 iOS 사용자 인터페이스를 시각적으로 변경했습니다. IOS 8은 개발자를 위한 많은 프레임워크를 제공하여 이를 계속 진행하며, 이를 통해 사용자는 i전화부터 삶의 거의 모든 측면을 직접 제어할 수 있습니다. 예를 들어 HealthKit를 사용하여 건강 및 피트니스를 분석할 수 있고, 암호는 LocalAuthentication을 사용하여 바이오 메트릭 인증으로 사용되지 않으며, 앱 확장은 타사 앱 간의 통신 채널을 열고, HomeKit을 사용하면 집을 미래의 집으로 바꿀 수 있습니다.
iOS 7이 사용자 만족에 관한 것이라면 iOS 8은 이러한 맛있는 새로운 도구의 전체 범위로 개발자를 기쁘게하는 데 중점을 둡니다.
이 가이드에서는 Xamarin.iOS 개발자를 위한 새로운 API를 소개합니다.
iOS 8에서는 더 이상 사용되지 않는 몇 가지 API도 있습니다. 이 API는 이 문서의 끝에 자세히 설명되어 있습니다.
요구 사항
Mac용 Visual Studio iOS 8 앱을 만들려면 다음이 필요합니다.
- Xcode 7 및 iOS 8 이상 – Apple의 최신 Xcode 및 iOS API를 설치하고 개발자 컴퓨터에 구성해야 합니다.
- Mac용 Visual Studio – 최신 버전의 Mac용 Visual Studio 사용자 디바이스에 설치하고 구성해야 합니다.
- iOS 8 디바이스 또는 시뮬레이터 – 테스트를 위해 최신 버전의 iOS 8을 실행하는 iOS 디바이스입니다.
홈 앤 레저
iOS 8은 HomeKit 및 HealthKit을 사용하여 Apple과 iOS 장치를 집 의 중심부에 바로 심는 데 도움이되었습니다. 이 섹션에서는 이러한 새 프레임워크의 작동 방식과 이러한 프레임워크를 Xamarin.iOS 애플리케이션에 통합하는 방법을 살펴봅니다.
HomeKit
i전화에서 어플라이언스 제어하는 것은 새로운 기술 애플리케이션이 아닙니다. 많은 커넥티드 홈 제품은 iOS 앱을 통해 제어할 수 있습니다. 그러나 HomeKit은 이제 홈 자동화 디바이스에 대한 공통 프로토콜을 홍보하고 iHome, Philips 및 Honeywell과 같은 특정 제조업체에서 공용 API를 사용할 수 있도록 함으로써 이 단계를 한 단계 더 발전시켰습니다. 즉, 한 애플리케이션 내에서 홈의 거의 모든 측면을 원활하게 제어할 수 있습니다. 그들이 필립스 Hue 전구 또는 둥지 경보를 사용하고 있다는 것을 아는 것은 무관합니다. 사용자는 수많은 스마트 홈 프로세스를 "장면"으로 연결할 수도 있습니다.
HomeKit을 사용하면 타사 앱과 Siri가 액세서리를 검색하여 개인 홈 구성 데이터베이스에 추가하고, 이 데이터를 편집 및 처리하고, 액세서리 및 서비스와 통신하여 작업을 수행할 수 있습니다.
구성
아래 다이어그램은 HomeKit 액세서리 구성의 기본 계층 구조를 보여줍니다.
HomeKit을 시작하려면 개발자가 프로비저닝 프로필에 HomeKit 서비스가 선택되어 있는지 확인해야 합니다. Apple은 또한 개발자에게 Xcode용 HomeKit 시뮬레이터 추가 기능을 제공했습니다. Apple 개발자 센터 아래Hardware IO Tools for Xcode
의 에서 찾을 수 있습니다.
자세한 내용은 HomeKit 가이드를 참조하세요.
HealthKit
HealthKit는 상태 관련 정보에 대한 중앙 집중식, 조정 및 보안 데이터 저장소를 제공하는 iOS 8에 도입된 프레임워크입니다. 운영 체제는 상태 정보의 개인 정보 보호 및 보안을 보장하고 Health 앱을 사용하여 사용자를 위한 대시보드를 제공합니다. 사용자의 권한으로 애플리케이션은 다양한 상태 정보를 읽고 쓸 수 있습니다.
Xamarin.iOS 앱에서 이를 사용하는 방법에 대한 자세한 내용은 HealthKit 소개 가이드를 참조하세요.
i전화 기능 확장
iOS8을 사용하면 개발자가 앱을 사용할 수 있는 사용자를 훨씬 더 많이 제어할 수 있으며, 타사 앱 간의 더 개방적인 통신을 위한 기능이 향상됩니다. 앱 확장 및 문서 선택기와 같은 기능은 Apple 에코시스템에서 애플리케이션을 사용하는 방법에 대한 가능성을 열어줍니다.
앱 확장
앱 확장은 지나치게 단순화하기 위해 타사 앱이 서로 통신하는 방법입니다. 높은 보안 표준을 기본 샌드박스 앱의 무결성을 유지하기 위해 이 통신은 애플리케이션 간에 직접 수행되지 않습니다. 대신, 중간에 확장에 의해 수행 됩니다.
앱 확장을 만드는 첫 번째 단계는 올바른 확장 지점을 정의하는 것입니다. 이는 올바른 API의 동작과 가용성을 보장하는 데 중요합니다. Mac용 Visual Studio 앱 확장을 만들려면 솔루션에 새 프로젝트를 추가하여 기존 애플리케이션에 추가합니다.
새 프로젝트 대화 상자에서 아래 스크린샷과 같이 C#>iOS>통합 API>확장으로 이동합니다.
새 프로젝트 대화 상자는 앱 확장을 만들기 위한 7개의 새 프로젝트 템플릿을 제공하며 아래에서 설명합니다. 대부분의 확장은 문서 선택기 같은 iOS의 다른 새 API와 관련이 있습니다.
- 작업 – 이를 통해 개발자는 사용자가 특정 작업을 수행할 수 있는 고유한 사용자 지정 작업 단추를 만들 수 있습니다.
- 사용자 지정 키보드 – 개발자가 고유한 사용자 지정 키보드를 추가하여 Apple 키보드의 기본 제공 범위에 추가할 수 있습니다. 인기 있는 키보드인 Swype는 이를 사용하여 키보드를 iOS로 가져옵니다.
- 문서 선택 – 사용자가 애플리케이션의 샌드박스 외부의 파일에 액세스할 수 있도록 하는 문서 선택기 보기 컨트롤러가 포함되어 있습니다.
- 문서 선택기 파일 공급자 – 문서 선택기를 사용하여 파일에 대한 보안 스토리지를 제공합니다.
- 사진 편집 – 사용자가 사진을 편집할 때 더 많은 제어 및 더 많은 옵션을 제공하기 위해 사진 응용 프로그램에서 Apple이 이미 제공한 필터 및 편집 도구에서 확장됩니다.
- 오늘 – 이를 통해 애플리케이션은 알림 센터의 오늘 섹션에 위젯을 표시할 수 있습니다.
Xamarin에서 앱 확장을 사용하는 방법에 대한 자세한 내용은 앱 확장 소개 가이드를 참조하세요.
Touch ID
터치 ID는 암호와 유사하게 사용자를 인증하는 수단으로 iOS 7에 도입되었습니다. 그러나 디바이스 잠금 해제, 앱 스토어 사용, iTunes 사용 및 iCloud 키체인 인증으로만 제한되었습니다.
이제 로컬 인증 API를 사용하여 iOS 8 애플리케이션에서 Touch ID를 인증 메커니즘으로 사용하는 두 가지 방법이 있습니다. 현재 로컬 인증을 사용하여 원격으로 인증할 수 없습니다.
첫째, 새 ACL(키 집합 액세스 제어 목록)을 사용하여 기존 키 집합 서비스를 지원합니다. 키 집합 데이터는 사용자 지문의 성공적인 인증으로 잠금 해제할 수 있습니다.
둘째, LocalAuthentication은 애플리케이션을 로컬로 인증하는 두 가지 방법을 제공합니다. 개발자는 디바이스가 터치 ID를 수락할 수 있는지 확인한 다음 EvaluatePolicy
인증 작업을 시작하는 데 사용해야 CanEvaluatePolicy
합니다.
터치 ID에 대한 자세한 내용과 Xamarin.iOS 애플리케이션에 통합하는 방법을 알아보려면 Xamarin.iOS 가이드의 터치 ID 및 얼굴 ID를 참조하세요.
문서 선택기
문서 선택기는 사용자 iCloud 드라이브와 함께 작동하여 사용자가 다른 앱에서 만든 파일을 열고, 가져오고 조작하고, 다시 내보낼 수 있도록 합니다. 이렇게 하면 사용자에게 직관적인 워크플로가 생성되므로 훨씬 더 나은 환경을 만들 수 있습니다. iCloud 동기화는 한 단계 더 발전합니다. 한 애플리케이션에서 변경된 내용은 모든 장치에서 일관되게 반영됩니다.
문서 선택기에 대해 자세히 알아보고 Xamarin.iOS 애플리케이션에 통합하는 방법을 알아보려면 문서 선택기 소개 가이드를 참조하세요.
Handoff
더 큰 연속성 기능의 일부인 핸드오프는 OS X와 iOS를 통합하는 데 한 걸음 더 나아갑니다. 여기에는 플랫폼 간 AirDrop, i전화 호출을 받을 수 있는 기능, iPad 및 Mac의 SMS, i전화 테더링 개선이 포함됩니다.
핸드오프는 iOS 8 및 Yosemite에서 작동하며, 사용하려는 모든 다른 디바이스에 iCloud 계정을 로그인해야 합니다. Safari, iWork, 지도, 일정 및 연락처를 포함하여 미리 설치된 대부분의 Apple 앱에서 작동합니다.
자세한 내용은 핸드오프 가이드를 참조하세요.
통합 Storyboards
iOS 8에는 사용자 인터페이스(통합 스토리보드)를 만들기 위한 메커니즘을 사용하는 새로운 간단한 기능이 포함되어 있습니다. 다양한 하드웨어 화면 크기를 모두 포괄하는 단일 스토리보드를 사용하면 빠르고 반응성이 뛰어난 보기를 진정한 "디자인 한 번, 다 사용" 스타일로 만들 수 있습니다.
iOS8 이전에는 개발자가 세로 모드와 가로 모드를 구분하고 UIInterfaceIdiom
iOS 디바이스를 구분하는 데 사용 UIInterfaceOrientation
했습니다. iOS8에서는 더 이상 i전화 및 iPad 디바이스에 대한 별도의 스토리보드를 만들 필요가 없습니다. 방향 및 디바이스는 크기 클래스를 사용하여 결정됩니다.
모든 디바이스는 세로 축과 가로 축 모두에서 Size 클래스에 의해 정의되며 iOS 8에는 두 가지 유형의 크기 클래스가 있습니다.
- 일반 - 큰 화면 크기(예: iPad) 또는 큰 크기(예: UIScrollView)의 인상을 주는 가젯을 위한 것입니다.
- 컴팩트 - 더 작은 디바이스(예: i전화)용입니다. 이 크기는 디바이스의 방향을 고려합니다.
두 개념을 함께 사용하는 경우 결과는 다음 다이어그램과 같이 서로 다른 방향 모두에서 사용할 수 있는 다양한 가능한 크기를 정의하는 2 x 2 그리드입니다.
크기 클래스에 대한 자세한 내용은 통합 스토리보드 소개를 참조 하세요.
사진 키트
Photo Kit는 애플리케이션이 시스템 이미지 라이브러리를 쿼리하고 사용자 지정 사용자 인터페이스를 만들어 콘텐츠를 보고 수정할 수 있는 새로운 프레임워크입니다. 여기에는 이미지 및 비디오 자산을 나타내는 다양한 클래스와 앨범 및 폴더와 같은 자산 컬렉션이 포함됩니다.
자세한 내용은 PhotoKit 가이드를 참조하세요.
게임
장면 키트
장면 키트는 3D 그래픽 작업을 간소화하는 3D 장면 그래프 API입니다. OS X 10.8에서 처음 도입되었으며 이제 iOS 8에 도입되었습니다. 장면 키트를 사용하여 몰입형 3D 시각화 및 캐주얼 3D 게임을 만들 때 OpenGL에 대한 전문 지식이 필요하지 않습니다. 일반적인 장면 그래프 개념을 바탕으로 장면 키트는 OpenGL 및 OpenGL ES의 복잡성을 추상화하여 애플리케이션에 3D 콘텐츠를 매우 쉽게 추가할 수 있도록 합니다. 그러나 OpenGL 전문가인 경우 장면 키트는 OpenGL과 직접 연결하는 데도 큰 지원을 제공합니다. 또한 물리학과 같은 3D 그래픽을 보완하는 수많은 기능이 포함되어 있으며 코어 애니메이션, 코어 이미지 및 스프라이트 키트와 같은 다른 여러 Apple 프레임워크와 매우 잘 통합됩니다.
자세한 내용은 SceneKit 설명서를 참조하세요.
스프라이트 키트
Apple의 2D 게임 프레임워크인 Sprite Kit에는 iOS 8 및 OS X Yosemite의 몇 가지 흥미로운 새로운 기능이 있습니다. 여기에는 장면 키트와의 통합, 셰이더 지원, 조명, 그림자, 제약 조건, 일반 지도 생성 및 물리학 향상이 포함됩니다. 특히, 새로운 물리학 기능은 매우 쉽게 게임에 사실적인 효과를 추가 할 수 있습니다.
자세한 내용은 SpriteKit 설명서를 참조하세요.
기타 변경 내용
위에서 설명한 iOS 8의 주요 변경 사항뿐만 아니라 Apple은 많은 기존 프레임워크를 추가로 업데이트했습니다. 아래에 자세히 설명되어 있습니다.
- 핵심 이미지 – Apple은 이미지 내의 사각형 영역 및 QR 코드 검색에 대한 더 나은 지원을 추가하여 이미지 처리 프레임워크를 확장했습니다. Mike Bluestein은 iOS 8에서 이미지 검색이라는 제목의 블로그 게시물에서 이를 탐색합니다.
사용되지 않는 API
iOS 8의 모든 개선 사항으로 인해 많은 API가 더 이상 사용되지 않습니다. 이들 중 일부는 아래에 자세히 설명되어 있습니다.
UIApplication – 원격 알림을 등록하는 데 사용되는 메서드 및 속성은 더 이상 사용되지 않습니다. registerForRemoteNotificationTypes 및 enabledRemoteNotificationTypes입니다.
UIViewController – 특성 및 크기 클래스는 인터페이스 방향을 설명하는 데 사용되는 메서드와 속성을 대체했습니다. 이를 사용하는 방법에 대한 자세한 내용은 통합 스토리보드 소개를 참조하세요.
UISearchDisplayController – iOS8의 UISearchController로 대체되었습니다.
요약
이 문서에서는 iOS 8에서 Apple이 도입한 새로운 기능 중 일부를 살펴보았습니다.