3 d touchについて

23
3D Touch について

Upload: natsuki-yamanaka

Post on 22-Jan-2018

69 views

Category:

Mobile


3 download

TRANSCRIPT

Page 1: 3 d touchについて

3D Touchについて

Page 2: 3 d touchについて

今回3D Touchを使うことになったので

使い方を調査した

Page 3: 3 d touchについて

3D Touchとは

「画面を押し込む」機能

その押し込む強さでアクションを変えられる参考:http://qiita.com/usagimaru/items/e4fb2ba8d8a7ae96b446公式:https://developer.apple.com/jp/documentation/   UserExperience/Conceptual/Adopting3DTouchOniPhone/index.html

Page 4: 3 d touchについて

3D Touchとは

アクションの種類

1. 感圧検知

2. Peek and Pop(チラ見とポップ)

3. クイックアクション

1 2 3

Page 5: 3 d touchについて

3D Touch 対応機種

iPhone 6s以降

iOS9~

Page 6: 3 d touchについて

感圧検知

・iOSプリインストールのメモアプリで

 ブラシに使われている

 →画像参照 押す強さでブラシの色の強弱が変わる

・UIViewControllerなら簡単に取得できる

・UITouchクラスのforceプロパティで押す強度が取得可能

 CGFloatの値で

 0.0〜UITouch.maximumPossibleForce(6.666667)まで

Page 7: 3 d touchについて

感圧検知 コード例

Page 8: 3 d touchについて

・ちなみに、WebViewとかsafariでもJavaScriptから取得できる

 UIWebView / WKWebViewの場合はallowsLinkPreviewプロパティで非許可可能

 ↓JavaScriptコード

感圧検知 on Webview

Page 9: 3 d touchについて

・弱押しでタップ先のプレビュー(Peek)をし、

 押し込んでいくとポップアップしてその先が見れる(Pop)機能

・LINEだと未読のままメッセージ読める

 と話題に

・UIViewControllerPreviewingDelegateで

 イベント取得

Peek And Pop(チラ見とポップ)

Page 10: 3 d touchについて

・LINEの場合の挙動見てみた

Peek And Pop(チラ見とポップ)

Peek Pop 通常時

Page 11: 3 d touchについて

実装参考:http://qiita.com/takashings/items/ead3e9d935c2108d55a7

・Peek前の画面で

 registerForPreviewingWithDelegate:sourceView:(Swift3ではregisterForPreviewing(with:,sourceView:))

 としてUIViewControllerPreviewingDelegateを継承したインスタンス渡す

・Delegateメソッドで下記を実装

 Peek開始時:previewingContext(_:viewControllerForLocation:) 次の画面を渡す

 Pop時:previewingContext(_:commit:) 次の画面をshowメソッドで表示する

Peek And Pop(チラ見とポップ) 実装方法

Page 12: 3 d touchについて

デモ

Peek And Pop(チラ見とポップ) 実装方法

Page 13: 3 d touchについて

・ホームのアイコンを3D Touchすると

 出てくる簡易メニュー

 簡単なウィジェット的なことをしたり、

 アプリ内へのショートカットとして使える

ホーム画面におけるクイックアクション

Page 14: 3 d touchについて

・メニューは4つまで

・テキスト2行まで

・iOS9.0:7種類、iOS9.1以上:30種類のデフォルトアイコン

・独自アイコンも可能

・入りきらないテキストは自動で省略記号(...)を追加される

ホーム画面におけるクイックアクション

Page 15: 3 d touchについて

・使えるデフォルトアイコン一覧(iOS10.1までの現在) 最新は公式を参照

ホーム画面におけるクイックアクション

Page 16: 3 d touchについて

・実装方法は、

静的に追加(info.plistに記述するだけ)

動的に追加(コードから生成)

 の二つのやり方がある

・動的に追加する場合はアプリ起動後しか表示できない

ホーム画面におけるクイックアクション

Page 17: 3 d touchについて

ホーム画面におけるクイックアクション

・実装前に公式iOS ヒューマンインターフェイスガイドラインを一読することが望ましい

https://developer.apple.com/jp/documentation/UserExperience/Conceptual/MobileHIG/3DTouch.html#//apple_ref/doc/uid/TP40006556-CH71-SW2

Page 18: 3 d touchについて

iOS ヒューマンインターフェイスガイドラインより抜粋

1. ユーザの関心が高く、付加価値の高いタスクに用いる。

2. アプリケーション全体のナビゲーションを簡易に実装する手段としては使わない。

3. ユーザが予期しない形で、ホーム画面に現れているクイックアクションを変更することは避ける。

4. ユーザに対する通知の手段としては使わない。

5. 簡潔な見出し(および場合によっては副見出し)とテンプレートアイコンを用意する。

ホーム画面におけるクイックアクション 実装

Page 19: 3 d touchについて

・静的に実装する場合

 →Info.plistにUIApplicationShortcutItemsキーの配列を定義する

   こんな感じ→

ホーム画面におけるクイックアクション 実装

 <key>UIApplicationShortcutItems</key> <array> <dict> <key>UIApplicationShortcutItemIconType </key> <string> UIApplicationShortcutIconTypePlay </string> <key>UIApplicationShortcutItemTitle</key> <string>Play</string> <key>UIApplicationShortcutItemType</key> <string>com.sample.myapp.play</string> <key>UIApplicationShortcutItemUserInfo</key> <dict> <key>key1</key> <string>value1</string> </dict> </dict> </array>

Page 20: 3 d touchについて

ホーム画面におけるクイックアクション 実装

・UIApplicationShortcutItemIconTypeに追加したいアイコンを指定

・UIApplicationShortcutItemIconFileに独自アイコンのファイル名も指定可能

・タイトル、サブタイトル、アクション種別名、付与するデータ(Dictionary)も指定可能

参考:http://qiita.com/takecian/items/d417498cfe6c3b52c4bc

Page 21: 3 d touchについて

・動的に実装する場合

 先ほどのinfo.plistに指定したものと同じものをコードから指定するだけ

 ↓コード例

ホーム画面におけるクイックアクション 実装

Page 22: 3 d touchについて

デモ

ホーム画面におけるクイックアクション

Page 23: 3 d touchについて

ご静聴ありがとうございました

以上