LIFULL Creators Blog

「株式会社LIFULL(ライフル)」の社員によるブログです。

WWDC 2017 - DAY TWO -

こんにちは。iOS開発Gの池田です。
本日はWWDCの2日目です!
今日(6/6)から金曜日(6/9)まで新OS、新機能の技術的なセッションやラボが目白押しです。

今回は会場の様子を少しとセッションについて、最後おまけです。
(前回の記事はこちら)

会場の様子

会場内の休憩&個人作業スペースです。
みんな思い思いにソファーや机に座って作業をしています。
この写真は人が少ない時間帯に撮りましたが、セッションの合間や昼の時間にはごった返します。
ちょっと見えづらいですが2枚目の写真の中央下部あたりではセッションのリアルタイムストリーミングも行われています。 f:id:LIFULL-ikedakz:20170607175511j:plain f:id:LIFULL-ikedakz:20170607175422j:plain

セッションについて

私が参加したセッションは、以下3つです。
それぞれポイントになる内容を振り返ります。

  • Your Apps and Evolving Network Security Standards
  • Introducing Core ML
  • Introducing ARKit

Your Apps and Evolving Network Security Standards

ATSで「信頼されない」、「信用される」を分ける基準が話されていました。
具体的には以下のように信頼する・信頼しないの基準が分かれます。
[×] 信頼されない
[○] 信頼される

Encryption

[×] RC4 3DES-CBC、AES-CBC
[○] AES-GCM、ChaCha20-Poly1305

Cryptographic Hashes

[×] MD5、SHA-1
[○] SHA-2 Family

Public Key

[×] < 2048-bit RSA
[○] ≧ 2048-bit RSA、Elliptic Curves

Protocols

[×] httpプロトコル、SSLv3、TLS 1.0、TLS 1.1
[○] httpsプロトコル、TLS 1.2+

Revocation

[×] No checking
[○] OCSP Stapling

Introducing Core ML

Core MLでは様々な機械学習ライブラリで作成したモデルをアプリ内に統合して、ある入力に対する出力を予測する機能を提供できます。

対象OS

macOS High Sierra以上、iOS11以上、watchOS4以上、tvOS11以上

Core MLの良いところ

機械学習の処理、データのやりとりがデバイス内で完結するため、以下のメリットがあります。

  • ユーザーのプライバシーを侵害しない
  • データのコストが必要ない
  • サーバーのコストが必要ない
  • 通信環境等によらず、いつでも使える

モデルについて

モデルは入力を受けて予測の結果を出力するFunctionのようなものだ、という話でした。
入力には、画像やテキスト等が用いられ、出力として予測結果を得ます。
デモの中では花(バラ等)の画像をモデルに入力し、文字列として予測結果出力していました。

Core ML Tools

pythonで作られているモデル変換ツールでオープンソースです。
有名な機械学習ライブラリのモデルをCore ML用のモデルに変換することができます。

Core ML導入の手順

デモの中でCore MLの導入手順を一通りやっていました。
導入手順は以下5手順です。

  1. オープンソースの機械学習ライブラリでモデルを作成する
  2. Core ML ToolsでCore ML用のモデルにコンバートする
  3. できたモデルをプロジェクトにドラッグアンドドロップする
  4. Core ML用モデルのターゲットを設定する
     (自動でSwiftファイルが生成される。)
  5. 生成されたモデルの結果出力メソッドを利用して実装する

Introducing ARKit

ARKitでは、iOSデバイスのカメラに写っている現実の映像とSceneKit、SpriteKit等で作成した仮想現実の物体を同時に表示し、あたかも現実に仮想現実の物体があるように見せることができます。
こちらのARKitは今回の発表の中でもなかなか興味深い新機能だと思います。
日本にいる弊社の新卒エンジニアがサンプルを使って早速試してました!

対象OS

iOS11以上(A9プロセッサ以上)

トラッキング

iOSデバイスの移動、回転に伴って仮想現実の物体も移動、回転、縮小をします。
現実に物体があるのと同じような動作をするのでカメラを通した映像には実際物体があるかのように見えます。

平面の認識

カメラの映像を通して現実にある床等の平面を認識します。
仮想現実の物体は認識した平面の上に乗っているように見えるよう位置調整されます。

光の予測

現実の映像が暗いと仮想現実の物体が暗くなる、仮想現実の物体が光っていると現実の映像が明るくなる等、現実と仮想現実が相互に光の干渉を行います。

デモ

デモは2つ行われていました。

1つ目は仮想のカップ、花瓶のような物体を現実の映像内に配置するデモです。
現実のテーブルの平面が仮想の物体に影響を及ぼし、テーブル上にカップや花瓶が乗る様子が見れました。

2つ目は仮想のカメレオンがテーブル上に乗っているデモです。
このデモでは、カメレオンの周りを回るようにカメラを操作すると、カメレオンの顔かリアルタイムでカメラの方を見る様子が見れました。
カメレオンがその場にいてまるでこっちを見ているかのように見えるデモです。
現実と仮想現実が繋がっているように感じられる感覚が強いデモで、それをたった1台のiPhoneでやっていると考えると、未来感があるデモでした。

おまけ

会場の前の広場でWWDC参加者限定のパーティがやっていたので、ちょろっと参加してきました。
バンドの演奏もやっており、バンド前ではダンスをしている方も♪
多国籍な会で私はロシアの男性エンジニアの方と、元々日本にしばらく住んでいた女性エンジニアの方などちょこちょこ交流してきました。
1時間弱の短い時間でしたが大変楽しい夜でした!
本日は以上です!それでは! f:id:LIFULL-ikedakz:20170607180450j:plain