Submit Search
3D touch for iOS
6 likes
5,736 views
T
toyship
3D touch for iOS
Technology
Read more
1 of 30
Download now
Downloaded 21 times
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
More Related Content
PDF
バグのことは嫌いになってもXcodeのことは嫌いにならないでください。
Daisuke Yamashita
PDF
iOSアプリ UIテスト自動化入門
Shingo Tamaki
PDF
fastlane触ってみた
Shingo Tamaki
PDF
iOS 8 Widget ~ 導入から Tips まで
Yuki Tanabe
PDF
楽しいものづくり ファーストステップ
Satoshi Maemoto
PPTX
iOSにおけるUIテスト@potetotips
Yusuke Kita
PDF
福井スマートフォンハッカソン Titanium Mobileの紹介
Mori Shingo
PDF
ディープラーニングとAppiumでモバイルテスト自動化
Nozomi Ito
バグのことは嫌いになってもXcodeのことは嫌いにならないでください。
Daisuke Yamashita
iOSアプリ UIテスト自動化入門
Shingo Tamaki
fastlane触ってみた
Shingo Tamaki
iOS 8 Widget ~ 導入から Tips まで
Yuki Tanabe
楽しいものづくり ファーストステップ
Satoshi Maemoto
iOSにおけるUIテスト@potetotips
Yusuke Kita
福井スマートフォンハッカソン Titanium Mobileの紹介
Mori Shingo
ディープラーニングとAppiumでモバイルテスト自動化
Nozomi Ito
What's hot
(19)
PDF
「UI自動テストツールとAI」〜AIを使った自動テストの「今」と「未来」〜
Nozomi Ito
PDF
アプリリリース後に後悔しないための20のこと
leverages_event
PPTX
Appium を使って iOS / Android の UI テストを共通化
Kenichi Tatsuhama
PDF
もう怖くないモバイルアプリ開発!
Toshiki Iga
PDF
Google Play Developer APIを使ってみた
shinya sakemoto
PDF
Leap motion.js
Haraguchi Go
PDF
Fundamentals of Swift & Redux (ReduxとSwiftの組み合わせ)
Fumiya Sakai
PPTX
Unity(再)入門
Takayoshi Tanaka
PPTX
Watch kit解説と実際のtips
篤 富田
PPTX
プログラムで映像をつくるとは?? ~超入門編~
Ryo Kanda
PDF
絵心なくても大丈夫。Holoなホラーゲームの提案
Akira Hatsune
PDF
はてなにおける Android アプリのソフトウェアテスト
Yu Nobuoka
PDF
事例 アジャイルと自動化 後半(ヤフオク!アプリでの自動テストの事例紹介) at Ques vol.7( #ques7 ) 11/20/2015
Yahoo!デベロッパーネットワーク
PPTX
Visual Studio App Centerの始め方
Shinya Nakajima
PDF
Can we live in a pure Swift world?
toyship
PDF
AIR for Android で アプリ内課金
Sadao Tokuyama
PPTX
Device Farm を使ったスマホアプリの自動テスト
Kenichi Tatsuhama
PDF
最近の実装方針について
大介 秋本
PDF
スマホキャンプサマー2012:ANEとアプリ内課金に挑戦
Tetsuya Shiraishi
「UI自動テストツールとAI」〜AIを使った自動テストの「今」と「未来」〜
Nozomi Ito
アプリリリース後に後悔しないための20のこと
leverages_event
Appium を使って iOS / Android の UI テストを共通化
Kenichi Tatsuhama
もう怖くないモバイルアプリ開発!
Toshiki Iga
Google Play Developer APIを使ってみた
shinya sakemoto
Leap motion.js
Haraguchi Go
Fundamentals of Swift & Redux (ReduxとSwiftの組み合わせ)
Fumiya Sakai
Unity(再)入門
Takayoshi Tanaka
Watch kit解説と実際のtips
篤 富田
プログラムで映像をつくるとは?? ~超入門編~
Ryo Kanda
絵心なくても大丈夫。Holoなホラーゲームの提案
Akira Hatsune
はてなにおける Android アプリのソフトウェアテスト
Yu Nobuoka
事例 アジャイルと自動化 後半(ヤフオク!アプリでの自動テストの事例紹介) at Ques vol.7( #ques7 ) 11/20/2015
Yahoo!デベロッパーネットワーク
Visual Studio App Centerの始め方
Shinya Nakajima
Can we live in a pure Swift world?
toyship
AIR for Android で アプリ内課金
Sadao Tokuyama
Device Farm を使ったスマホアプリの自動テスト
Kenichi Tatsuhama
最近の実装方針について
大介 秋本
スマホキャンプサマー2012:ANEとアプリ内課金に挑戦
Tetsuya Shiraishi
Ad
Viewers also liked
(9)
PDF
Enumerate
Motoki Narita
PDF
UIKit Sound
cocominap
PDF
Enhancements with 3D Touch
Satoshi Ohki
PDF
tvOSでWebSocketを使う
Tomoki Hasegawa
PDF
Framework code reading
shinnosuke kugimiya
PDF
TestFlightみたいなのを自作する
Tomoki Hasegawa
PDF
To learn Interpolator
Mima Yuki
PDF
What's new Swift3
toyship
PDF
MySQL 8.0で憶えておいてほしいこと
yoku0825
Enumerate
Motoki Narita
UIKit Sound
cocominap
Enhancements with 3D Touch
Satoshi Ohki
tvOSでWebSocketを使う
Tomoki Hasegawa
Framework code reading
shinnosuke kugimiya
TestFlightみたいなのを自作する
Tomoki Hasegawa
To learn Interpolator
Mima Yuki
What's new Swift3
toyship
MySQL 8.0で憶えておいてほしいこと
yoku0825
Ad
Similar to 3D touch for iOS
(9)
PDF
3 d touchについて
Natsuki Yamanaka
PDF
20150930 3D Touchを試す
Kei Ito
KEY
UX on HTML5 x Touch UI
dsuke Takaoka
PDF
奥行きを意識したプロダクト-iOS9で変わる体験-
正典 三橋
PDF
M1GP2015
takuyasasatani
PDF
スマホアプリの"手触り"や"美的センス"について~WebSig会議 vol.33:1stセッション
WebSig24/7
PDF
#FTMA15 第三回課題 鬼コースサーベイ
Yoichi Ochiai
PPTX
もみもみセンサー
Ubi NAIST
PDF
Corona HandsOn#3
Tetsuo Ono
3 d touchについて
Natsuki Yamanaka
20150930 3D Touchを試す
Kei Ito
UX on HTML5 x Touch UI
dsuke Takaoka
奥行きを意識したプロダクト-iOS9で変わる体験-
正典 三橋
M1GP2015
takuyasasatani
スマホアプリの"手触り"や"美的センス"について~WebSig会議 vol.33:1stセッション
WebSig24/7
#FTMA15 第三回課題 鬼コースサーベイ
Yoichi Ochiai
もみもみセンサー
Ubi NAIST
Corona HandsOn#3
Tetsuo Ono
More from toyship
(13)
PDF
Time for Xcode Behavior
toyship
PDF
Notifications in iOS10
toyship
PDF
Universal Link
toyship
PDF
Swift Protocol and Selector
toyship
PDF
Xcode7時代のアプリ配布
toyship
PDF
My first tvOS
toyship
PDF
Contents blocker on iOS9
toyship
PDF
Embedded framework and so on
toyship
PDF
はじめてのWKInterfaceController
toyship
PDF
App extension for iOS
toyship
PDF
サーバーからiOSアプリを変更する
toyship
PDF
Xcode bot
toyship
PDF
AVSpeechSynthesizerとロケール
toyship
Time for Xcode Behavior
toyship
Notifications in iOS10
toyship
Universal Link
toyship
Swift Protocol and Selector
toyship
Xcode7時代のアプリ配布
toyship
My first tvOS
toyship
Contents blocker on iOS9
toyship
Embedded framework and so on
toyship
はじめてのWKInterfaceController
toyship
App extension for iOS
toyship
サーバーからiOSアプリを変更する
toyship
Xcode bot
toyship
AVSpeechSynthesizerとロケール
toyship
3D touch for iOS
1.
3D#touch#for#iOS 2015/09/16 @TachibanaKaoru
2.
自己紹介 渋谷のVOYAGE'GROUPでiOSエンジニア をしています。 Twi$er/Vainglory/:/@TachibanaKaoru Blog/:/h$p://www.toyship.org/
3.
注意 今日の資料はAppleが一般に公開した資料をもとにしています。 なお、この資料の内容サンプルコードや発表資料から類推したも のであり、シミュレーターや実機での動作確認を行っていませ ん。 間違いを含む可能性があります。(実機入手後確認予定。)
4.
What%is%3D%touch? Specifica(on iOS9で導入された感圧機能を使った新しい機能 対応端末はiPhone6S/iPhone6S,plus 一部の機能は9.1からとなりますが、9.0からすでに実装できる機 能がほとんどです。
5.
Pressure&Sensi*vity タッチの圧力を判定してアプリの機能を 拡張できます。 例えばスケッチアプリであれば、圧力に 応じて線を太くしたり、色を濃くしたり する実装をすることもできます。 圧力の感知だけでなく、今タッチしてい るものがスタイラスか指かの判定も可能 です。
6.
Quick&Ac(ons ホーム画面のアプリアイコンを押すこと で、メニューを表示することができるよ うになりました。
7.
Peek$and$Pop 次の画面を出すような画面で、画面遷移 をする前に、次の画面をちらっと見るこ とができる機能。 表示されたチラ見画面にメニューをつけ たりすることもできます。
8.
3D#Touch#の動作確認 なお、現時点では3D#touch関連の機能の動作確認はシミュレー ターではできません。 実際の動作は、対応端末が発売されるまで待ちましょう。
9.
Pressure&Sensi*vity Implementa)on
10.
Pressure&Sensi*vity 基本的には、UITouchクラスに追加されているforce(CGFLoat) 値を使ってアプリの機能に応じて実装します。 また、UITouchのtype(UITouchType)から、touch処理がどこか ら行われているかの情報が取得できます。 enum UITouchType :
Int { case Direct case Indirect case Stylus }
11.
Pressure&Sensi*vity 9.1ではさらにUITouchクラスに下記の要 素などが追加される予定。 +,al/tudeAngle:,CGFloat,{,get,} +,azimuthAngleInView(_,view:,UIView?),+>, CGFloat スタイラスの圧力だけではなく、入力角 度なども取得できるようになりそうで す。
12.
Quick&Ac(ons Implementa)on
13.
Quick&Ac(ons 設定方法は下記の2種類あります。 !"sta&c"quick"ac&ons "!"必ず表示される固定メニュー。 "!"アプリのino.plistで定義 !"dynamic"quick"ac&ons "!"ユーザーの状況などによって内容が変更できるメニュー。 "!"コードで設定
14.
Quick&Ac(ons メニューの表示順 表示数には上限数があり、info.plistに設定された*sta,c*ac,onsが まず表示されます。 (上限数は現時点では明記されていない) sta,c*ac,onsを表示した後に表示数に余裕がある場合には、 dynamic*ac,onsも表示されます。 アプリの初回起動時前には、sta,c*ac,onsしか表示されません。
15.
Quick&Ac(ons Implementa)on dynamic(ac)onsの場合には、 UIApplica)onShortcutItemオブジェクト を作成して、UIApplica)onに登録します 7(localizedTitle 7(localizedSub)tle 7(type 7(icon 7(userInfo
16.
Quick&Ac(ons アイコンについて UIApplica)onShortcutItem3に設定できる アイコンはUIApplica)onShortcutIconと なっており、システムで用意されたアイ コン、自分で用意するアイコン、連絡先 アイコンのうちから選択可能です。 (自分で用意する場合は35x35pointで、 単色のみ使用可能)
17.
Quick&Ac(ons 実装例!(add!dynamic!ac*ons) func application(application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { if let shortcutItems = application.shortcutItems where shortcutItems.isEmpty { let shortcutPlay = UIMutableApplicationShortcutItem( type: "MyApp.MenuType001", localizedTitle: "Play", localizedSubtitle: "with this title", icon: UIApplicationShortcutIcon(type: .Play), userInfo: nil ) application.shortcutItems = [shortcutPlay] } ... }
18.
Quick&Ac(ons 実装例!(add!sta'c!ac'ons) // info.plist <key>UIApplicationShortcutItems</key> <array> <dict> <key>UIApplicationShortcutItemIconType</key> <string>UIApplicationShortcutIconTypeSearch</string> <key>UIApplicationShortcutItemSubtitle</key> <string>shortcutSubtitle1</string> <key>UIApplicationShortcutItemTitle</key> <string>shortcutTitle1</string> <key>UIApplicationShortcutItemType</key> <string>$(PRODUCT_BUNDLE_IDENTIFIER).First</string> <key>UIApplicationShortcutItemUserInfo</key> <dict> <key>firstShorcutKey1</key> <string>firstShortcutKeyValue1</string> </dict> </dict> </array>
19.
Quick&Ac(ons 実装例!(ac%onsがよばれた時) // in AppDelegate func
application(application: UIApplication, performActionForShortcutItem shortcutItem: UIApplicationShortcutItem, completionHandler: Bool -> Void) { guard ShortcutIdentifier(fullType: shortcutItem.type) != nil else { return false } guard let shortCutType = shortcutItem.type as String? else { return false } switch (shortCutType) { case "Menu1": // Menu1の処理 case "Menu2": // Menu2の処理 default: } }
20.
Peek$and$Pop Implementa)on
21.
Peek$and$Pop Peek$and$Popの流れ (1)特定のエリアを軽く押す(Peek) (2)Peek画面が表示される(押すのをやめると元の画面に戻る) (3)さらに強く押す(Pop)とPeek画面が大きくなり、目的のview画面 となる
23.
Peek$and$Pop Master'Detail形式のプロジェクトで実装する場合の標準的な流れ (1)$3Dtouchが使えるか確認し、どのviewがpeekの対象になるかを 設定。同時にpeek処理のdelegateを設定。 (2)$ユーザーがPeekジェスチャーに対して、peekの表示対象となる viewControllerの作成と、表示されるサイズ(高さのみ)を指定。 (3)$ユーザーがPopジェスチャーに対して、peekで作成された viewControllerの通常表示処理を行う。
24.
Peek$and$Pop 実装例!(1)!peekのviewを指定して、delegateを設定。 // MasterViewController override func
viewDidLoad() { super.viewDidLoad() if traitCollection.forceTouchCapability == .Available { registerForPreviewingWithDelegate(self, sourceView: myview) } }
25.
Peek$and$Pop 実装例!(2)!Peekジェスチャーの実装 // MasterViewController func previewingContext(previewingContext:
UIViewControllerPreviewing, viewControllerForLocation location: CGPoint) -> UIViewController? { let detailViewController = ...//表示したいviewControllerを生成する //表示するPeek画面の高さを設定する detailViewController.preferredContentSize = CGSize(width: 0.0, height: 50.0) //Peek画面が出る前にBlurしない領域を設定する previewingContext.sourceRect = myview.frame return detailViewController }
26.
Peek$and$Pop 実装例!(3)!Popジェスチャーの実装 // MasterViewController func previewingContext(previewingContext:
UIViewControllerPreviewing, commitViewController viewControllerToCommit: UIViewController) { //表示用のviewControllerはpeekの時に生成されているので、それを再利用する showViewController(viewControllerToCommit, sender: self) }
27.
Peek$and$Pop Peek時にAc&onMenuを追加することもで きます。
28.
Peek$and$Pop 実装例!Ac$onMenuの追加 // DetailViewController override func
previewActionItems() -> [UIPreviewActionItem] { let actionMail = UIPreviewAction(title: "Send mail", style: .Default, handler:{item,viewcon in // send mail }) let actionDelete = UIPreviewAction(title: "Delete mail", style: .Destructive, handler:{item,viewcon in // delete mail }) return [actionMail,actionDelete] }
29.
Peek$and$Pop Implementa)on UIWebViewやMKWebViewでは、リンク 先をPeekする機能がすでに実装されてい ますが、デフォルトではoffになっていま す。 allowsLinkPreviewをtrueにすると使 えるようになります。
30.
まとめ • 3D$touch機能は、まだ実機やシミュレーターでの動作確認はで きませんが、実装は可能です。 • 実装自体はそれほど難しくはないので、是非試してみることを お勧めします。
Download