SlideShare a Scribd company logo
【watchOS2】
Timetravelを実装したComplicationを
タップした時の情報を取得する方法
@mogmet
2016/03/01 shibuya.swift #3
About me
• twitter: @mogmet
• 好物:iOS, php, MySQL, Oracle
• 仕事:インフラエンジニア→iOSエンジニア→フリーランスなDBA
• ブログとか: http://mogmet.com/
• 作ったアプリたち↓
ワンナイト人狼 for iPhone STARBUCKSHOLIC
2度目の発表の場でも
緊張してます(確信
)
おさらい
what is Complication?
what is
Timetravel?
http://www.culpeperfamily.com/wp-content/uploads/2015/02/back-to-the-future.jpg
http://img.tiqav.com/5KF.jpg
本題
Complicationはタップすると
、watchアプリが
起動します。
http://www.recruit.jp/news_data/release/img/20150424_01.jpg
だがしかし
http://futtsu.co/wp-content/uploads/dagashikashi_01-600x338.jpg
CLKComplicationDataSourceの中
にタップイベントを取得する
ようなメソッドが見当たらない!
!
タイムトラベルで選んだ情報を表示したいのに!
解決策を探してみた
http://pic.prepics-cdn.com/kaito19971031/16677605.jpeg
答えは遷移した先に
あった
WKInterfaceController
一画面の描画を担当するコントロールクラス
handleUserActivity(
userInfo: [NSObject :AnyObject]?)
Handsoffとかから起動
された時に呼ばれたりする
メソッドだが
Complicationから呼ば
れた時にも呼ばれる!
userInfo[CLKLaunchedTim
elineEntryDateKey]
Timetravel中にタップした
Complicationの
時間が取れる!
Sample Demo
https://github.com/mogmet/SGComplicationSample/
DemoではuserInfoから
とれる時間をキーとして
データを引っ張ってきている
。
override func handleUserActivity(userInfo: [NSObject : AnyObject]?) {
super.handleUserActivity(userInfo)
let tapDate = userInfo?[CLKLaunchedTimelineEntryDateKey] as? NSDate ?? NSDate()
self.ending = WorldLine.endings.filter { $0.time.isEqualToDate(tapDate) }.first
self.reloadView()
}
https://github.com/mogmet/SGComplicationSample/blob/master/SGComplicationSample%20WatchKit%20Extension/InterfaceController.swift
無事タップしたComplication
との紐付きができるように
なりました!!
もっといい方法あった
ら教えて下さい
99%E3%81%88%E3%81%A6%E3%83%BB%E3%83%BB%E6%95%99%E3%81%88%E3%82%8D%E3%83%BB%E3%83%BB%E6%95%99%E3%81%88%E3%81%AD%E3%81%88%E3%81%8B%E3%80%81%E3%81%93%E3%
まとめ
Timetravelからの情報が欲しか
ったらhandleUserActivityメソ
ッドのuserInfoを使おう!
Thank you for listening!

More Related Content

Viewers also liked

Metadataリジェクトあれこれ
MetadataリジェクトあれこれMetadataリジェクトあれこれ
Metadataリジェクトあれこれ
Kazuaki KURIU
 
どんなアプリ?でリジェクト
どんなアプリ?でリジェクトどんなアプリ?でリジェクト
どんなアプリ?でリジェクト
Ayaka Ueda
 
リジェクト内容とその対応とその他
リジェクト内容とその対応とその他リジェクト内容とその対応とその他
リジェクト内容とその対応とその他
Masaru Gushiken
 
さくっとpush通知を導入するならGrowth Push一択
さくっとpush通知を導入するならGrowth Push一択さくっとpush通知を導入するならGrowth Push一択
さくっとpush通知を導入するならGrowth Push一択
Masaru Gushiken
 
それRxJSでできるよ
それRxJSでできるよそれRxJSでできるよ
それRxJSでできるよ
Tomohiro Noguchi
 
Apple審査を一発通過! iOS開発経験0でも出来る じげん流Swift開発のすべて
Apple審査を一発通過!iOS開発経験0でも出来るじげん流Swift開発のすべてApple審査を一発通過!iOS開発経験0でも出来るじげん流Swift開発のすべて
Apple審査を一発通過! iOS開発経験0でも出来る じげん流Swift開発のすべて
Masaru Gushiken
 
