SlideShare une entreprise Scribd logo
1  sur  30
Télécharger pour lire hors ligne
complicationについて
成田 元輝
• この資料は一般に公開されている情
報(WWDCのセッション、デベロッ
パーアカウントがなくてもアクセス
可能なもの)を元に作成されています
Attention
complication
complication
complication
• 時計のフェイスに情報を表示できる
• 時系列ごとの情報の表示が可能

Time Travel
• 表示領域をタップするとWatch App
へ遷移する
complication
参考資料
watchOS 2 Transition Guide
https://developer.apple.com/library/prerelease/watchos/documentation/General/Conceptual/
AppleWatch2TransitionGuide/DesigningaComplication.html#//apple_ref/doc/uid/TP40015234-CH11-SW1
Creating Complications with ClockKit
https://developer.apple.com/videos/wwdc/2015/?id=209
Complication Families
complication
Complication Families
https://developer.apple.com/library/prerelease/watchos/documentation/General/Conceptual/
AppleWatch2TransitionGuide/DesigningaComplication.html#//apple_ref/doc/uid/TP40015234-CH11-SW1
• Complication Familiesごとにレイア
ウトが複数用意されている
• 全てのComplication Familiesをサ
ポートする必要はない
Complication Families
Complication Families
Modular small
Modular
Creating complication with ClockKitより
Creating complication with ClockKitより
Complication Families
Modular small
Modular large
Modular
Creating complication with ClockKitより
Complication Families
Modular small
Modular large
Utilitarian small
Utilitarian
Creating complication with ClockKitより
Complication Families
Modular small
Modular large
Utilitarian small
Utilitarian large
Utilitarian
Creating complication with ClockKitより
Complication Families
Modular small
Modular large
Utilitarian small
Utilitarian large
Circular small
Circular
CLKComplicationTemplate
Utilitarian SmallModular Large
Utilitarian Large
11:00AM
Group D
Haight – Twin Peaks
Modular Small Circular Small
CLKComplicationTemplate
Creating complication with ClockKitより
CLKComplicationTemplate
class CLKComplicationTemplateModularLargeStandardBody {
var headerImageProvider: CLKImageProvider?
var headerTextProvider: CLKTextProvider
var body1TextProvider: CLKTextProvider
var body2TextProvider: CLKTextProvider?
}
CLKComplicationTemplate
11:00AM
Group D
Haight – Twin Peaks
Body 2 text
Body 1 text
Header image Header text
Creating complication with ClockKitより
CLKComplicationTemplate
• 文字列はCLKTextProviderと
CLKTextProviderを継承したクラス
• 表示形式に適した
CLKComplicationTemplateを選ん
で使用する
CLKComplicationDataSource
• complicationの表示のために必要な
データを作成
• データを適したテンプレートにパッ
ケージングすること
CLKComplicationDataSource
// complicationでTimeTravelでサポートする方向
- getSupportedTimeTravelDirectionsForComplication:withHandler:
CLKComplicationDataSource
struct CLKComplicationTimeTravelDirections : OptionSetType {
init(rawValue rawValue: UInt)
static var None: CLKComplicationTimeTravelDirections { get }
static var Forward: CLKComplicationTimeTravelDirections { get }
static var Backward: CLKComplicationTimeTravelDirections { get }
}
CLKComplicationTimeTravelDirections
TimeTravelでサポートする方向を決める
// 開始時間
- getTimelineStartDateForComplication:withHandler:
// 終了時間
- getTimelineEndDateForComplication:withHandler:
CLKComplicationDataSource
complicationに表示する情報のサポート時間範囲
• 範囲外の時間になったらcomplicationが暗転する
- getPrivacyBehaviorForComplication:withHandler:
CLKComplicationDataSource
complicationに表示するデータのプライバシー設定
CLKComplicationPrivacyBehaviorShowOnLockScreen
CLKComplicationPrivacyBehaviorHideOnLockScreen
ロック時に表示させたくない場合はCLKComplicationPrivacyBehaviorHideOnLockScreenを返す
// 現在の時間のデータを返す
- getCurrentTimelineEntryForComplication:withHandler:
// TimeTravelで過去の時間のデータを表示させる際に使用
- getTimelineEntriesForComplication:beforeDate:limit:withHandler:
// TimeTravelで未来の時間のデータを表示させる際に使用
- getTimelineEntriesForComplication:afterDate:limit:withHandler:
CLKComplicationDataSource
complicationに表示するデータの設定
- getPlaceholderTemplateForComplication:withHandler:
CLKComplicationDataSource
complication設定時に表示するデータを設定
• データソースのメソッドは最小限にとどめておくこと

