iOS 9 ã®æ°æ©è½ã®ãµã³ãã«ã³ã¼ãéãiOS-9-Samplerããå ¬éãã¾ãã
iOS 9 ã§ã大éã®æ°æ©è½ã追å ããã¾ããããæ°ããAPIã¯ã©ã使ãã®ããå®éã«ä½ãã©ãã¾ã§ã§ããã®ããã¨ãã£ãå ·ä½çãªã¨ããããè±èªã®ããã¥ã¡ã³ããåç»ããªããã¦ããã ãã ã¨æ£ç´ãã¾ããã³ã¨ãã¾ããããã¯ãå®éã«ã³ã¼ããæ¸ãã¦åããã¦ã¿ãã®ãä¸çªããããããã»ã»ã»ã¨ãããã¨ã§ä»å¹´ãã¤ããã¾ããï¼
æä¾ã® iOS 9 æ°æ©è½ã®ãµã³ãã«ã³ã¼ãå¯ãéãã¢ããªã§ããã½ã¼ã¹ã³ã¼ã㯠GitHub ã«ç½®ãã¦ããã®ã§ããèªç±ã«ãæ´»ç¨ããã ããã¨å¹¸ãã§ãã
使ãæ¹ã¯ Xcode 7 ã§ãã«ãããã ã ãªã®ã§ããã¶ã¤ãã¼ããããã£ã¬ã¯ã¿ã¼ããããã²ãè¿ãã®ã¨ã³ã¸ãã¢ã«ãã«ããã¦ããã£ã¦ãã ããã
Swift ã®ãã¼ã¸ã§ã³ 2.0 ããªã¼ãã³ã½ã¼ã¹åãã¤ãã«ãã¤ãã£ã対å¿ãã watchOS 2ãã¨ãã£ãããããããé²åã«å¯¾ããããªãæçãã¦ãã¾ã£ãããããã¾ãæå¾ ã®å£°ãèããªãï¼æ°ãããï¼ iOS 9 ã§ããããããã£ã¦ãµã³ãã«ãã¤ããã¯ããã¦ã¿ãã¨ããSearch APIsãããContent Blockerããã3D Touchãã¨ãã£ã話é¡ã«ç»ããããæ©è½ä»¥å¤ã«ããæå¤ã¨ãããããæ°æ©è½ãããããããã¨æãããã«ãªãã¾ããã
ä»ã®ã¨ãã21åã®ãµã³ãã«ãå ¥ã£ã¦ãã¾ããéæ追å ãã¦ããã¾ããæ©è½è¿½å ãã«ãªã¯å¤§æè¿ã§ãï¼
以ä¸åãµã³ãã«ã®ç´¹ä»ã§ãã
Map Customizations
ãããã¿ã¤ãã§æ°ãã«æå®ã§ããããã«ãªã£ã Flyover ãã交éæ¸æ»æ å ±ã表示ãã `showsTraffic` çã®ãµã³ãã«ã§ãã
ç¹ã« Flyover ã¯ãAppleã®ãMapsãã¢ããªã§ã¯ä»¥åããç»å ´ãã¦ãããã®ã®ããµã¼ããã¼ãã£è£½ã¢ããªã§ä½¿ããããã«ãªã£ãã®ã¯ä»åããã§ãä¸è¨ã®ããã«ããããã£ãã»ããããã ãã§ã
mapView.mapType = MKMapType.SatelliteFlyover mapView.mapType = MKMapType.HybridFlyover
ãããªæãã®ã¤ã³ãã¯ãã®ãã3Dããã表示ãå¯è½ã¨ãªãã¾ãã
Text Detector
CIDetector ã§æ°ãã«æå®ã§ããããã«ãªã£ã `CIDetectorTypeText` ãç¨ããæåèªèã®ãµã³ãã«ã
ç·è²ã®æ ãæ¤åºããæåé åã示ãã¦ãã¦ãï¼è¦ã¥ããã§ããï¼é»è²ã®æ ã¯åã ã®æåé åã示ãã¦ãã¾ãã
2種é¡ã®ç»åã¸ã®å¦ççµæãæ¯è¼ãã¦ã¿ãã¨ãåãã¹ããã«ã¼ãèªèãããã«ãã¦ããä¸ã®ç»åã®ããã«ãã¼ã¹ãããã£ã¦é°å½±ãããå ´åã¯ã°ãã¨ç²¾åº¦ãè½ã¡ãï¼å°å½¢è£æ£ãäºå¤åçã®åå¦çãããå¿ è¦ãããï¼ãã¨ããããã¾ãã
æ¬æ©è½ã«ã¤ãã¦ã¯ä¸è¨è¨äºã§ã解説ãã¦ãã¾ãã
New Image Filters
CIFilter ã«è¿½å ãããæ°ãããã£ã«ã¿ã®ãã¡ãéæ¢ç»ã«å¯¾ãã¦ããããããã®ã試ãããµã³ãã«ã
â»ä»ã®ã¨ãã29ã®ãã£ã«ã¿ã試ãã¾ããã`CISpotLight` ã«ã¤ãã¦ã¯æ£å¸¸ã«æ©è½ãã¦ãã¾ãããfilterAttributes çã確èªããã®ã§ããæ¹åæ¹æ³ã¯ä¸æããã«ãªã¯ãå¾ ã¡ãã¦ããã¾ãã
先日のスライド ã«ãæ¸ããã¨ãããä»åã®ã¢ãããã¼ã㯠Core Image ï¼CIFilterï¼ã«ã¨ã£ã¦ã¯ä¹
ã
ã®å¤§å¹
ã¢ãããã¼ããªã®ã§ããã®ãµã³ãã«ãè¦å¿ããããã¾ãã
Audio Unit Component Manager
æ°ã¯ã©ã¹ AudioUnitComponentManager ã使ç¨ãã¦å©ç¨å¯è½ãª Audio Unit Extension Component ã®ãªã¹ããæ½åºãããµã¦ã³ãã«åçã«é©ç¨ãããµã³ãã«ã
iOSããã¤ã¹ã« Audio Unit Extensions ãå ¥ã£ã¦ããã°ãããããæ½åºããã¾ãã
å³ä¸ã®ãShowAUVCããã¿ã³ã¯ãé¸æä¸ã® Audio Unit Extension Component ãç»é¢ï¼`AUViewController` ãç¶æ¿ããã¯ã©ã¹ï¼ãæã£ã¦ããå ´åã«æå¹ã«ãªãã¾ãã
Speech Voices
ãç§ã¯å¯¿å¸ã好ãã§ããã¨ããæãä¸çåå½ã®è¨èªã®åæé³å£°ã§ããã¹ããããµã³ãã«ã
CASpringAnimation
CASpringAnimation ãç¨ããã°ã風ã¢ãã¡ã¼ã·ã§ã³ã®ãµã³ãã«ã
ä¸è¨è¨äºãåèã«ããã¦ããã ãã¾ããã
UIStackView
UIStackView ã«ãããã¥ã¼ã追å ãã¦ãèªåçã«ã¬ã¤ã¢ã¦ã調æ´ããããã¨ãããµã³ãã«ã
Selfies & Screenshots
Photos ãã¬ã¼ã ã¯ã¼ã¯ã«è¿½å ããããµãã¿ã¤ãã`PHAssetCollectionSubtype.SmartAlbumSelfPortraits` ã¨`PHAssetMediaSubtype.PhotoScreenshot` ãå©ç¨ãããã©ãã©ã¤ãã©ãªããã»ã«ãã£ã¼ï¼èªæ®ãï¼ç»åã¨ã¹ã¯ãªã¼ã³ã·ã§ãããæ½åºãããµã³ãã«ã
ä¸è¨è¨äºãåèã«ããã¦ããã ãã¾ããã
String Transform
å°å³ã ãã©ã¡ãã£ã¨ãããããæ°æ©è½ "String transliteration"ï¼å訳ãé³è¨³ã¨ããæå³ãããï¼ã®ãµã³ãã«ã
ä¸ã¯ã²ãããªãã«ã¿ã«ãã«ãã¾ãå ¨è§ãåè§ã«å¤æãããµã³ãã«ã§ãä¸ã¯ "Hello, world!" ããã³ã°ã«ãã¢ã©ãã¢æåçã®å種è¨èªã®æåã«å¤æãããµã³ãã«ã§ãã
å¾è ã®è¨èªï¼æåï¼ã®ç½®ãæãã§ããã翻訳ã§ã¯ãªãããã¾ã§å訳ãªã®ã§ããã¨ãã° `NSStringTransformLatinToHiragana` ãæå®ããå ´åã"Hello, world!" ã®å¤æçµæ㯠ãã¸ã£ãããããã§ï¼ãã«ãªãã¾ããå®ç¨çãªã®ãä½ãªã®ãããããããªãæ©è½ã§ãããæµ·å¤ã«è¡ãã¨æå³ã¯ããããã¨ãã¨ã«ããèªã¿ãããã¨ããå ´é¢ãããï¼ã¡ãã¥ã¼åã¨ãï¼ã®ã§ãéè¦ã¯ããã®ããããã¾ããã
ä¸è¨è¨äºãåèã«ããã¦ããã ãã¾ããã
Core Image Transitions
CIFilter ã® `CITransitionCategory` ã«è¿½å ãããï¼ã¤ã®ãã©ã³ã¸ã·ã§ã³ã¨ãã§ã¯ãç¨ãã£ã«ã¿ã
- `CIRippleTransition`
- `CIPageCurlTransition`
- `CIPageCurlWithShadowTransition`
ãå©ç¨ããã«ã¹ã¿ã ç»é¢é·ç§»ã¨ãã§ã¯ãã®ãµã³ãã«ã
Core Image ãã«ã¹ã¿ã ç»é¢é·ç§»ã¨ãã§ã¯ãã«å©ç¨ããæ¹æ³ã«ã¤ãã¦ã®è©³ç´°ã¯ä¸è¨è¨äºã»ã¹ã©ã¤ããä½µãã¦ãåç §ãã ããã
Search APIs
Search APIs ã®ãµã³ãã«ãNSUserActivity ã使ããã®ã¨ãCore Spotlight ã使ããã®ã®2種é¡ãå®è£ ãã¦ããã¾ãã
Content Blockers
Content Blocker Extensions ã®ãµã³ãã«ã
ä¸è¨è¨äºãåèã«ããã¦ããã ãã¾ããã
SFSafariViewController
SFSafariViewController 㧠WEB ãã¼ã¸ãéãã·ã³ãã«ãªãµã³ãã«ã
Attributes of New Filters
iOS 9 ãããCIFilter ã® filterAttributes ã§åå¾ã§ããå±æ§æ å ±ã®ãã¼ã« `kCIAttributeFilterAvailable_iOS` ã¨ãããã®ãå ããã¾ããããã®ãã£ã«ã¿ã¯ iOS 8 ãã使ããããã«ãªã£ãããã¨ãããããæ å ±ã示ãå±æ§ã§ããæ¬ãµã³ãã«ã§ã¯ãã®å±æ§ãç¨ã㦠iOS 9 ã§æ°è¦è¿½å ããããã£ã«ã¿ 41 ç¨®é¡ ãæ½åºãããã®å±æ§æ å ±ã表示ãã¦ãã¾ãã
CIFilter ã®æ°ãããã£ã«ã¿ã¯ããã«ã¯ããã¥ã¡ã³ãã«åæ ãããªãã£ããããã®ã§ãããããå ´åã«ãã®ä¸è¦§ãå½¹ç«ã¡ã¾ãã
é¢é£è¨äºï¼
Low Power Mode
iOS 9 ããå ãã£ããLow Power Modeãè¨å®ããããã¢ããªããon/offãããã¨ã¯ã§ããªãã®ã§ãããè¨å®å¤æ´ãæ¤ç¥ãããã¨ã¯ã§ãã¾ãããã®ãµã³ãã«ï¼å°å³ãªã®ã§ã¹ã¯ã·ã§ã¯ãªãï¼
New Fonts
iOS 9 ã§æ°è¦è¿½å ããããã©ã³ã 31 種é¡ã®ãµã³ãã«ã
iOS 8 のときã¯æ°è¦è¿½å ãã©ã³ãã¯ãã£ãã®7種é¡ã ã£ãã®ã§ãã²ãã³ãã®å¤§å¹
追å ã§ã¯ãªãã§ããããã
Contacts
iOS 9 ã§æ°è¦è¿½å ããã Contacts framework ã®ãµã³ãã«ã
manhattan918 ãããã pull request ããã ãã¾ããã
ReplayKit
iOS 9 ã§æ°è¦è¿½å ããã ReplayKit framework ã®ãµã³ãã«ã
ä¸è¨ã®ãããªé常ã«ç°¡åãªã³ã¼ãã§
private let recorder = RPScreenRecorder.sharedRecorder()
recorder.startRecordingWithMicrophoneEnabled(true) { [unowned self] error in }
ãããªåç»ã¹ã¯ãªã¼ã³ãã£ããã£ãé²ããã¨ãã§ãã¾ãã
Contacts ãµã³ãã«ã«å¼ãç¶ããmanhattan918 ãããã pull request ããã ãã¾ããï¼
Quick Actions (3D Touch)
ãã¼ã ç»é¢ã®ã¢ã¤ã³ã³ãå¼·ã¿ããããã¨åºã¦ããä¾ã®ã¡ãã¥ã¼ã®ãµã³ãã«ãï¼è¦ 3D Touchï¼
å®è£
㯠Info.plist ã® `UIApplicationShortcutItems` ãã¼ã¨ãAppDelegate ã® `application:performActionForShortcutItem:completionHandler:` ã¡ã½ããã«ããã¾ãã
Force Touch (3D Touch)
3D Touch ã®æ¼ãå¼·ããå¯è¦åãããµã³ãã«ããã«ãã¿ããå¯ãUITouch ã«æ°è¦è¿½å ããã `force` 㨠`maximumPossibleForce` ããããã£ã使ç¨ãï¼è¦ 3D Touchï¼
Live Photos
iOS 9.1 ã§è¿½å ããã `PHLivePhoto` 㨠`PHLivePhotoView` ã使ç¨ãã¦ã©ã¤ããã©ãã表示ãããµã³ãã«ã
ãã¡ãã«å®è£ ã®è§£èª¬è¨äºãæ¸ãã¾ããã
ãããã«
watchOS 2 ã®ãµã³ãã«éã¯ãã¡ãï¼æ£å¼ãªãªã¼ã¹ããããã¹ã¯ãªã¼ã³ã·ã§ãããè²¼ã£ã¦ããã¾ãã