Developers Summit 2014 「Play2/Scalaでドメイン駆動設計を利用した大規模Webアプリケーションのスクラム開発の勘所」
Developers Summit 2014  「Play2/Scalaでドメイン駆動設計を利用した大規模Webアプリケーションのスクラム開発の勘所」Developers Summit 2014  「Play2/Scalaでドメイン駆動設計を利用した大規模Webアプリケーションのスクラム開発の勘所」
Developers Summit 2014 「Play2/Scalaでドメイン駆動設計を利用した大規模Webアプリケーションのスクラム開発の勘所」
Yoshimura Soichiro
 
「実践ドメイン駆動設計」社内読書会まとめ ~IDDD本難民に捧げる1章から7章~
「実践ドメイン駆動設計」社内読書会まとめ ~IDDD本難民に捧げる1章から7章~「実践ドメイン駆動設計」社内読書会まとめ ~IDDD本難民に捧げる1章から7章~
「実践ドメイン駆動設計」社内読書会まとめ ~IDDD本難民に捧げる1章から7章~
A AOKI
 

Viewers also liked (8)

Metadataリジェクトあれこれ
MetadataリジェクトあれこれMetadataリジェクトあれこれ
Metadataリジェクトあれこれ
 
どんなアプリ?でリジェクト
どんなアプリ?でリジェクトどんなアプリ?でリジェクト
どんなアプリ?でリジェクト
 
リジェクト内容とその対応とその他
リジェクト内容とその対応とその他リジェクト内容とその対応とその他
リジェクト内容とその対応とその他
 
さくっとpush通知を導入するならGrowth Push一択
さくっとpush通知を導入するならGrowth Push一択さくっとpush通知を導入するならGrowth Push一択
さくっとpush通知を導入するならGrowth Push一択
 
それRxJSでできるよ
それRxJSでできるよそれRxJSでできるよ
それRxJSでできるよ
 
Apple審査を一発通過! iOS開発経験0でも出来る じげん流Swift開発のすべて
Apple審査を一発通過!iOS開発経験0でも出来るじげん流Swift開発のすべてApple審査を一発通過!iOS開発経験0でも出来るじげん流Swift開発のすべて
Apple審査を一発通過! iOS開発経験0でも出来る じげん流Swift開発のすべて
 
Developers Summit 2014 「Play2/Scalaでドメイン駆動設計を利用した大規模Webアプリケーションのスクラム開発の勘所」
Developers Summit 2014  「Play2/Scalaでドメイン駆動設計を利用した大規模Webアプリケーションのスクラム開発の勘所」Developers Summit 2014  「Play2/Scalaでドメイン駆動設計を利用した大規模Webアプリケーションのスクラム開発の勘所」
Developers Summit 2014 「Play2/Scalaでドメイン駆動設計を利用した大規模Webアプリケーションのスクラム開発の勘所」
 
「実践ドメイン駆動設計」社内読書会まとめ ~IDDD本難民に捧げる1章から7章~
「実践ドメイン駆動設計」社内読書会まとめ ~IDDD本難民に捧げる1章から7章~「実践ドメイン駆動設計」社内読書会まとめ ~IDDD本難民に捧げる1章から7章~
「実践ドメイン駆動設計」社内読書会まとめ ~IDDD本難民に捧げる1章から7章~
 

Similar to 【watchOS2】Timetravelを実装したComplicationをタップした時の情報を取得する方法

オフライン行動を支えるメール配送管理 at サイタ
オフライン行動を支えるメール配送管理 at サイタオフライン行動を支えるメール配送管理 at サイタ
オフライン行動を支えるメール配送管理 at サイタ
Yosuke TOMITA
 
Windows10時代のクロスプラットフォーム開発
Windows10時代のクロスプラットフォーム開発Windows10時代のクロスプラットフォーム開発
Windows10時代のクロスプラットフォーム開発
Kazushi Kamegawa
 
Infrastructure as Codeってなんだったっけ?
Infrastructure as Codeってなんだったっけ?Infrastructure as Codeってなんだったっけ?
Infrastructure as Codeってなんだったっけ?
Terui Masashi
 
Drupal on vagrant-aws
Drupal on vagrant-awsDrupal on vagrant-aws
Drupal on vagrant-aws
Tomoki Hasegawa
 
MUGT02 - vamp demo
MUGT02 - vamp demoMUGT02 - vamp demo
MUGT02 - vamp demo
Tetsuya Sodo
 