The implementations of your data source methods should be minimal. 

• 通信してデータを取ってくるとか計算とかデータの転送が遅れるようなことはしない

Do not use your data source methods to fetch data from the network, compute values, or do anything that might delay the delivery of that data. 

• データの取得や計算が必要な場合はiOSアプリ側で行ったり、WatchKit extension
の別の場所で行い、それをcomplicationからアクセス可能な場所にキャッシュさせて
使用すること

If you need to fetch or compute the data for your complication, do it in your iOS app or in other parts of your WatchKit extension and cache the data in a place where your complication data source can access it. 

• データソースのメソッドではキャッシュしたデータを取ってきて、ClockKitの要求す
るフォーマットに設定するだけにする

The only thing your data source methods should do is take the cached data and put it into the format that ClockKit requires
注意点
おわり

Contenu connexe

Similaire à Complication

モバイルゲームの「大規模な開発」かつ「高頻度の更新」を実現するための開発環境整備の取り組み
モバイルゲームの「大規模な開発」かつ「高頻度の更新」を実現するための開発環境整備の取り組みモバイルゲームの「大規模な開発」かつ「高頻度の更新」を実現するための開発環境整備の取り組み
モバイルゲームの「大規模な開発」かつ「高頻度の更新」を実現するための開発環境整備の取り組み
MorioImai
 
Netラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考える
Netラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考えるNetラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考える
Netラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考える
david9142
 

Similaire à Complication (20)

Logic Apps/Flow Update Summary
Logic Apps/Flow Update SummaryLogic Apps/Flow Update Summary
Logic Apps/Flow Update Summary
 
Cloud Foundry にアプリケーションを push する際の典型的な10のエラー
Cloud Foundry にアプリケーションを push する際の典型的な10のエラーCloud Foundry にアプリケーションを push する際の典型的な10のエラー
Cloud Foundry にアプリケーションを push する際の典型的な10のエラー
 
Oracle GoldenGate 概要 2020年11月版
Oracle GoldenGate 概要 2020年11月版Oracle GoldenGate 概要 2020年11月版
Oracle GoldenGate 概要 2020年11月版
 
Android Lecture #01 @PRO&BSC Inc.
Android Lecture #01 @PRO&BSC Inc.Android Lecture #01 @PRO&BSC Inc.
Android Lecture #01 @PRO&BSC Inc.
 
はじめての JFrog Platform V2
はじめての JFrog Platform V2はじめての JFrog Platform V2
はじめての JFrog Platform V2
 
第9回しゃちほこオラクル倶楽部
第9回しゃちほこオラクル倶楽部第9回しゃちほこオラクル倶楽部
第9回しゃちほこオラクル倶楽部
 
モバイルゲームの「大規模な開発」かつ「高頻度の更新」を実現するための開発環境整備の取り組み
モバイルゲームの「大規模な開発」かつ「高頻度の更新」を実現するための開発環境整備の取り組みモバイルゲームの「大規模な開発」かつ「高頻度の更新」を実現するための開発環境整備の取り組み
モバイルゲームの「大規模な開発」かつ「高頻度の更新」を実現するための開発環境整備の取り組み
 
Laravel5を使って開発してみた
Laravel5を使って開発してみたLaravel5を使って開発してみた
Laravel5を使って開発してみた
 
