LoginSignup
11
12

More than 5 years have passed since last update.

Apple Watchアプリの作り初め

Last updated at Posted at 2015-12-03

watchOS2なアプリを始めるための用語理解

watchOS 2になって時計再度ででいろいろ処理できるようになったからいろいろアプリ作れるやないか!
と思ってたけど、いろいろバタバタしてもう3ヶ月くらい。困ってたこと思い出しながら、ドキュメントも充実してきてるのでメモメモ。
始めるにあたって、ささっとやるだけであっても、用語理解とライフサイクルの理解等は、真剣にやっとかなあかんなぁと思いました。

内容はこれの要約の要約みたいなもんです。
https://developer.apple.com/library/ios/documentation/General/Conceptual/WatchKitProgrammingGuide/index.html#//apple_ref/doc/uid/TP40014969-CH8-SW1

環境

OS Version
Mac OS Mac OS X Yosemite
iOS 9.1
watchOS 2.0
Xcode 7.1.1

基礎用語

用語 説明
Watchアプリケーション 実際のAppleWatchのアプリケーション
WatchKitExtention WatchアプリケーションでUIやらリソースを保持しているもの
グランス 下から画面をスワイプしたときに出てくるやつ。1画面で完結する必要有り。
コンプリケーション 時計の画面に出てくる小さい要素

基本的なフレームワークの立ち位置。

下図で言うところのwatch OSとiOSの会話をConnectivityFrameworkでやっている。

20151129123803.png

簡単な実装を行うための用語準備

まず必要なクラスとしてInterface ControllerというWKInterfaceControllerを継承したクラス。
iOSで言うところのViewControllerに似ているが、描画を直に担当してるわけじゃなさそう。

画面遷移(インターフェースナビゲーション)

基本的にはページベースと階層型ってのに分かれるらしい。
モーダルって便利アイテムもアリ。
(個人的には「ページベースの中で階層型を使うためのもの」に誓い解釈をしている。)

ページベース 並列に並んでる感じ(下にチョボがあって横スライドする感じのやつ)

storyboardでControlドラッグして別のInterfaceControllerに繋げば実装可(iOSでmodalとかする感じ)このつながりをセグエって言うらしい。
didAppearやらwillDisappearメソッドでビューがアクティブかどうかを判別

階層型 読んで字のごとく(左上に戻る<的なのがあるやつ)

pushControllerWithName:context:メソッドで遷移

モーダル 上記2個とは別枠で、iOSと同じく親子な感じで遷移するやつ

presentControllerWithName:context:メソッドで単一InterfaceControllerをモーダル
presentControllerWithNames:contexts:メソッドで複数をページベースでモーダル

グランス

常に最新情報が必要なのでwillActivateに更新処理を含めると吉
StoryBoardにて、右下からGlance Interface Controllerを引っ張ってきて乗せれば基本的にOK
「1画面でわかりやすく表示するぜ!」というポリシーで作成しろとのこと。

通知

通知の種類(ローカルorリモート)

通知 仕組み
ローカル通知 iOS側で完結
リモート通知 外部からのプッシュ通知

通知の種類(通知画面の種類)

通知画面 仕組み
ショートルック 通知来た時に出るやつ。あんまりカスタマイズできない。
ロングルック ショートルックの中でも詳細見たいときのやつ。レスポンスの変更も可(スタンプ送る、的な)

通知の画面での表示領域

通知の画面で出てくる表示を3つに領域分けしている

領域 内容
sash領域 アイコンとラベル
content領域 内容。カスタムロングルックインターフェースで設定可
bottom領域 ボタンが配置される場所なイメージ

content領域の表示方式

・スタティックインターフェース 必須 下記ケースで表示される
 ダイナミックインターフェイスがない
 電力が不足している
 開発者が明示的に表示しないよう指示
・ダイナミックインターフェース categoryが一致しているものを表示する。ちょっとおしゃれな感じに加工できる。
 1.WKUserNotificationInterfaceControllerのサブクラス作成
 2.Has Dynamic Interfaceをon
 3.インターフェースにクラスを関連付け
20151129135626.png

まとめ

基本的にこれだけのイメージが最初にあれば、設計もある程度できる気がするしとっつきやすい気がする。
ドキュメントがいかに整備されてても、「どうスタートしたものか....」ってなるのがAppleやなぁ(玄人志向やなぁ)と俺は思う。
まぁ日本語ドキュメントがあんま無いからってだけやから、英語勉強せぇ言う話やねんけどね。

気が向いたらぼちぼち実装してgithubにでも

11
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
12