仙台 iOS開発者勉強会 2011/11/03 - TwitterAPIについて
仙台 iOS開発者勉強会 2011/11/03 - TwitterAPIについて仙台 iOS開発者勉強会 2011/11/03 - TwitterAPIについて
仙台 iOS開発者勉強会 2011/11/03 - TwitterAPIについて
tototti
 
Storage-JAWS #2登壇資料:きみは偉大な先輩Cloud Volumes ONTAPを知っているか?
Storage-JAWS #2登壇資料:きみは偉大な先輩Cloud Volumes ONTAPを知っているか?Storage-JAWS #2登壇資料:きみは偉大な先輩Cloud Volumes ONTAPを知っているか?
Storage-JAWS #2登壇資料:きみは偉大な先輩Cloud Volumes ONTAPを知っているか?
ssuser935fd7
 
watchOS1 to watchOS2
watchOS1 to watchOS2watchOS1 to watchOS2
watchOS1 to watchOS2
Motoki Narita
 
meguro.rb LT
meguro.rb LTmeguro.rb LT
meguro.rb LT
Tsunenori Oohara
 
EC-CUBEユーザカンファレンス2016
EC-CUBEユーザカンファレンス2016EC-CUBEユーザカンファレンス2016
EC-CUBEユーザカンファレンス2016
Chihiro Adachi
 
JobScheduler Code Reading
JobScheduler Code ReadingJobScheduler Code Reading
JobScheduler Code Reading
Shinobu Okano
 
ユーザーを待たせないためにできること
ユーザーを待たせないためにできることユーザーを待たせないためにできること
ユーザーを待たせないためにできること
Tomoaki Imai
 
配布用Dotcloudによるすぐ始めるtwitterwebアプリ開発#twtr hack
配布用Dotcloudによるすぐ始めるtwitterwebアプリ開発#twtr hack配布用Dotcloudによるすぐ始めるtwitterwebアプリ開発#twtr hack
配布用Dotcloudによるすぐ始めるtwitterwebアプリ開発#twtr hackyut148atgmaildotcom
 
20150328 humansociria
20150328 humansociria20150328 humansociria
20150328 humansociria
Mayumi Emori
 
iOS6時代のTwitter / Facebook連携
iOS6時代のTwitter / Facebook連携iOS6時代のTwitter / Facebook連携
iOS6時代のTwitter / Facebook連携
Masahiro Murakami
 
Ambrotypeにおける、Facebook連携方法
Ambrotypeにおける、Facebook連携方法Ambrotypeにおける、Facebook連携方法
Ambrotypeにおける、Facebook連携方法Hirotomo Oi
 
デブサミ2014-Stormで実現するビッグデータのリアルタイム処理プラットフォーム ~ストリームデータ処理から機械学習まで~
デブサミ2014-Stormで実現するビッグデータのリアルタイム処理プラットフォーム ~ストリームデータ処理から機械学習まで~デブサミ2014-Stormで実現するビッグデータのリアルタイム処理プラットフォーム ~ストリームデータ処理から機械学習まで~
デブサミ2014-Stormで実現するビッグデータのリアルタイム処理プラットフォーム ~ストリームデータ処理から機械学習まで~Takanori Suzuki
 
LEANSTARTUPの現場 #leanstartup
LEANSTARTUPの現場 #leanstartupLEANSTARTUPの現場 #leanstartup
LEANSTARTUPの現場 #leanstartup
Itsuki Kuroda
 
ラズパイでWebRTC ヾ(*´∀`*)ノキャッキャ uv4l-webrtc 軽くハックしてみたよ!
ラズパイでWebRTC ヾ(*´∀`*)ノキャッキャ    uv4l-webrtc 軽くハックしてみたよ!ラズパイでWebRTC ヾ(*´∀`*)ノキャッキャ    uv4l-webrtc 軽くハックしてみたよ!
ラズパイでWebRTC ヾ(*´∀`*)ノキャッキャ uv4l-webrtc 軽くハックしてみたよ!
Kensaku Komatsu
 
AppCenter
AppCenterAppCenter
AppCenter
Satoru Fujimori
 

Similar to 【watchOS2】Timetravelを実装したComplicationをタップした時の情報を取得する方法 (20)

