[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

関連記事

no image

省メモリプログラミング

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

記事を読む

LogLocations 1.4.5 リリース

LogLocations 1.4.5 をリリースしました。 LogLocat

記事を読む

no image

iPhone OS 4.0 のマルチタスク対応

iPhone OS 4.0 でマルチタスク対応される、ということでWindowsやMacOS Xの

記事を読む

no image

確かになめらかな書き味の油性ボールペン Pentel Vicuna ビクーニャ

ペンがとても好きだ。 理想のペンを求めてこれまで様々なものを試してきたけれども、今日たまたま文房具店

記事を読む

MacOS Yosemite に Pebble SDK 3.0 をインストールする

Pebble Timeが届いたので、早速 Pebble SDK 3.0 をMacBook P

記事を読む

no image

BUFFALO ハイパワー無線LANルーター WZR-HP-G301NH

しばらくいろいろ機種を検討していたが、BUFFALOの2010年型無線LANルーター WZR-HP-

記事を読む

no image

英単語学習アプリ EverLearnをリリースしました

2012年年末あたりからこつこつ作り続けてきた英単語学習アプリ EverLearn – タイピング英

記事を読む

no image

Your application status is Ready for Sale

5/2にAppStoreにSubmitしたアプリに関して、Apple から Your applica

記事を読む

no image

[iOS開発本] ARC や Storyboardなどを説明した本

ARC や Storyboard を紹介した良い本を教えてほしい、と会社のマニアな人に質問されたので

記事を読む

LogLocations 1.3.2 をリリースしました

LogLocations 1.3.2をリリースしました。審査後、近日中に公開されます。下記のレビュー

記事を読む

Message

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

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

[Xcode] Interface Builder でControl+ドラッグでOutletが作成できない

たまにInterface Builder でUI作っているとはまるの

Ember Mug用のふたを買ってみた

Ember Mug Lid 2022年あけましておめでとうござ

Google Search Console の利用を開始してみた

YouTube DATA API (iOS Quickstart  

Xcode 13.1 アップデート

Apple、統合開発環境「Xcode 13.1」をリリース:Code

watchOS8 アップデート内容

この前購入した Apple Watch SE は watchOS 7

→もっと見る

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