7:25
https://developer.apple.com/videos/play/fall2017/601/
iPhone Xから導入されたARKitがどのような場面で使われるのか。使用する場合の手順の概要を示す。が、何ができるかとどういうクラスがあるのかの概要。そして、どういう手順か程度の解説だけで具体性がないので、ちょっとこれだけでは使えそうにない。あくまでも入り口だけ。
□Common Usage
Selfie effects
Face capture
□Getting Started
ARConfiguration
ARSession
AVCaptureSession
CMMotionManager
ARFrame
ARFaceTrackingConfiguration
ARFaceAnchor
ARFaceGeometry
ARSCNFaceGeometry
ARBlendSapeLocation
ARDirectionalLightEstimate
AVDepthData
2017年11月08日
Fall 2017 | Session 204 | iOS Storage Best Practices
8:53
https://developer.apple.com/videos/play/fall2017/204/
アプリケーションで保存したファイルはXcode の Devices and Simulators ウインドウで、アプリケーションをMacにダウンロードすることができる。
□iCloud Drive
他のデバイスからもアクセス可能。
ローカルにもキャッシュする。
□Document Directory
Files.appで可視化。
・Support "Open in Place"
・Suppot "File Sharing Enabled"
Info.plistで設定する。
□Application Supoort Directory
ファイルを保存するが、見せたくない場合。
階層化可能
iClound/iTunesにバックアップされる
Documents&Dataのディスク使用量に含まれる
□Cashes Directory
パージ可能な一時的データ
ダウンロード可能なデータ
□Temporary Directory
一時ファイル
実行後
バックアップされない。
Documents&Dataのディスク使用量に含まれない
□Best Practice
NSURLIsExcludedFromBackupKey
Cloud or Local(一方にのみ保存するべき)
NSURLVolumeAvailableCapacityForImportantUsageKey
NSURLVolumeAvailableCapacityForOpportunisticUsageKey
https://developer.apple.com/videos/play/fall2017/204/
アプリケーションで保存したファイルはXcode の Devices and Simulators ウインドウで、アプリケーションをMacにダウンロードすることができる。
□iCloud Drive
他のデバイスからもアクセス可能。
ローカルにもキャッシュする。
□Document Directory
Files.appで可視化。
・Support "Open in Place"
・Suppot "File Sharing Enabled"
Info.plistで設定する。
□Application Supoort Directory
ファイルを保存するが、見せたくない場合。
階層化可能
iClound/iTunesにバックアップされる
Documents&Dataのディスク使用量に含まれる
□Cashes Directory
パージ可能な一時的データ
ダウンロード可能なデータ
□Temporary Directory
一時ファイル
実行後
バックアップされない。
Documents&Dataのディスク使用量に含まれない
□Best Practice
NSURLIsExcludedFromBackupKey
Cloud or Local(一方にのみ保存するべき)
NSURLVolumeAvailableCapacityForImportantUsageKey
NSURLVolumeAvailableCapacityForOpportunisticUsageKey
2017年11月07日
Fall 2017 | Session 801 | Designing for iPhone X
12:50
https://developer.apple.com/videos/play/fall2017/201/
□iPhone X向けでデザイン上考慮すべき点
・ディスプレイ解像度
375 x 812pt(1125 x 2436px)
幅は4.7" Displayと同じ。
高さは 145pt 高い。667pt +145pt = 812pt
sensor housingがあるのも違い。
・ホームボタンに代わるインタフェース分を考慮する必要がある
□UIKit and Auto Layout
・新しいレイアウト要素が追加された。
Navigation Bar, Tab bar ,Status bar
Safe Area lauout guide
・従来モデルでは表示エリアとSafe Areaは同一。
iPhone Xでは表示エリアの内側にSafe Areaがある。
どちらも、Compact Width (Landscape)になる。
・Custom Layoutの場合
フルスクリーンアプリの場合アスペクト比が違うことに注意。
16:9
四隅にコントロールを置く場合には注意が必要。デバイス
Status barは4.7"より高くなっている。
Landscapeモードで左右で違いがでないようにすること(sensor housingがあるため)。
・Edge Protection
下端のスワイプ、タップでコントロールを引き出す場合があるので気を付ける。
https://developer.apple.com/videos/play/fall2017/201/
□iPhone X向けでデザイン上考慮すべき点
・ディスプレイ解像度
375 x 812pt(1125 x 2436px)
幅は4.7" Displayと同じ。
高さは 145pt 高い。667pt +145pt = 812pt
sensor housingがあるのも違い。
・ホームボタンに代わるインタフェース分を考慮する必要がある
□UIKit and Auto Layout
・新しいレイアウト要素が追加された。
Navigation Bar, Tab bar ,Status bar
Safe Area lauout guide
・従来モデルでは表示エリアとSafe Areaは同一。
iPhone Xでは表示エリアの内側にSafe Areaがある。
どちらも、Compact Width (Landscape)になる。
・Custom Layoutの場合
フルスクリーンアプリの場合アスペクト比が違うことに注意。
16:9
四隅にコントロールを置く場合には注意が必要。デバイス
Status barは4.7"より高くなっている。
Landscapeモードで左右で違いがでないようにすること(sensor housingがあるため)。
・Edge Protection
下端のスワイプ、タップでコントロールを引き出す場合があるので気を付ける。
2017年11月06日
Fall 2017 | Session 201 | Building Apps for iPhone X
https://developer.apple.com/videos/play/fall2017/201/
13:35
いよいよiPhone Xが発売されましたが、iPhone X対応アプリを実装するためのビデオが公開されていました。Fall 2017と題する短いビデオクリップ集。
このセッションではiPhone X対応するために必要なコード等の修正点を簡潔に伝えています。一応iOS 11対応という形でiOS 11で導入されたAPIですがすべてiPhone Xでセンサーカメラ部分が導入されたり、コントロールセンサーが代わったりしたことに対応する方法。
WWDCアプリを例に示している。
□Auto Layout
Auto Layoutを使っていれば自動的にiPhone Xのレイアウトに対応可能。
新たに導入された Safe Area に注意する必要がある。スクリーンの表示エリアとコントロールを配置してよいエリアに違いがある。Safe Area外に追加すると、コントロールセンターの操作と競合することになる。XibファイルでレイアウトするときにSuperview に接続するのではなく、Safe Area に接続する。
□サーチコントローラー(Swift)
サーチコントロールをテーブルビューで使う場合、サーチコントロールを生成して親コントローラー上でpresent()するだけでよかった。バックグラウンドカラーが違ったり、ランドスケープモードでクリッピングエリアがコントロールを隠したりすることになる。
iOS11では(iPhone Xに対応するためには)navigationItem に追加する必要がある(コードは6:40あたり)。
□テーブルビューのヘッダのサーチフール度(Objective-C)
□テーブルビューのセル
テーブルセル内のContent Viewはデフォルトで Safe Area 内に配置されるが、Xib の「Content View Insets To Safe Area」をチェックをはずすとSafe Area外まで表示させることができる。
また「Use Safe Area Layout Guides」をチェックする。
□Summary
iOS 11 SDKを使う。Launch Storyboardを使う。
縦横両方のレイアウトでテストする。
Safe Areas に気を付ける
・safeAreaLayoutGuide for Auto Layout
・safeAreaInsets for manual calculations
13:35
いよいよiPhone Xが発売されましたが、iPhone X対応アプリを実装するためのビデオが公開されていました。Fall 2017と題する短いビデオクリップ集。
このセッションではiPhone X対応するために必要なコード等の修正点を簡潔に伝えています。一応iOS 11対応という形でiOS 11で導入されたAPIですがすべてiPhone Xでセンサーカメラ部分が導入されたり、コントロールセンサーが代わったりしたことに対応する方法。
WWDCアプリを例に示している。
□Auto Layout
Auto Layoutを使っていれば自動的にiPhone Xのレイアウトに対応可能。
新たに導入された Safe Area に注意する必要がある。スクリーンの表示エリアとコントロールを配置してよいエリアに違いがある。Safe Area外に追加すると、コントロールセンターの操作と競合することになる。XibファイルでレイアウトするときにSuperview に接続するのではなく、Safe Area に接続する。
□サーチコントローラー(Swift)
サーチコントロールをテーブルビューで使う場合、サーチコントロールを生成して親コントローラー上でpresent()するだけでよかった。バックグラウンドカラーが違ったり、ランドスケープモードでクリッピングエリアがコントロールを隠したりすることになる。
iOS11では(iPhone Xに対応するためには)navigationItem に追加する必要がある(コードは6:40あたり)。
let serchController = UISerchController(serchResultsController: nil)
serchController.serchResultsUpdater = self
serchController.obscuresBackgroundDuringPresentation = false
serchController.serchBar.text = serchText
if #available(iOS 11.0, *) {
self.navigationItem.serchController = searController
serchController.isActive = true
} else {
present(searchController, animated: true, copletion: nil )
}
□テーブルビューのヘッダのサーチフール度(Objective-C)
if (@available(iOS 11.0, *) {
self.navigationItem.serchController = self.serchController;
self.navigationItem.serchController.active = showSearchBar;
} else {
if ( _showSerchBar ) {
self.tableView.tableHeader =
self.serchController.searchBar;
} else {
self.tableView.tableHeaderView = nil;
}
}□テーブルビューのセル
テーブルセル内のContent Viewはデフォルトで Safe Area 内に配置されるが、Xib の「Content View Insets To Safe Area」をチェックをはずすとSafe Area外まで表示させることができる。
また「Use Safe Area Layout Guides」をチェックする。
□Summary
iOS 11 SDKを使う。Launch Storyboardを使う。
縦横両方のレイアウトでテストする。
Safe Areas に気を付ける
・safeAreaLayoutGuide for Auto Layout
・safeAreaInsets for manual calculations
2017年06月09日
WWDC17 | Session 201 | What's New in Cocoa Touch
WWDC17 | Session 201 | What's New in Cocoa Touch
40:25
https://developer.apple.com/videos/play/wwdc2017/201/
Cocoa touchで新たに導入された機能などの概要。詳細は別セッションで。
■新機能
□ドラッグアンドドロップ
・ドラッグするビューに UIDragInteraction を追加する。
・受け入れるビューに UIDropInteraction を追加する。
・始めからサポートされているビュー:
TableView, CollectionView, TextView, TextField, WebView
・UIPasteConfiguration
□ファイル管理
・UIDocumentBrowserViewControllerを使う。
・ローカルファイルやネットワークファイルにもアクセスできる。
・複数のアプリが同じファイルにアクセスするのでアクセス管理が必要。
・そのために NSFileCoordinator や UIDocument を使うと良い。
■UIの変更
□Large Title
ナビゲーションバーのトップのタイトルを大きくする。検索フィールドとの一体化。メインのビューをスクロールしたときに自動的に縮小する。読み込み中のスピン表示も一体化。
上下のエリアが可変になったのでそこを調整する必要がある。
□Swipe Actions
・テーブルビューのスワイプ時の機能をカスタマイズできるようになった。
UISwipeActionsConfiguration
UIContetxualAction
■API変更
□Swift 4
・enum, struct を Codable にする。NSCoding, JSON, Porperty lists
・\記法でのキーパス表記が可能になった。
・KVO
□画面上部からのノーティフィケーションセンター、下部からのコントロールセンター表示
□Auto Layout and Scroll View
centerXAnchor
□Dynamic Type
カスタムフォントへの対応
ラインスペースへの対応
Visual Fromatting Language への対応
□Password 自動入力
□アセットカタログ
・UIColor を名前で作成
・PDFベースの画像
□可変リフレッシュレート
□ローカリゼーション
RL表記言語へのUIの対応
40:25
https://developer.apple.com/videos/play/wwdc2017/201/
Cocoa touchで新たに導入された機能などの概要。詳細は別セッションで。
■新機能
□ドラッグアンドドロップ
・ドラッグするビューに UIDragInteraction を追加する。
・受け入れるビューに UIDropInteraction を追加する。
・始めからサポートされているビュー:
TableView, CollectionView, TextView, TextField, WebView
・UIPasteConfiguration
□ファイル管理
・UIDocumentBrowserViewControllerを使う。
・ローカルファイルやネットワークファイルにもアクセスできる。
・複数のアプリが同じファイルにアクセスするのでアクセス管理が必要。
・そのために NSFileCoordinator や UIDocument を使うと良い。
■UIの変更
□Large Title
ナビゲーションバーのトップのタイトルを大きくする。検索フィールドとの一体化。メインのビューをスクロールしたときに自動的に縮小する。読み込み中のスピン表示も一体化。
class UINviationBar {
var prefersLargeTitle: Bool
}
class UINavigationItem {
var largeTitleDisplayMode: LargeTitleDisplayMode
var serchController: UISerchController?
}上下のエリアが可変になったのでそこを調整する必要がある。
class UIView {
var safeAreaLayoutGuide: UILayoutGuid: { get }
var safeAreaInsets: UIEdgeInsets { get }
func safeAreaInsetsDidChange()
}
class UIScrollView {
var contentInsetAdjustmentBehaviro: UIScrollViewContntInsetAdjustmentBehavior
var adjustedContentInset: UIDegeInsets { get }
}□Swipe Actions
・テーブルビューのスワイプ時の機能をカスタマイズできるようになった。
UISwipeActionsConfiguration
UIContetxualAction
class UITableView {
var separatorInsetReference: UITableViewSeparatorInsetReference
}■API変更
□Swift 4
・enum, struct を Codable にする。NSCoding, JSON, Porperty lists
・\記法でのキーパス表記が可能になった。
・KVO
□画面上部からのノーティフィケーションセンター、下部からのコントロールセンター表示
class UIViewController {
func preferredScreenEdgesDeferringSystemGestures() -> UIRectEdge
}□Auto Layout and Scroll View
class UIScrollView {
var contentLayoutGuide: UILayoutGuide { get }
var frameLayoutGuide: UILayoutGuide { get }
}centerXAnchor
□Dynamic Type
カスタムフォントへの対応
ラインスペースへの対応
Visual Fromatting Language への対応
□Password 自動入力
□アセットカタログ
・UIColor を名前で作成
・PDFベースの画像
□可変リフレッシュレート
□ローカリゼーション
RL表記言語へのUIの対応