オフライン行動を支えるメール配送管理 at サイタ
オフライン行動を支えるメール配送管理 at サイタオフライン行動を支えるメール配送管理 at サイタ
オフライン行動を支えるメール配送管理 at サイタ
 
Windows10時代のクロスプラットフォーム開発
Windows10時代のクロスプラットフォーム開発Windows10時代のクロスプラットフォーム開発
Windows10時代のクロスプラットフォーム開発
 
Infrastructure as Codeってなんだったっけ?
Infrastructure as Codeってなんだったっけ?Infrastructure as Codeってなんだったっけ?
Infrastructure as Codeってなんだったっけ?
 
Drupal on vagrant-aws
Drupal on vagrant-awsDrupal on vagrant-aws
Drupal on vagrant-aws
 
MUGT02 - vamp demo
MUGT02 - vamp demoMUGT02 - vamp demo
MUGT02 - vamp demo
 
仙台 iOS開発者勉強会 2011/11/03 - TwitterAPIについて
仙台 iOS開発者勉強会 2011/11/03 - TwitterAPIについて仙台 iOS開発者勉強会 2011/11/03 - TwitterAPIについて
仙台 iOS開発者勉強会 2011/11/03 - TwitterAPIについて
 
Storage-JAWS #2登壇資料:きみは偉大な先輩Cloud Volumes ONTAPを知っているか?
Storage-JAWS #2登壇資料:きみは偉大な先輩Cloud Volumes ONTAPを知っているか?Storage-JAWS #2登壇資料:きみは偉大な先輩Cloud Volumes ONTAPを知っているか?
Storage-JAWS #2登壇資料:きみは偉大な先輩Cloud Volumes ONTAPを知っているか?
 
watchOS1 to watchOS2
watchOS1 to watchOS2watchOS1 to watchOS2
watchOS1 to watchOS2
 
meguro.rb LT
meguro.rb LTmeguro.rb LT
meguro.rb LT
 
EC-CUBEユーザカンファレンス2016
EC-CUBEユーザカンファレンス2016EC-CUBEユーザカンファレンス2016
EC-CUBEユーザカンファレンス2016
 
JobScheduler Code Reading
JobScheduler Code ReadingJobScheduler Code Reading
JobScheduler Code Reading
 
ユーザーを待たせないためにできること
ユーザーを待たせないためにできることユーザーを待たせないためにできること
ユーザーを待たせないためにできること
 
配布用Dotcloudによるすぐ始めるtwitterwebアプリ開発#twtr hack
配布用Dotcloudによるすぐ始めるtwitterwebアプリ開発#twtr hack配布用Dotcloudによるすぐ始めるtwitterwebアプリ開発#twtr hack
配布用Dotcloudによるすぐ始めるtwitterwebアプリ開発#twtr hack
 
20150328 humansociria
20150328 humansociria20150328 humansociria
20150328 humansociria
 
iOS6時代のTwitter / Facebook連携
iOS6時代のTwitter / Facebook連携iOS6時代のTwitter / Facebook連携
iOS6時代のTwitter / Facebook連携
 
Ambrotypeにおける、Facebook連携方法
Ambrotypeにおける、Facebook連携方法Ambrotypeにおける、Facebook連携方法
Ambrotypeにおける、Facebook連携方法
 
デブサミ2014-Stormで実現するビッグデータのリアルタイム処理プラットフォーム ~ストリームデータ処理から機械学習まで~
デブサミ2014-Stormで実現するビッグデータのリアルタイム処理プラットフォーム ~ストリームデータ処理から機械学習まで~デブサミ2014-Stormで実現するビッグデータのリアルタイム処理プラットフォーム ~ストリームデータ処理から機械学習まで~
デブサミ2014-Stormで実現するビッグデータのリアルタイム処理プラットフォーム ~ストリームデータ処理から機械学習まで~
 
LEANSTARTUPの現場 #leanstartup
LEANSTARTUPの現場 #leanstartupLEANSTARTUPの現場 #leanstartup
LEANSTARTUPの現場 #leanstartup
 
ラズパイでWebRTC ヾ(*´∀`*)ノキャッキャ uv4l-webrtc 軽くハックしてみたよ!
ラズパイでWebRTC ヾ(*´∀`*)ノキャッキャ    uv4l-webrtc 軽くハックしてみたよ!ラズパイでWebRTC ヾ(*´∀`*)ノキャッキャ    uv4l-webrtc 軽くハックしてみたよ!
ラズパイでWebRTC ヾ(*´∀`*)ノキャッキャ uv4l-webrtc 軽くハックしてみたよ!
 