120315 cloud founry_java_ironfoundry
120315 cloud founry_java_ironfoundry120315 cloud founry_java_ironfoundry
120315 cloud founry_java_ironfoundry
 
Cloud Foundry構成概要 111018
Cloud Foundry構成概要 111018Cloud Foundry構成概要 111018
Cloud Foundry構成概要 111018
 
NTTコミュニケーションズ Cloudn勉強会資料 SDKでAPIをたたいてみよう
NTTコミュニケーションズ Cloudn勉強会資料 SDKでAPIをたたいてみようNTTコミュニケーションズ Cloudn勉強会資料 SDKでAPIをたたいてみよう
NTTコミュニケーションズ Cloudn勉強会資料 SDKでAPIをたたいてみよう
 
Build Windows ラップアップ
Build Windows ラップアップBuild Windows ラップアップ
Build Windows ラップアップ
 
Spring Integration 超入門
Spring Integration 超入門Spring Integration 超入門
Spring Integration 超入門
 
Netラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考える
Netラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考えるNetラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考える
Netラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考える
 
Odl intro20141029
Odl intro20141029Odl intro20141029
Odl intro20141029
 
watchOS1 to watchOS2
watchOS1 to watchOS2watchOS1 to watchOS2
watchOS1 to watchOS2
 
19. camel tooling
19. camel tooling19. camel tooling
19. camel tooling
 
バグ0の資産を積み上げるための証明駆動開発入門
バグ0の資産を積み上げるための証明駆動開発入門バグ0の資産を積み上げるための証明駆動開発入門
バグ0の資産を積み上げるための証明駆動開発入門
 
JDK Mission Control: Where We Are, Where We Are Going [Groundbreakers APAC 20...
JDK Mission Control: Where We Are, Where We Are Going [Groundbreakers APAC 20...JDK Mission Control: Where We Are, Where We Are Going [Groundbreakers APAC 20...
JDK Mission Control: Where We Are, Where We Are Going [Groundbreakers APAC 20...
 
Docker Chronicle 2021.09
Docker Chronicle  2021.09Docker Chronicle  2021.09
Docker Chronicle 2021.09
 

Plus de Motoki Narita

Plus de Motoki Narita (12)

Type safety WCSession
Type safety WCSessionType safety WCSession
Type safety WCSession
 
NullabilityとジェネリクスでswiftからObjective-Cのコードを使いやすくする
NullabilityとジェネリクスでswiftからObjective-Cのコードを使いやすくするNullabilityとジェネリクスでswiftからObjective-Cのコードを使いやすくする
NullabilityとジェネリクスでswiftからObjective-Cのコードを使いやすくする
 
できることから始めるOss活動
できることから始めるOss活動できることから始めるOss活動
できることから始めるOss活動
 
Enumerate
EnumerateEnumerate
Enumerate
 
Swift3.0に向けて enumerateを使い始めよう
Swift3.0に向けて enumerateを使い始めようSwift3.0に向けて enumerateを使い始めよう
Swift3.0に向けて enumerateを使い始めよう
 
About Swift-Clean
About Swift-CleanAbout Swift-Clean
About Swift-Clean
 
Swift bondさわってみた
Swift bondさわってみたSwift bondさわってみた
Swift bondさわってみた
 
watchOS2 tips
watchOS2 tipswatchOS2 tips
watchOS2 tips
 
個人で開発したアプリがベスト新着に選ばれた話
個人で開発したアプリがベスト新着に選ばれた話個人で開発したアプリがベスト新着に選ばれた話
個人で開発したアプリがベスト新着に選ばれた話
 
Xcode tips
Xcode tipsXcode tips
Xcode tips
 
Watch connectivity
Watch connectivityWatch connectivity
Watch connectivity
 
Optionalの使い方 第1回 Swift勉強会@ネクスト
Optionalの使い方 第1回 Swift勉強会@ネクストOptionalの使い方 第1回 Swift勉強会@ネクスト
Optionalの使い方 第1回 Swift勉強会@ネクスト
 

Complication