[iOS SDK] Pebble腕時計対応iOSアプリを作る
英単語学習アプリ WordLearnをリリースしましたに書いたけれども今Pebble腕時計対応iOSアプリを開発しているのでそのメモを公開してみる。
2013/06/08 現在だと、こんな方法で開発する。
まだSDKがでたばかりなのでこれからどんどん変わっていくと思うのであくまで参考までに。
PebbleKit(SDK)のインストール
PebbleKit をインストールする。
現在の最新版は PebbleKit v1.1.1。
インストール手順は結構面倒。覚悟してがんばろう。
iOSアプリビルド準備
- PebbleKit.framework をプロジェクトに追加
- PebbleVendor.framework をプロジェクトに追加
- ExternalAccessory.framework, libz.dylib, CoreBluetooth.framework, CoreMotion.framework , MessageUI.framework を追加
- “-ObjC” を Build Settings の linker flag に追加
- “com.getpebble.public” をInfo.plistの”Supported external accessory protocols” (UISupportedExternalAccessoryProtocols) に追加
- 必要であれば、”App communicates with an accessory” (external-accessory) “Required background modes” (UIBackgroundModes) も追加する。これにより、バックグラウンドに回っても通信が出来るようだ。しかし、その分Pebbleの電池消費量が多くなる。
これらを実施すると、下記のような状態になる。
Pebbleとの通信について
PBWatch の AppMessage を使って通信する。
Pebble側はPure Cしか使えないが、Dictionaryのサポートはあるのでそれなりに簡単にメッセージのやりとりはできる。
Pebble側はC言語が使えるが、malloc など動的なメモリ確保は出来ず、メモリは静的に確保する必要がある。このあたりははまりポイントだった。
Help with getting a single char – Pebble Forums
また、strtok とか sprintf とか便利な関数達は用意されていないので、自前で書いたりする必要がある。このあたりはForumでもよく話題になっているようだ。
Pebbleのドキュメントはまだまだ記述が足りておらず、またまちがいもあったりするので、Pebble Developer Forumの活用は必須。
ちょっとはまったらForumを検索して、質問がなかったら自分でどんどん質問した方が時間の節約になりそうだ。
しかし多くの先人達のおかげでかなりノウハウがたまっているので、Forum検索でたいてい解決できる。
通信に関しては、iOS側は WeatherDemo、Pebble側はdemosディレクトリのfeature_app_message, feature_app_message_send が参考になる。
現状のiOSアプリの制限について
Android に比べると、いろいろと制限があるようだ。
Pebble | SDK |
- iOS上で、同時に通信できるのは1セッションのみ。複数のアプリで共有される必要がある。このため、Pebbleを発見して即通信を開始してはいけない。また、アプリの使用をやめたらすぐに closeSession: メソッドでセッションを閉じる必要がある。
- 通信はiOSアプリ側からしか開始できない。(Pebble側からiOSアプリを起動したりは出来ないようだ)
App Store への Submit について
Pebble | SDK | によると、Pebble は Made For iPhone program の一員であるため、対応アプリを whitelist 化する必要があるらしい。
指示通りに bizdev@getpebble.com にメールしたところ、30分以内で whitelisting guide のPDFが送られてきた。
その文書によると、ユーザが手動で Pebble との通信を start/stop できるように作る必要があるとのこと。
起動時に即つながってはいけないのかもしれない。
また、App Store 提出前に、彼らの審査も通してもらう必要があるようだ。
このあたりはおいおい調査していこう。
2013/06/23 追記
Pebble向けのアプリ対応が大体完成したので、サポートとメールのやりとりを再開したところ、TestFlightかHockeyAppでアプリを送るのは必須な作業らしい。
TestFlightでアプリを送って審査してもらうことにした。
関連記事
-
-
Alexaスキル 「百人一首ちゃん」を公開しました
しばらく審査で不合格を繰り返していた、Amazon Echo用 百人一首学習用 Alexaスキル
-
-
Apple Developer Program 更新2016
そろそろ期限が切れるので、Apple Developer Program - Apple Devel
-
-
Photoshop のバッチ処理でiOSアプリアイコンを一括作成する
毎回苦労しているiOSのアプリアイコン作成。今回はPhotoshopのバッチで作成してみる。前回は
-
-
Apple Developer Program更新2019
今年も更新。税別 11800円だった。 2009年から継続しているようだ。もう11回
-
-
[iOS9] jQuery Mobile のBackボタンが動作しない
自作アプリ EverLearn や Reibun でヘルプファイルの表示用にローカルに保存した jQ
-
-
リズムくんにくまモン画像を利用させていただきました
熊本県さまから許諾をいただけたので、リズムくん バージョン1.6で、くまモン画像を表示
-
-
LINE Clova ドラえもんを買ってみた
LINE は使っているけれども、Amazon Echo DotとAmazon Echo Spot
-
-
Everioで撮影した動画を共有する
毎年クリスマス近くになると、娘たちのバレエミニ発表会があるので、動画を撮って参加者に共有している。と
-
-
[iPhone SDK] 自作iPhone アプリのアイコンをつや消しにする
iPhone のホーム画面に表示されるアプリアイコンは自動的に てかてか つやつや 効果を付与されて
-
-
Apple iPod touch 第4世代 8GB MC540J/A 注文
Retinaディスプレイとジャイロセンサーを使ってみたかったので、数時間迷った末 Appleのオンラ