トピック満載! サンノゼから見たWWDC17の1日目 ハンズオンの様子も! #WWDC17

はじめに

こんにちは!
モバイルアプリサービス部の田中孝明です。

WWDC17のキーノートに関しては別途ブログがアップされていますが、当ブログは現地の様子を中心にしたキーノートの様子を書き記します。

WWDC17 キーノートまとめ 新製品HomePodの発表も! #WWDC17

本記事は Apple からベータ版として公開されているドキュメントを情報源としています。 そのため、正式版と異なる情報になる可能性があります。ご留意の上、お読みください。

keynoteが始まるまで

朝の5時から待機しましたが、すでに数百人の行列ができていました。。。
外気温は11月の東京並みに寒かったのですが、朝7時には会場され、朝食が振る舞われたので寒空の下に晒され続けるということはありませんでした。

IMG_3771

IMG_3791

IMG_3798

IMG_3565

発表時に一番盛り上がったのはARKitのデモや、新デバイスの発表(iMac Pro、iPad Pro)、iPadの大幅なアップデート(macOSライクなDockの追加や、マルチタスクで起動したアプリ間のデータをドラッグアンドドロップでやりとりできること)でしょうか。
外付けGPU対応も望んでいた開発者がいたためか、発表された瞬間に叫び声が聞こえてきました...!

新APIについては、別途ブログにてピックアップしています!
[WWDC17] 次期iOS, macOS, tvOS, watchOSに新規追加されるフレームワークの概要まとめ #WWDC17

[iOS 11] Apple 純正の AR フレームワーク「ARKit」について理解する #WWDC17

HomePodに関しては...会場でも賛否両論の反応でした。

Platforms State of the Union

こちらもセッション動画とPDFが公開されています。
https://developer.apple.com/videos/play/wwdc2017/102/
キーノートの発表内容から、開発者向けのアップデートをピックアップし、詳細なデモを交えて発表されました。
マシンラーニング、ARKit、MusicKit、Files、Metal 2など、多くのトピックが紹介されました。
個人的に気になったところをピックアップして書き記します。

Xcode 9

多くの開発者が待ち望んできた、Refctorが遂に実装されました!
propertyの名前を変更した際、storyboradに紐づけられていても変更できるようになっています。
また、インデックスの速度改善や全体的なパフォーマンス改善が行われました。

Swift

Codableプロパティの追加によって、今までライブラリに依存していたJSONのパースやマッピング処理を標準でサポートできるようになりました。
こちらに関しては別途試してブログにあげたいと思います。
コンパイル速度についても改善されています。

Github

XcodeがGithubと連携するようになりました。
ブランチのツリー表示の対応やGithubのProjectページから「Open Xcode」でプロジェクトを開く事ができるなど、追加された機能の紹介がされました。

Debugging and Analysis

ViewController内のViewの階層表示や、SpritKit、SceneKitのデバッグ表示が追加されました。

Runtime Sanitizers

未定義の振る舞いのチェックやメインスレッドで呼ばれるべきものをチェックしてくれる機能が追加されました。

Testing and Continuous Integration

シミュレータが複数起動できるようになりました。
これにより、シミュレータを並列で起動してテストを行うことができるようになります。

あとはWireless Developmentが再び可能になりました。
これによって、開発端末をUSBで繋ぐ手間が無くなります!

Drag and Drop

比較的簡単に対応する事が可能なようなので、これは是非試してみたい機能です。

 // Begin Drag
let dragData = self.data(at: sourceIndexPath)
let itemProvider = NSItemProvider(object: dragData)
return [UIDragItem(itemProvider: itemProvider)]
// Perform Drop
coordinator.session.loadObjects(ofClass: MyDataType.self) { (data) in
    self.insertData(data, at: destinationIndexPath)
    collectionView.reloadSections(IndexSet(integer: 0))
}

Files

OS間のファイルのやりとりをサポートしてくれます。
ドキュメント作成にも対応しているため、ファイルのやりとりが発生するアプリで組み込む必要が出てきそうです。
こちらも試してみたい機能ではあります。

Camera

iOSのCameraも強化されました。
QRコードの検出機能やUniversal Linkにも対応しました。

Depth

iPhone 7 Plusに搭載されているDual Cameraを利用した深度の検出ができるようになりました。
対象の深度を取得する事で、特定の対象だけをピックアップする事ができます。
加工アプリで是非利用してみたいですね!

Vision

顔検出、矩形検出、テキスト検出、バーコード検出、オブジェクトトラッキングなど、画像解析の機能が強化されました。
新たに追加された機械学習フレームワークCore MLと連携する事で面白い事ができそうです。

ARKit

新しく追加されたフレームワークです。
机などのSceneを理解し、それをトラッキングしてオブジェクトを配置できるようになっています。
従来のARだと、単純にCameraの画像にオーバーレイするものが多かったのですが、上記の機能が追加される事によって、現実世界と仮想世界の複合が可能になりました。
Microsoft的に言うと複合現実(Mixed Reality=MR)に近いのでしょうか。

Hands-On Area

実際に触ってきたものをいくつかピックアップしてます!
詳細に関しては、また別途共有したいと思います。

IMG_3980

IMG_3993

IMG_3969

IMG_2947