[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でアプリを送って審査してもらうことにした。
関連記事
-
-
Apple iPad まとめ
(2010/01/28 朝5時あたりのapple.comのトップページ) 2010/01/27(水
-
-
MacFan 2019年11月号購入
毎年この時期は必ず Mac雑誌を買っている。発売されたばかりのiPhone情報が特集されるためだ。
-
-
新アプリ「ドラムちゃん」を公開しました
2015年から作りはじめた iPad専用 ドラム譜学習アプリ ドラムちゃん を本日 2017/01/
-
-
確かに薄い iPhoneケース eggshell iPhone クリア
試しにiPhoneアプリのwordpressで更新してみる。 とにかく薄いiPhoneケースがほしく
-
-
Topeak Ridecase Mount破損
自転車にiPhone7 Plusを固定しようとしていたTopeak Ridecase Mount の
-
-
iOS Developer Program 更新(2回目)
4月はじめにiOS Developer Program の期限が切れるので、Apple から
-
-
歯科専用 キシリトール100%ガム
歯科医本を4冊ほど読みながら、キシリトール100%ガムを買ってみた。 歯科医専用ということで、確かに
-
-
EverLearn 2.2.1 を公開しました
自作英単語学習アプリ EverLearn 2.2.1を公開しました。 ユーザの方から
-
-
BUFFALO ハイパワー無線LANルーター WZR-HP-G301NH
しばらくいろいろ機種を検討していたが、BUFFALOの2010年型無線LANルーター WZR-HP-
-
-
au で iPhone5 を下取りに出してきた
今ならiPhone 5を32000で買い取りしてもらえるということで、au Shop に行っ