Apple Watch用アプリケーションの開発(その1)

はじめてのApple Watch開発についてのメモ

ここを見ながら作っていく
https://developer.apple.com/jp/documentation/General/Conceptual/WatchKitProgrammingGuide/index.html#//apple_ref/doc/uid/TP40014969-CH8-SW1


将来的に作りたいものは、ランニング用のアプリだけど、それは次の機会に。


Watchアプリケーションバンドルと、WatchKitExtension バンドル

WatchアプリケーションバンドルはUIのみ
  - ストーリーボード
  - リソースファイルだけ

WatchKitExtension は状態管理、インターフェースの管理、ユーザ操作の応答を行う


Watchアプリケーションのアーキテクチャ
https://developer.apple.com/jp/documentation/General/Conceptual/WatchKitProgrammingGuide/DesigningaWatchKitApp.html#//apple_ref/doc/uid/TP40014969-CH3-SW1


コンプリケーション
  - 時計の画面に表示できる小さな可視要素
  - アプリはメモリーに常駐しており、起動が早い
  - バックグランドタスクを実行できる割り当て時間が増加する

リモート通知のテスト、デバッグ
  JSONペイロードデータを指定して、送信される。
  PushNotificationPayload.apps この仕組みは普通にiOSアプリにも欲しいな。


WatchKitExtensionのデリゲート
  - WKExtension
  - WKExtensionDelegate (AppDelegateみたいなやつ)
    呼び出されるクラスはInfo.plistで指定する


バックグランドタスク
  - システムから呼び出され、それぞれのタスクの処理を行う
    - アプリケーションを最新の状態に更新
    - スナップショットを更新するタスク
    - Watchs接続タスク(iOSから取得する)
    - NSURLSessionタスク

データの共有
  - 各バンドル(Watchアプリケーション、WatchKitExtensionの両方)に置く
  - WatchKitExtensionに置く、Watchアプリケーションからはアクセス可能なため。
  - ネットワーク経由でダウンロード(またはiOSから転送)して、共有グループコンテナに置く


ファイルの共有
  - WatchアプリケーションとWatchKit Extensionのファイルの共有はApp Groupsを使って行う

iOSとのデータのやり取りをWatch Connectivity Frameworkを使う
  - 一時的なデータはupdateAplicationContextを使う。送信が完了していない場合に、再度呼び出すと、前回のデータは破棄されて、新しい送信を始める
  - 確実に届けたい場合はtransferUserInfoを使う





 

0 件のコメント:

コメントを投稿

DataStoreの辛いところ

# DataStoreの限界 FacebookやインスタグラムのようなSNSで、投稿、公開範囲、お気に入りなどの機能をDataStoreで実現しようとするとどうしても辛くなる。 ## DataStoreで実現可能? - users - id - feeds - i...