永野 哲久 / @7gano - cloud object storage | store ... ドキュメントブラウザapi ........
TRANSCRIPT
i目次
目次
はじめに 1
0.1 本書について ................................................................................................................... 1
0.2 本書の読み方 ................................................................................................................... 2
0.3 サンプルコード ................................................................................................................ 2
0.4 クラウドファンディングとPEAKS ..................................................................................... 2
0.5 謝辞 ................................................................................................................................ 2
第1章 iOS 11 概要 永野 哲久 / @7gano 3
第2章 ARKit 堤 修一 / @shu223 7
2.1 はじめに .......................................................................................................................... 7
2.2 ARKit入門その1 - 最小実装で体験してみる ...................................................................... 7
2.3 ARKit入門その2 - 水平面を検出する .............................................................................. 11
2.4 ARKit入門その3 - 検出した水平面に仮想オブジェクトを置く .......................................... 16
2.5 ARKit開発に必須の機能 .................................................................................................. 17
2.6 特徴点(Feature Points)を利用する ............................................................................... 22
2.7 AR空間におけるインタラクションを実現する .................................................................. 24
2.8 アプリケーション実装例1: 現実空間の長さを測る ........................................................... 30
2.9 アプリケーション実装例2: 空中に絵や文字を描く ........................................................... 33
2.10 アプリケーション実装例3: Core ML + Vision + ARKit .................................................... 37 2.11 Metal + ARKit ............................................................................................................... 39
第3章 Core ML 吉田 悠一 / @sonson_twit 41
3.1 はじめに ........................................................................................................................ 41
3.2 Core MLのために学ぶ機械学習 ....................................................................................... 42
3.3 Core ML ........................................................................................................................ 53
3.4 実装 .............................................................................................................................. 58
3.5 Core MLの短所 .............................................................................................................. 75
3.6 まとめ ........................................................................................................................... 77
3.7 参考文献 ........................................................................................................................ 78
ii 目次
第4章 Swift 4の新機能とアップデート 池田 翔 / @ikesyo 79
4.1 はじめに ........................................................................................................................ 79
4.2 Codableプロトコル ....................................................................................................... 79
4.3 Smart KeyPaths .......................................................................................................... 100
4.4 参考文献 ...................................................................................................................... 106
第5章 Xcode 9 の新機能 坂田 晃一 / @huin 107
5.1 はじめに ...................................................................................................................... 107
5.2 開発フェーズの新機能 .................................................................................................. 108
5.3 デバッグフェーズの新機能 ............................................................................................ 120
5.4 テストフェーズの新機能 ............................................................................................... 123
5.5 Xcodeサーバーの利用 .................................................................................................. 135
5.6 まとめ ......................................................................................................................... 145
第6章 Drag and Drop 加藤 尋樹 / @cockscomb 147
6.1 ドラッグ&ドロップによるデータのやり取り .................................................................. 147
6.2 ドラッグ ...................................................................................................................... 154
6.3 ドロップ ...................................................................................................................... 161
6.4 スプリングローディング ............................................................................................... 166
6.5 UITableViewとUICollectionView ................................................................................. 167
6.6 UITextViewとUITextField ............................................................................................ 175
第7章 FilesとDocument Based Application 加藤 尋樹 / @cockscomb 179
7.1 はじめに ...................................................................................................................... 179
7.2 Filesアプリ ................................................................................................................. 179
7.3 ドキュメントブラウザAPI ............................................................................................. 180
7.4 Document-Based Appの実装 ....................................................................................... 181
7.5 Thumbnail Extension ................................................................................................... 190
7.6 Quick Look Preview Extension .................................................................................... 192
7.7 おわりに ...................................................................................................................... 193
iii目次
第8章 レイアウト関連の新機能及び変更点 川邉 雄介 / @jeffsuke 195
8.1 ラージタイトルとUINavigationBar ................................................................................ 195
8.2 Auto Layoutとレイアウト手法のアップデート ............................................................... 198
8.3 iOS 11におけるアクセサビリティ、ダイナミックタイプ関連のアップデート .................... 207
8.4 参考文献 ...................................................................................................................... 212
第9章 Core NFC 岸川 克己 / @k_katsumi 213
9.1 はじめに ...................................................................................................................... 213
9.2 NFCを使ったアプリケーションの例 .............................................................................. 213
9.3 Core NFCでできること ................................................................................................ 213
9.4 Core NFCのAPI構成 .................................................................................................... 214
9.5 まとめ ......................................................................................................................... 221
第10章 PDF Kit 岸川 克己 / @k_katsumi 223
10.1 はじめに ...................................................................................................................... 223 10.2 PDF Kitとは ................................................................................................................ 223 10.3 基本的な使い方 ............................................................................................................ 225 10.4 PDFView ..................................................................................................................... 227 10.5 PDFThumbnailView ..................................................................................................... 234 10.6 PDFDocument ............................................................................................................. 236 10.7 PDFSelection .............................................................................................................. 251 10.8 PDFAnnotation(注釈とフォーム) ................................................................................ 253
第11章 SiriKit 岸川 克己 / @k_katsumi 263
11.1 SiriKitとは .................................................................................................................. 263 11.2 iOS 11の変更点 ........................................................................................................... 263 11.3 動作のしくみ ............................................................................................................... 266 11.4 アプリ実装の準備 ......................................................................................................... 270 11.5 サンプルプロジェクト:To-Do管理とメモ帳(List and Notes) ...................................... 275 11.6 サンプルプロジェクト:QRコード表示 .......................................................................... 282 11.7 Extensionのデバッグ ................................................................................................... 288 11.8 まとめ ......................................................................................................................... 291
iv 目次
第12章 HomeKit入門とiOS 11のアップデート 所 友太 / @tokorom 293
12.1 はじめに ...................................................................................................................... 293 12.2 HomeKit入門 .............................................................................................................. 294 12.3 iOS 11でのアップデートまとめ .................................................................................... 318 12.4 HomeKit実践 .............................................................................................................. 326 12.5 まとめ ......................................................................................................................... 339 12.6 HomeKitお役立ちリファレンス ..................................................................................... 340 12.7 サンプルコード ............................................................................................................ 346
第13章 Metal 堤 修一 / @shu223 349
13.1 はじめに ...................................................................................................................... 349 13.2 Metalの概要 ................................................................................................................ 349 13.3 Metalの基礎 ................................................................................................................ 351 13.4 MetalKit ...................................................................................................................... 354 13.5 Metal入門その1 - 画像を描画する ............................................................................... 356 13.6 Metal入門その2 - シェーダを利用する ......................................................................... 362 13.7 Metal入門その3 - シェーダでテクスチャを描画する ..................................................... 371 13.8 ARKit+Metalその1 - マテリアルをMetalで描画する .................................................... 375 13.9 ARKit+Metalその2 - MetalによるARKitのカスタムレンダリング .................................. 379 13.10 Metal 2 ....................................................................................................................... 380 13.11 Metalを動作させるためのハードウェア要件 .................................................................. 384
第14章 Audio関連アップデート 永野 哲久 / @7gano 387
14.1 はじめに ...................................................................................................................... 387 14.2 MusicKit ..................................................................................................................... 387 14.3 AirPlay 2 ..................................................................................................................... 408 14.4 AVAudioEngineのアップデート .................................................................................... 415 14.5 まとめ ......................................................................................................................... 419
著者紹介 421
3第 1章 iOS 11 概要
iOS 11 概要第1章
永野 哲久 / @7gano
WWDC 2017
注1)
■ 新しい API
Augmented Reality Machine Learning
■ Core Technology
注1) https://developer.apple.com/videos/play/wwdc2017/102/ 本章の画像は全てこのセッションより
4 第 1章 iOS 11 概要
注2)
■ iPad の GUI が大幅に変更
■ アプリの 64bit 対応が必須に 64bit対応が必須
注 2) https://developer.apple.com/library/content/documentation/FileManagement/Conceptual/APFS_Guide/Introduction/Introduction.html
7第 2章 ARKit
ARKit第 2章
堤 修一 / @shu223
はじめに2.1
AR(Augmented reality / 拡張現実)を構築するためのフレームワーク
ARKitを使った画期的なアイデアをいち早く具現化できるようになる
体感しながら学んでいく
ARKit入門その1 - 最小実装で体験してみる2.2
(約)3行でできるARKitの最小実装
既存プロジェクトに数行のコードを追加してAR機能を構築する
サンプルコード:
8 第 2章 ARKit
2.2.1 手順1: プロジェクトの準備
注1)
注2)
注3)
● 図 2.1 ship.scn
2.2.2 手順2: ViewController の実装
注1) Xcode の Info.plist エディタでは「Privacy - Camera Usage Description」と表示されます。注 2) は SceneKit 用のシーンのデータを扱うファイルの拡張子です。なお、ここで用いている ship.scn は Xcode の「Augmented
Reality App」テンプレートに含まれています。注 3) サンプルではこれらのファイルを、 という拡張子のついたSceneKit のアセット管理用フォルダに入れています。
92.2 ARKit 入門その1 - 最小実装で体験してみる
● 図 2.2 仮想オブジェクトが現実世界に設置され、色々な角度から見ることができる
わずか3行程度の実装によって、現実世界に仮想シーンをオーバーレイし、デバイスの位置や角度の変化に追従するARの機能が構築できた
2.2.3 基本クラスの解説
■ ARSession
Swift 4の新機能とアップデート第4章
池田 翔 / @ikesyo
79第 4章 Swift 4 の新機能とアップデート
Swift 4の新機能とアップデート第4章
池田 翔 / @ikesyo
Swift 4の新機能とアップデート
はじめに4.1
Swift 4コンパイラの言語モード
Swift 4のコンパイラはSwift 3.2モードと、Swift 4モードという2つの言語モードをサポートしています。前者
はSwift 3.xと基本的に互換性があるモードで、後者がSwift 4の全ての機能とAPI変更が有効になるモードです。
Swift 4モードでビルドしたフレームワークを、Swift 3.2モードでビルドするアプリで使用する、といった混在利用が
可能です。言語モードはプロジェクト単位、もしくはターゲット単位で、“Swift Language Version”というBuild
Settingsから変更できます。
実はSwift 4の新機能のほとんどはSwift 3.2モードでも利用でき、これから紹介する プロトコルとSmart
KeyPathsもそれに含まれます。Swift 4の構文に移行せずとも導入できるこれらの機能をぜひ活用していきましょう。
Codableプロトコル4.2
■
■
■
80 第 4章 Swift 4 の新機能とアップデート
注1) 注2)
4.2.1 Codableプロトコルの基本的な使い方
注1) https://github.com/apple/swift-evolution/blob/master/proposals/0166-swift-archival-serialization.md注 2) https://github.com/apple/swift-evolution/blob/master/proposals/0167-swift-encoders.md
Xcode 9 の新機能第5章
坂田 晃一 / @huin
107第 5章 Xcode 9 の新機能
第5章
坂田 晃一 / @huin
はじめに5.1
注1)
5.1.1 本章の構成
■
●
●
●
■
●
●
注1) https://developer.apple.com/videos/play/wwdc2017/102/
108 第 5章 Xcode 9 の新機能
■
●
●
●
■
●
●
●
●
注2)
注3)
開発フェーズの新機能5.2
5.2.1 GitHubの統合とソースコード管理機能の改善
注4)
注5)
注 2) https://developer.apple.com/videos/play/wwdc2014/415/ 注 3) 旧称は「OS X Server」です。注 4) Subversion については将来のバージョンでサポート停止することが公式に発表されています。注 5) https://github.com
147第 6章 Drag and Drop
Drag and Drop第6章
加藤 尋樹 / @cockscomb
注1)
ドラッグ&ドロップによるデータのやり取り6.1
6.1.1 NSItemProvider
注1) https://developer.apple.com/ios/human-interface-guidelines/interaction/drag-and-drop/
148 第 6章 Drag and Drop
6.1.2 Uniform Type Identifier(UTI)
注2)
6.1.3 データをやり取りする
注 2) もう1つ も予約済みで、動的に作られるUTI に用いられます。
179第 7章 Files と Document Based Application
FilesとDocument Based Application第 7章
加藤 尋樹 / @cockscomb
はじめに7.1
Filesアプリ7.2
195第 8章 レイアウト関連の新機能及び変更点
レイアウト関連の新機能及び変更点第8章
川邉 雄介 / @jeffsuke
レイアウト関連の新機能及び変更点
本章のサンプルプロジェクトは です。
ラージタイトルとUINavigationBar8.1
● 図 8.1 ナビゲーションバーに大きなタイトルを表示できる
196 第 8章 レイアウト関連の新機能及び変更点
● 図 8.2 ラージタイトルは、スクロール挙動によりサイズが変更される
8.1.1 ラージタイトルをナビゲーションバーに追加
● 図 8.3 ラージタイトルのテキストアトリビュートを変更できる
213第 9章 Core NFC
Core NFC第9 章
岸川 克己 / @k_katsumi
Core NFC
はじめに9.1
NFCを使ったアプリケーションの例9.2
Core NFCでできること9.3
223第 10章 PDF Kit
PDF Kit第10 章
岸川 克己 / @k_katsumi
PDF Kit
はじめに10.1
PDF Kitとは10.2
注1)
注1) アドビシステムズが開発および提唱する、ソフトウェア、ハードウェア、オペレーティングシステムに関係なく、文書を確実に表示および交換するために使用されるファイル形式です。
224 第 10章 PDF Kit
10.2.1 PDF Kitと既存 API の比較
■ PDF 文書の表示 PDFKit
■
■
■
■
UIWebView/WKWebView■
■
Core Graphics■
■
■ PDF 文書の編集 PDFKit/Core Graphics
■
UIWebView/WKWebView■
■ PDF 文書の作成 PDFKit/Core Graphics
■
UIWebView / WKWebView■
263第 11章 SiriKit
SiriKit第11章
岸川 克己 / @k_katsumi
SiriKitとは11.1
● 表 11.1 SiriKit をアプリで利用できるドメイン一覧
To-Do 管理およびリマインダーとメモ帳(List and Notes)QRコード(Visual Codes)
iOS 11の変更点11.2
264 第 11章 SiriKit
11.2.1 To-Do 管理とメモ帳(List and Notes)ドメイン
1. メモの作成(Create Note)
2. メモにテキストを追加(Append to Note)
3. メモ帳とタスクリストおよびリマインダーからメモやタスクを検索(Search for Notebook Items)
4. タスクリストの作成(Create Task List)
5. タスクリストにタスクを追加(Add Task)
6. タスクの状態(完了、未完了)を変更(Set Task Attributes)
● 表 11.2 To-Do 管理とメモ帳ドメインの Intent
293第 12章 HomeKit 入門と iOS 11 のアップデート
HomeKit入門とiOS 11のアップデート第12章
所 友太 / @tokorom
はじめに12.1
注1)
注2)
注3)
12.1.1 本章の構成
注1) Apple の HomeKit Developer Guide の概説より注 2) HomeKit 対応製品を作るための仕様注 3) https://developer.apple.com//homekit/specifi cation/
294 第 12章 HomeKit 入門と iOS 11 のアップデート
HomeKit入門12.2
12.2.1 HomeKitでできること
■
■
■
■
■
■
12.2.2 HomeKit の構成
● 図 12.1 HomeKit 構成全体像
349第 13章 Metal
Metal第13章
堤 修一 / @shu223
第13 章
はじめに13.1
本章のサンプルプロジェクトは フォルダにあります。
シミュレータではサポートされていない
Metalの概要13.2
13.2.1 Metalとは
GPUへのアクセスを提供するAPI
そもそもは描画処理を担う演算装置
13.2.2 OpenGL ESとMetal
350 第 13章 Metal
Appleのハードウェアに最適化し、性能を限界まで引き出す
13.2.3 Metal の用途
● 図 13.1 Metal 初登場時のWWDC 基調講演でのデモ
● 図 13.2 Metal を利用しているフレームワーク
35113.3 Metal の基礎
iOSの超定番フレームワークの下回りでも実はMetalが利用されている
用途が拡大
Metalの基礎13.3
13.3.1 Metal の基礎概念
「最小実装」がUIKitのように小さくはない
● 図 13.3 CPU・GPUとコマンドバッファ
■ 両方からアクセスできるメモリ領域を持つ
■ CPUは、GPUへの命令(コマンド)をコマンドバッファという形で作成し、GPUに渡す
■
352 第 13章 Metal
13.3.2 Metal の基本クラス
■ MTLDevice
■ MTLCommandBuffer コマンドを格納するコンテナ コマン
ドバッファ単位でGPUに渡され、実行
コマンドバッファのオブジェクトは再利用はできない
■ MTLCommandQueue
スレッドセーフ
生成元のコマンドキューにコマンドバッファが追加 注1)
注1) には というメソッドもあります。 を呼んだタイミングで、当該コマンドバッファのキューにおける実行順が確保されますが、コミット自体はされません( を呼ばない限り実行されません)。
35313.3 Metal の基礎
コマンドバッファの実行順が保証される
■ MTLCommandEncoder コマンドを作成し、コマンドバッファに追加(エンコード)
● 表 13.1 コマンドエンコーダの種類
● 図 13.4 コマンドキュー、コマンドバッファ、コマンドエンコーダの関係
■ MTLBuffer, MTLTexture
GPUからアクセス可能なメモリ領域
387第 14章 Audio 関連アップデート
Audio関連アップデート第14章
永野 哲久 / @7gano
はじめに14.1
注1)
MusicKit14.2
14.2.1 MusicKitとは
注2)
注3)
注1) https://www.apple.com/homepod/注 2) https://developer.apple.com/musickit/注 3) iPhone OS 3.0 で実装されましたが、iPod Library Access のドキュメントは現在削除されています。この名称は使わなくなったので
はないかと思われますが、実際には iOS 11でも使用できます。Media Playerフレームワークの機能です。
388 第 14章 Audio 関連アップデート
● 表 14.1 MusicKit / Apple Music(ミュージックApp)比較
■
■
■
1. Apple Music APIへアクセスするためのトークンを生成する
2. Apple Music APIで再生する曲の情報(StoreID)を取得する
3. StoreKitでApple Musicへのアクセス許可をユーザーから得る
4. StoreIDをMediaPlayerフレームワークのMPMusicPlayerControllerに渡して再生する
14.2.2 Apple Music API
■ Developer Token Developer Token Music User Token
この続きを読むには...
iOS 11 Programming堤 修一 / 吉田 悠一 / 池田 翔 / 坂田 晃一 / 加藤 尋樹川邉 雄介 / 岸川克己 / 所 友太 / 永野 哲久 / 加藤 寛人
電子版 : ¥3,200 製本版: ¥3,500
購入して続きを読む