[iOS] iOS 11
in Devstory on Objective C, Ios, Wwdc2017, Ios11, Iphone8
이번 포스트에서는 iOS11에 대해서 전반저긍로 다뤄보자! 대응점이 생각보다 많다.
What’s New in iOS11
0. Notice
32비트 지원이 중단된다. iOS11 부터 32bit 앱 지원을 중단함에 따라, 출시된 앱들이 64bit인지 확인을 꼭!!! 꼭!!! 해야한다.
iPhone5, iPhone 5c 이전 제품, iPad 4 이전 제품들은 iOS11이 지원되지 않는다. 확인해보자.(맥용 32bit 앱 지원은 2018에 종료 할 예정이다)
1. General
주요 내용
바코드를 지원한다. (AVFoundation, CoreImage, SiriKit) MusicKit이 추가되었다.
상세 내용
- Binary Barcodes 지원 (Non-text)
- Detection/ Decoding / Creation of barcodes with binary context
- 다음 프레임워크들에 API 추가
- AV Foundation
- Core Image
- Siri Kit
- CIBarcodeDesciptor 추가
- new barcode descriptor object
- AV Foundation 과 Vision APIs간의 상호작용을 제공하기위해 Core Image에 추가됨
- MusicKit 추가
- Apple Music catalog, User Library 에 접근할 수 있음
- Client Token/Storefront identifier를 얻기 위해 StoreKit에 기능 추가/업데이트
- Station Playback을 가능하게 하기 위해 Media Player에 기능 추가/업데이트
- Apple Music 구독 셋업 과정에 custom message를 출력 기능 추가
2. App Frameworks
주요 내용
iPad에서 Drag & Drop을 지원한다. (SplitView에서 동작) 공식적인 파일 탐색기를 지원한다. 다른 앱(구글 클라우드, iCloud, 드롭박스 등)들과 상호작용이 기대된다.
상세 내용
- IPad Drag and Drop / 멀티태스킹 스크린 지원
- Local/iCloud Document 를 Browsing 하는 것 지원 (파일 탐색기)
- Dynamic Type 지원 기능 개선
- Dynamic Type 을 위한 Auto Layout 기능 개선
- App Password autofill 에 대해 text content 를 업데이트
- username, password properties 를 UITextContentType 에 추가함
- Keyboard Extensions 업데이트
- 기기 저장공간 API 에 대한 개선
3. App Services
주요 내용
Core ML Framework를 지원함에 따라, 머신러닝을 구현 할 수 있게 되었다.
AppStore에서 미리 인앱결제(프로모션)을 할 수 있다. (paymentQueue(_:shouldAddStore:for:) 메소드 구현 필요)
SiriKit에 대한 지원이 강화된다. QR코드 및 TODO List 등의 기능이 추가되었다.
MPTCP(Multipath TC)를 지원한다.(여러개의 TCP Stream을 하나로 묶어서 데이터를 주고 받을 수 있다. URLSessionConfiguration 을 이용하여 설정한다)
상세 내용
- 기계 학습 모델 지원
- Core ML framework 추가
- 앱에 머신 러닝 구현을 쉽게 해주는 프레임워크
- Core ML framework 추가
- Visual codes(QR코드)를 SiriKit에서 지원
- 지불이나 연락처 정보교환을 위한 Visual code를 표시하도록 SiriKit에서 지원
- Note나 todo list 작성을 SiriKit에서 지원
- SiriKit 에 추가한 점들
- Payment domain에 송금이나 계좌 검색 기능을 추가
- Ride Booking domain에 Ride 취소 및 피드백 기능을 추가
- 디바이스의 방향(Heading)을 찾는 있는 기능 추가
- CMDeviceMotion 에 heading(CMAttitudeReferenceFrame에 대하여 heading 각도를 반환하는 property) 을 추가
- Multipath TCP
- Wifi/Celluar 와 같이 multiple interfaces를 사용하기 위한 기능 추가
- IETF RFC 6824에 정의된 Multipath TCP 를 지원하기 위해서, URLSessionConfiguration 를 확장하여, single data stream 전송을 위한 기능들 추가
- @see URLSessionConfiguration.MultipathServiceType
- DNS Proxy
- DNS Proxy App Extension type 추가
- Network Extension framework
- Apple Pay에서 User transaction flow 개선
App Store에서 In-app Purchase 프로모션 기능 추가
- 개발자는 자신들의 App Store 제품 페이지에서, 최대 20개의 In-app Purchase들을 Promote 할 수 있음
- 고객들은 App Store에서 구매를 시작할 수 있고, 앱에서 Transaction 처리를 마무리 할 수 있음
- paymentQueue(_:shouldAddStore:for:) 메소드 추가됨(SKPaymentTransactionObserver 에 추가됨)
- 여기서 promoted in-app purchases 를 처리
- Live Message
- MSMessageLiveLayout (game과 같은 dynamic contents를 표시할 수 있는 live message를 위한 new message layout)
- 각각의 Live message들은 자신의 MSMessagesAppViewController를 가지고 있음.
- 한번에 여러개의 active live message가 있을 수 있음
- HomeKit을 위한 향상된 triggers
- MapKit 업데이트
- 개발자 데이터를 명확하게 표시할 수 있도록 개선
4. Media and Web
주요 내용
사진(HEIF) 영상(HEVC->4K UHD) 음악(FLAC) 고압축 포맷을 지원한다.(미디어로 인한 용량관리 측면에서 큰 개선이다)
상세 내용
- High Efficiency의 Video Coding 지원 (HEVC)
- HEVC 는 새로운 비디오 인코딩의 표준. H.264와 비교해서 같은 비디오 퀄리티를 제공함과 동시에 향상된 압축률을 보임.
- High Efficiiency Image Format 지원 (HEIF)
- HEIF 는 새로운 이미지 압축의 표준. 동일한 이미지 퀄리티를 제공하며 2배에 가까운 데이터 압축률을 제공
- Depth Data에 대한 캡쳐 및 조작, 향상된 photo 캡쳐를 지원
- Automatic Storage Management
- HTTP Live Streaming Assets의 자동 스토리지 관리가 AVAssetDownloadTask에 추가되었습니다.
- 공간이 필요할 때, 시스템에서 만료되었거나 불필요한 다운로드를 자동으로 제거할 수 있습니다.
- 우선순위를 사용하여 삭제하는 정책에 영향을 줄 수 있습니다.
- AirPlay 2
- AV Foundation의 일부 오디오 재생 인터페이스에 대한 향상.
- 향상된 기능을 위해서는 AVPlayer의 AVSampleBufferAudioRenderer 객체를 사용해 오디오를 재생
- FairPlay 스트리밍 키 관리
- Live Photo 조절 기능 추가
5. Metal 2
주요 내용
기존의 Metal Framework는 병렬 데이터 처리 프레임워크였다. 이를 크게 개선한 Metal2가 출시되었으니 사용을 해보자.
상세 내용
- Metal2 : 향상된 3D 렌더링 / GPU 이용한 병렬 데이타 처리 프레임워크
- Neural Network 지원
- 크로스플랫폼 Metal Performance Shader 지원
6. Graphic and Games
주요 내용
증강현실(AR)을 지원한다. 그리고 고성능 이미지 분석을 지원한다. 하드웨어의 급격한 발전 덕분이다.
상세 내용
- AR (Augmented Reality) 지원
- ARKit framework 추가
- Device motion tracking
- camera scene capture
- 향상된 scene processing
- 증강현실 구현을 단순화하는 편리한 display
- ARKit framework 추가
- 이미지 분석 성능 개선
- Vision framework 추가
- Detecting faces, barcodes, text, image horizon, rectangular regions
- 이미지에 대하여 custom models을 구현하기 위해 Core ML(Machine Learning)
- Video에서 Object 트래킹
- Image registration에 대한 지원 포함
- Vision framework 추가
- Write custom image blending kernels for Core Image.
- Added CIBlendKernel, a special type of CIColorKernel to blend two images (supported by CIRenderDestination and CIImageAccumulator).
- Added init(functionName:fromMetalLibraryData:) to CIKernel for writing kernels using Metal to benefit from the modern language features and the reduced compile time.
- Lightweight render destination.
- Added CIRenderDestination, an object for creating renderers that return to the caller after the work has been issued. Functionality includes specifying all the destination attributes of the renderer for different destinations including IOSurface, CVPixelBuffer, GL textures, Metal textures, and memory.
- Extended ReplayKit framework.
- Updated RPScreenRecorder for screen capture and back camera support.
- Added new Core Image filters CITextImageGenerator, CIColorCurves, CILabDeltaE, CIBokehBlur, CIMinMaxRed, and CIBicubicScaleTransform.
7. System
주요 내용
iOS에서도 이제 NFC에 접근할 수 있다(애플페이에 사용되는 칩에 대한 권한을 써드파티 개발자에게 열어주었다. 다만, NFC 개방정책 자체는 불투명). Core NFC를 사용하면 된다.
상세 내용
- Hotspot configuration
- Hotspot configuration 을 위한 network extension 추가
- @see NEHotspotConfiguration
- Core Bluetooth framework 업데이트
- L2CAP Channels 지원
- session Restoration 확대 (Blutooth resets / device reboots 에 동작)
- NFC 태그 Detect / NDEF 데이터가 포함된 메시지 Read
- Core NFC 추가
- reading Near Field Communications (NFC) tags, data in NFC Data Exchange Format (NDEF.)
- Core NFC 추가
- APFS(Apple File System) is now the default filesystem.
- 참고 : http://macnews.tistory.com/4603#31