2016年02月21日

WWDC15 - 209 Creating Complications with ClockKit

Creating Complications with ClockKit
WWDC 2015 | App Frameworks | Session 209
56:02
https://developer.apple.com/videos/play/wwdc2015-209/

※WWDCセッション関係の記事は、セッション内容を要約して内容を伝えるのが目的ではない。各セッションビデオで何が話されているかの項目をテキスト化することで後で何かを調べたいときにどのビデオを見れば良いか判断する材料にするために書いている。

時計の表示と組み合わせてる細かな情報表示のコンプリケーション機能(適当な日本語訳が見当たらない)の実装方法。ClockKitを使用する。

・まず表示サイズを決め、テンプレートを選択する。
・プロジェクトではコンプリケーション用のコントローラを作成して、ここで各種デリゲートメソッドを実装する。
・コンプリケーションを生成して、適切なデータプロバイダーを設定する。
・時刻ごとに表示を更新するのはプロバイダーが実行する。
・どの情報を表示するかはや、タイムライン表示、タイムトラベル表示に対応するにはそれぞれのデリゲートを実装するだけ。
・各デリゲートの役割をわかりやすく図解で説明している。
・デモでは実際にコードを作成して結果に反映させていく例を示す。
--
Digital Crownで表示するComplicationを選択可能。
ExtensionがComplicationにデータを供給する。
時間が経過した後で情報を更新する必要がある。
TimeTravel

Projectを作るときに、include Complicationsをチェックする。
Data Source Class = ComplicationController

[Complication Families]
Modular small (正方形)
Modular large (中央)
Utilitarian small (角)
Utilitarian large (下部)
Circular small (四隅?)

[Complication Layout]
CLKComplicationTemplate
Modular small 7個
Modular large 5個
Utilitarian small 4個
Utilitarian large 1個
Circular small 6個

Header Image, Header text, Body 1 text, Body 2 text

[Provider Image and Text]
NSImageProvider
- backgroundImage, backgroundColor, foregroundImage, foregroundColor
NSTextProvider

[Example:Formatting Dates]
CLKDateTextProvider - 表示サイズに合わせて表示内容を調整する

Simple text provider
Time text provider
Time interval text provider

[Relative Dates]
Relative Date Text Provider - Code Sample 20:00〜
Styles
- Natural, Offset, Timer

[Timeline]
時刻に合わせて最適な時点のデータを表示する。
予定に合わせて表示を変える場合、予定の時間だけ表示するのではなく次の予定を表示するのが適当。
CLKComplicationTimelineEntry

[Complication Data Source]
CLKCOmplicationDataSource protocol

Clock Face <---> Extension
func getCurrentTimelineEntryForComplication( complication: ... )

Extended timeline
func getTImelineEntriesForComplication( complication: afterDate: limit: withHandler: )

Time Travel directions

Timeline boundaries
func getTimelineEndDateForComplication(complication: withHander:)

Placeholder Templates
func getPlaceholderTemplateForComplication(complication: withHandler:0

[DEMO] 34:02〜
テスト時にはいったんWatchシミュレータからUninstallして、削除されたのを確認してからインストール実行する。

CLKComplicationTemplateModularLargeStandardBody()

[Reload Timeline] 51:00〜
CLKComplicationServer

[When Can You Update?]
Whenever extension runs
- When Watch app runs
- Locally shcduled wake [Budgeted]
- iPhone initiated wake [Budgeted]

[CLKComplicationDateSource]



posted by 永遠製作所 at 18:21| 東京 ☁| Comment(0) | TrackBack(0) | WWDC | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバック