[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でアプリを送って審査してもらうことにした。
関連記事
-
iOS デバイスサポート最終バージョン
iOS9からGKSession over Bluetoothが無効に なってしまったので Multi
-
Mac Fan 2020年 6月号
長女のiPhone 6 の画面がバキバキに割れているので、iPhone SE を購入した。
-
中野の3Dプリンタ屋でPebbleスタンドを出力してきた
中野ブロードウェイの地下に3Dプリンタ屋ができたので、Pebbleスタンドを出力してみた。
-
イタリア語でレビューをいただきました
おんぷちゃん for iPad にイタリア語でレビューをいただきました。 Ottimo! O
-
電子書籍を出してみたよ! を買ってみた。
面白そうだったので買ってみた。電子出版に興味のある出版関係者で集まってKindle Storeで日本
-
アップルのタブレット端末に関するEngadgetのおもろい記事
Engadgetはごくたまに笑いのつぼにヒットするが今回のは面白かった。 ジョブズはタブレット端末に
-
Apple Special Event 2012
2012年は下記が発表された。 iPhone 5iPod touchiPod nano
-
Apple Event Sep 2022 Far Out
毎年恒例の Apple Event が 2022/09/07 に行われた。日本時間は 9/8 2:
-
[iOS開発本] ARC や Storyboardなどを説明した本
ARC や Storyboard を紹介した良い本を教えてほしい、と会社のマニアな人に質問されたので
-
いまさらながらiPhone Developer Programに加入
iPhoneアプリは、Macを買うと無料で添付されてくる Xcodeと、Webから無料でダウンロード