53:10
https://developer.apple.com/videos/play/wwdc2017/212/
iOS, macOS他のどのOSでも共通で使用するFoundation Frameworkの更新状況。
新しいAPIや速度等の改善、キーパス/キーバリュー監視、コード化の三つの話題。
■主な新規API
概要のみ。
□新機能
File provider communication
Improved available storage space API
Improved NSString ↔ Swift String range conversion Discrete NSProgress support in NSXPCConnection Thermal notifications on iOS
□速度向上
Copy-on-write NSArray, NSDictionary, NSSet
Data inlining
Faster calendrical calculations with lower peak memory Faster bridging of NSNumber to and from Swift
続きを読む
2017年11月30日
2017年11月29日
WWDC17 | Session 810 | What's New in iOS11
8:47
https://developer.apple.com/videos/play/wwdc2017/810/
iOS11のデザイン上の変更点を短いビデオで解説している。フラットデザインで導入されたデザイン哲学はコンテンツファースト。コンテンツを目立たせるためにUI 要素を目立たなくしたが、ナビゲーションなど不備な部分を修正している。
Wayfinding
Typographic Hierarchy
Contrast
□Wayfinding
Large Titleなどを導入。ラベル表示の差別化をできるようにしている。
Large TitleはナビゲーションTop levelを強調するなどに使用できる。
□Typographic Hierarchy
ラベルを二つ並べるにしても重要性は同一ではないはず、これをわかりやすくするために、Size, Weight, Colorなどで判断できるようにする。
iOS10とiOS11のApple標準のアプリ(写真、天気等)で違いを比較。
https://developer.apple.com/videos/play/wwdc2017/810/
iOS11のデザイン上の変更点を短いビデオで解説している。フラットデザインで導入されたデザイン哲学はコンテンツファースト。コンテンツを目立たせるためにUI 要素を目立たなくしたが、ナビゲーションなど不備な部分を修正している。
Wayfinding
Typographic Hierarchy
Contrast
□Wayfinding
Large Titleなどを導入。ラベル表示の差別化をできるようにしている。
Large TitleはナビゲーションTop levelを強調するなどに使用できる。
□Typographic Hierarchy
ラベルを二つ並べるにしても重要性は同一ではないはず、これをわかりやすくするために、Size, Weight, Colorなどで判断できるようにする。
iOS10とiOS11のApple標準のアプリ(写真、天気等)で違いを比較。
2017年11月24日
Fall 2017 | Session 203 | Updating for Apple Watch Series 3
12:22
https://developer.apple.com/videos/play/fall2017/203/
Apple Watch Series3 では単独でcellular connectionをもつことができるようになった。この機能を使うときの注意点について述べている。
□URLSession
ネットワーク接続時に使うクラス。ネットワークアクセスが可能な時にのみ使う。
WKExtension クラスを使えば、connection typeがわかる。
小さいデータの転送に使う。
転送は保留させる可能性がある。
新しいデータが到着するとアプリが前面に起こされる。
□Bset Practices
SCNetworkReachablitilyを使うより、 waitsForConnectiovity を使う。
applicationWillResignActive() のときに、リクエストをキャンセルする。
複数のタスクがあっても単一の URLSession 共有して使う。
□Watch Connectitvity
Use for initial setup
Background transfers
Update application context for newer data
□Barometric Altimeter
Core Modtionデータをどのように使うかをサンプルコードで示す。
CMAltimeter
CMAltitudeData
9:50〜コード例
https://developer.apple.com/videos/play/fall2017/203/
Apple Watch Series3 では単独でcellular connectionをもつことができるようになった。この機能を使うときの注意点について述べている。
□URLSession
ネットワーク接続時に使うクラス。ネットワークアクセスが可能な時にのみ使う。
WKExtension クラスを使えば、connection typeがわかる。
小さいデータの転送に使う。
転送は保留させる可能性がある。
新しいデータが到着するとアプリが前面に起こされる。
□Bset Practices
SCNetworkReachablitilyを使うより、 waitsForConnectiovity を使う。
applicationWillResignActive() のときに、リクエストをキャンセルする。
複数のタスクがあっても単一の URLSession 共有して使う。
□Watch Connectitvity
Use for initial setup
Background transfers
Update application context for newer data
□Barometric Altimeter
Core Modtionデータをどのように使うかをサンプルコードで示す。
CMAltimeter
CMAltitudeData
9:50〜コード例
2017年11月23日
Fall 2017 | Session 202 | Updating Your App for Apple TV 4K
2:49
https://developer.apple.com/videos/play/fall2017/202/
Apple TV 4Kに対応するための主な差分の概要を短時間で説明。
4K Retina, P3, A10X, Siri Remote
□高解像度レティナディスプレイに対応する
Launch Image 2xイメージを用意する
App Icon 2xイメージを用意する
Top Self Image
UIScreen.main.nativeScale // -> 2
UIScreen.main.nativeBounds // -> 3840.0, 2160.0 (pixels)
UIScreen.main.bounds // -> 1920.0, 1080.0 (points)
Wide Color
□Media Apps
Up to 4k resolution
Dolby Vision, HDR10
HEVC(fMP4)
□Siri Remote
方向と回転が取得できるようになった。
GCMotion
@available(tvOS 11.0, *)
var hasAttitudeAndRotationRate: Bool { get }
@available(tvOS 11.0, *)
var attitude: GCQuaternion { get }
@available(tvOS 11.0, *)
var rotationRate: GCRotationRate { get }
https://developer.apple.com/videos/play/fall2017/202/
Apple TV 4Kに対応するための主な差分の概要を短時間で説明。
4K Retina, P3, A10X, Siri Remote
□高解像度レティナディスプレイに対応する
Launch Image 2xイメージを用意する
App Icon 2xイメージを用意する
Top Self Image
UIScreen.main.nativeScale // -> 2
UIScreen.main.nativeBounds // -> 3840.0, 2160.0 (pixels)
UIScreen.main.bounds // -> 1920.0, 1080.0 (points)
Wide Color
□Media Apps
Up to 4k resolution
Dolby Vision, HDR10
HEVC(fMP4)
□Siri Remote
方向と回転が取得できるようになった。
GCMotion
@available(tvOS 11.0, *)
var hasAttitudeAndRotationRate: Bool { get }
@available(tvOS 11.0, *)
var attitude: GCQuaternion { get }
@available(tvOS 11.0, *)
var rotationRate: GCRotationRate { get }
2017年11月22日
Fall 2017 | Session 503 | Introduction to AVDisplayManager
6:20
https://developer.apple.com/videos/play/fall2017/503/
tvOS 11.2, Apple tv 4K で可能となったビデオモードの自動切替についての解説。
□自動切替
・SDR/HDRなど、フレームレートやダイナミックレンジは視聴するビデオに応じて自動変更される。
・ただし、Apple TVの設定でオフにできる。
60Hz/Dolby Vision→24Hz/SDR
□HLS Playlist Authoring
FRAME-RATE
VIDEO-RANGE (optional)
□実装
avPlayerViewController.appliesPreferredDisplayCriteriaAUtomatically = true/false
で切り替える。falseで自動スイッチ停止
AVPlayerViewControllerを使えば全画面表示になる。
AVDisplayManagerを使いNon-fullsceen playback
スイッチするためにディスプレイ設定を表示するビデオから取得する。
let displayCriteria = avAsset.preferredDisplayCriteria
let displayManager = self.view.window.avDisplayManager
displayManager.preferredDisplayCriteria = displayCriteria
デフォルトに戻す。
displayManager.preferredDisplayCriteria = nil
□助言
モード切替は必要最小限にする。
モード切替はフルスクリーン再生時に使う。
主UIではシステムフレームレートを使う。
次のような場合、切替は行わない。
短いクリップ
複数のビデオの同時再生
頻繁な切替
https://developer.apple.com/videos/play/fall2017/503/
tvOS 11.2, Apple tv 4K で可能となったビデオモードの自動切替についての解説。
□自動切替
・SDR/HDRなど、フレームレートやダイナミックレンジは視聴するビデオに応じて自動変更される。
・ただし、Apple TVの設定でオフにできる。
60Hz/Dolby Vision→24Hz/SDR
□HLS Playlist Authoring
FRAME-RATE
VIDEO-RANGE (optional)
□実装
avPlayerViewController.appliesPreferredDisplayCriteriaAUtomatically = true/false
で切り替える。falseで自動スイッチ停止
AVPlayerViewControllerを使えば全画面表示になる。
AVDisplayManagerを使いNon-fullsceen playback
スイッチするためにディスプレイ設定を表示するビデオから取得する。
let displayCriteria = avAsset.preferredDisplayCriteria
let displayManager = self.view.window.avDisplayManager
displayManager.preferredDisplayCriteria = displayCriteria
デフォルトに戻す。
displayManager.preferredDisplayCriteria = nil
□助言
モード切替は必要最小限にする。
モード切替はフルスクリーン再生時に使う。
主UIではシステムフレームレートを使う。
次のような場合、切替は行わない。
短いクリップ
複数のビデオの同時再生
頻繁な切替

