[iOS SDK] Pebble腕時計対応iOSアプリを作る

公開日: : 最終更新日:2013/08/20 gadget, iPad, iPhone, Pebble

英単語学習アプリ 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の電池消費量が多くなる。

これらを実施すると、下記のような状態になる。
Pebble01

Pebble02

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でアプリを送って審査してもらうことにした。

pebble03

関連記事

モバイルバッテリー Anker PowerCore+ mini を注文してみた

以前から非常用に小さいモバイルバッテリーがほしかったので、新発売、タイムセールだった Anker P

記事を読む

no image

アップルストア渋谷で発売日翌日にiPhone 5を買ってきた

2012年9月21日8時に発売されたiPhone5、自分はヨドバシカメラで予約したのだけれどもちょっ

記事を読む

no image

Corona SDK 調査6日目

なかなか Corona SDK自体の調査まで進めないCorona SDK調査6日目。 平日はさすがに

記事を読む

no image

[iPhone5] ステータスバーの謎の○(丸)表示

iPhone5使い始めて2日目、自宅でもLTE表示が出ていたのになぜかある時から○表示になってしまっ

記事を読む

no image

省メモリプログラミング

昔買った「省メモリプログラミング」を読み返してみたら、Objective-Cで採用している参照カウン

記事を読む

Olympus Camera Kit (SDK)を製品版に移行

発売が延期されていた OLYMPUS AIR A01も2015/3/25(水)についに発売された。

記事を読む

no image

[iPhone5] 使用開始5日目の感想

au iPhone5を発売日翌日(9/22)に購入してから5日経ったので感想を書いてみる。 し

記事を読む

no image

Corona SDK 新バージョンリリース

Corona SDKの新バージョンが出た。 Corona SDK: New additions an

記事を読む

Apple Special Event 2017

2017年は仕事で死んでいたので、Special Eventの記事を書けていなかった。記録

記事を読む

4年ぶりにLogLocationsをアップデート

4年ぶりにLogLocationsのアップデート版を作成中。3年間更新していなかったので、画面がフラ

記事を読む

Message

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Ember Mug 2のACアダプタをUSB Type-Cに変えてみた

冬になると活躍する Ember Mug 2 の充電器は付属のACアダ

Wi-Fi6Eルータ TP-Link AXE5400購入

Wi-Fi6E を試してみたくなり、TP-Link AXE5

児童手当 認定請求書申請 2024 「請求者が養育をする18歳に達する日以降の最初の3月31日までの子の数」とは?

2024年に受給していない人には手紙が届くらしい。 電子申請も

Vision Proアプリ開発本 8/24、8/26に発売

Vision Proアプリ開発入門 P400が 8/24 に発売、V

Developer Strap が日本でも購入可能に

USアカウントでしか購入できなかった Vision Pro 用 De

→もっと見る

  • 2013年6月
     12
    3456789
    10111213141516
    17181920212223
    24252627282930
PAGE TOP ↑