AppCenter
AppCenterAppCenter
AppCenter
 

More from Daiki Mogmet Ito

How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
Daiki Mogmet Ito
 
まだパスワードで認証してるの?Passkeysを使ってパスワードを駆逐してやる!
まだパスワードで認証してるの?Passkeysを使ってパスワードを駆逐してやる!まだパスワードで認証してるの?Passkeysを使ってパスワードを駆逐してやる!
まだパスワードで認証してるの?Passkeysを使ってパスワードを駆逐してやる!
Daiki Mogmet Ito
 
iOS 15で通知はより見られなくなる
iOS 15で通知はより見られなくなるiOS 15で通知はより見られなくなる
iOS 15で通知はより見られなくなる
Daiki Mogmet Ito
 
unity build on github actions
unity build on github actionsunity build on github actions
unity build on github actions
Daiki Mogmet Ito
 
How to learn new language
How to learn new languageHow to learn new language
How to learn new language
Daiki Mogmet Ito
 
Oracleでモテる実行計画を固定させる2つの方法
Oracleでモテる実行計画を固定させる2つの方法Oracleでモテる実行計画を固定させる2つの方法
Oracleでモテる実行計画を固定させる2つの方法
Daiki Mogmet Ito
 
Oracle how-to-audit-backup
Oracle how-to-audit-backupOracle how-to-audit-backup
Oracle how-to-audit-backup
Daiki Mogmet Ito
 
WWDC初参加の方に送る6つのおすすめな巡り方
WWDC初参加の方に送る6つのおすすめな巡り方WWDC初参加の方に送る6つのおすすめな巡り方
WWDC初参加の方に送る6つのおすすめな巡り方
Daiki Mogmet Ito
 
Oracle In-database-archiving ~Oracleでの論理削除~
Oracle In-database-archiving ~Oracleでの論理削除~Oracle In-database-archiving ~Oracleでの論理削除~
Oracle In-database-archiving ~Oracleでの論理削除~
Daiki Mogmet Ito
 
脱swift初心者するための2つのきっかけ
脱swift初心者するための2つのきっかけ脱swift初心者するための2つのきっかけ
脱swift初心者するための2つのきっかけ
Daiki Mogmet Ito
 

More from Daiki Mogmet Ito (10)

How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
 
まだパスワードで認証してるの?Passkeysを使ってパスワードを駆逐してやる!
まだパスワードで認証してるの?Passkeysを使ってパスワードを駆逐してやる!まだパスワードで認証してるの?Passkeysを使ってパスワードを駆逐してやる!
まだパスワードで認証してるの?Passkeysを使ってパスワードを駆逐してやる!
 
iOS 15で通知はより見られなくなる
iOS 15で通知はより見られなくなるiOS 15で通知はより見られなくなる
iOS 15で通知はより見られなくなる
 
unity build on github actions
unity build on github actionsunity build on github actions
unity build on github actions
 
How to learn new language
How to learn new languageHow to learn new language
How to learn new language
 
Oracleでモテる実行計画を固定させる2つの方法
Oracleでモテる実行計画を固定させる2つの方法Oracleでモテる実行計画を固定させる2つの方法
Oracleでモテる実行計画を固定させる2つの方法
 
Oracle how-to-audit-backup
Oracle how-to-audit-backupOracle how-to-audit-backup
Oracle how-to-audit-backup
 
WWDC初参加の方に送る6つのおすすめな巡り方
WWDC初参加の方に送る6つのおすすめな巡り方WWDC初参加の方に送る6つのおすすめな巡り方
WWDC初参加の方に送る6つのおすすめな巡り方
 
Oracle In-database-archiving ~Oracleでの論理削除~
Oracle In-database-archiving ~Oracleでの論理削除~Oracle In-database-archiving ~Oracleでの論理削除~
Oracle In-database-archiving ~Oracleでの論理削除~
 
脱swift初心者するための2つのきっかけ
脱swift初心者するための2つのきっかけ脱swift初心者するための2つのきっかけ
脱swift初心者するための2つのきっかけ
 

【watchOS2】Timetravelを実装したComplicationをタップした時の情報を取得する方法