iOS 7에서 드디어! 추가된 기능들

본문의 글은 DoubleEncore의 iOS7 Additions:OMG Finally! 를 참고하여 작성되었습니다.
(This article is refer to iOS 7 Additions: OMG Finally! at DoubleEncore)

 

iOS7이 발표된지도 꽤 많은 시간이 지났습니다만 이제서야 review를 하네요…
바로 본문으로 들어갈게요.

1. Support Attachments at Message UI Framework.

개발 시 앱 내에서 iMessage 기능을 편하게 사용하기 위해서 MFMessageComposeViewController를 사용해왔을 것입니다. 이 클래스의 약점 중 하나는 code-level에서 첨부 파일을 넣을 수 없다는 것이였죠.

- (BOOL)addAttachmentData:(NSData *)attachmentData typeIdentifier:(NSString *)uti filename:(NSString *)filename;
- (BOOL)addAttachmentURL:(NSURL *)attachmentURL withAlternateFilename:(NSString *)alternateFilename;

위 두 메소드가 추가되며 드디어 메시지에 첨부파일을 첨부할 수 있게 되었습니다.
Data의 경우 MobileCoreService Framework에 포함된 UTCoreTypes에 정의된 파일형식이라면 대부분 가능한 것 같습니다. 단, 용량제한이나 기타 제한에 대해서는 충분하게 테스트해보지 않았으니 참고하세요.

2. MPVolumeView in Media Player Framework

MPVolumeView는 단말의 볼륨을 조절하는 슬라이더와 라우팅할 오디오 소스를 선택할 수 있도록 해주었습니다만 AirPlay system의 정보를 얻기에는 부족함이 있었습니다.

@property areWirlessRoutesAvailable;
@property isWirelessRouteActive;

NSString *const MPVolumeViewWirelessRoutesAvailableDidChangeNotification;
NSString *const MPVolumeViewWirelessRoutesActiveDidChangeNotification;

하지만 iOS 7부터 위 코드처럼 두 개의 프로퍼티와 두 개의 노티피케이션이 추가되며 AirPlay system를 더 효율적으로 컨트롤 할 수 있게 되었습니다.

areWirelessRoutesAvailable는 현재 AirPlay가 사용 가능한 route가 있는지 여부를 BOOL 값으로 리턴해주며, isWirelessRouteActive는 현재 AirPlay route가 활성화되어 있는지 여부를 BOOL 값으로 리턴합니다.

MPVolumeViewWirelessRoutesAvailableDidChangeNotification과 MPVolumeViewWirelessRoutesActiveDidChangeNotification은 사용 가능한 route가 있을 때와 active 상태가 변경되었을 때 호출됩니다.

3. Scanning for BarCode using AVFoundation

AVFoundation에서 1차원과 2차원 BarCode를 읽을 수 있게 되었습니다. iOS 7 이전에는 ZXing이나 ZBar와 같은 3rd party에서 만든 라이브러리를 이용했었습니다만 이제 iOS 에 내장된 프레임워크만으로도 쉽게 바코드 스캔이 가능해졌습니다.

사용 방법은 Custom Camera/Video 를 구현할 때와 유사하게 AVCaptureSession에 AVCaptureMetadataOutput을 연결하면 됩니다. AVCaptureMetadataOutput에서 지원하는 바코드 종류는 아래와 같습니다.

AVMetadataObjectTypeUPCECode
AVMetadataObjectTypeCode39Code
AVMetadataObjectTypeCode39Mod43Code
AVMetadataObjectTypeEAN13Code
AVMetadataObjectTypeEAN8Code
AVMetadataObjectTypeCode93Code
AVMetadataObjectTypeCode128Code
AVMetadataObjectTypePDF417Code
AVMetadataObjectTypeQRCode
AVMetadataObjectTypeAztecCode

이상 드디어!! 추가된 기능들 3가지를 알아봤습니다.
리뷰하면서 작성해 본 샘플코드는 https://github.com/YoonBongKim/iOS7-Samples 에서 보실 수 있습니다.

앞으로도 DoubleEncore에 작성된 글 기준으로 앞으로도 틈틈히 iOS7에서 추가 혹은 변경된 기능들을 리뷰해볼게요.

다음 시간에… =3=33

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.