[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

関連記事

自作キーボード Mint60 完成

自作キーボード Mint60 が年末完成していたので、記録を残しておく。買った時の記事はこちら 自

記事を読む

no image

iOS7 から導入されるキッズカテゴリーにアプリを載せるための作業をしてみる

News and Announcements for Apple Developers でア

記事を読む

新アプリ「コードちゃん」を公開しました

速報:新 iPad 発表。Apple Pencil対応で3万7800円から - Engadget

記事を読む

no image

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

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

記事を読む

EverLearn 1.7.2 を公開しました

英単語学習用アプリ EverLearn 1.7.2 を公開しました (2015/10/22)TOEF

記事を読む

Amazon Echo Dot 購入

しばらくは招待制で買えなかった Amazon Echo Dot を2018年1月に購入した。その前に

記事を読む

no image

秋葉原の自炊の森に行ってきた

この前秋葉原の自炊の森に行って自分の本をスキャンしてきたのだけれども、それまでに紆余曲折があったので

記事を読む

[iOS9] AVSpeechSynthesizer の再生スピードがおかしい

iPhone 6 Plus を iOS9 にアップデートして自作アプリをXcode7 から転送したと

記事を読む

[iOS SDK] 消音モードでも音を再生する対応を入れました

昔、 iPhone/iPad はサイレントモードにしても音が鳴る という記事を書いたけれども

記事を読む

Xcodeの Console出力をクリアするキーバインド

いつも忘れるので、メモとして残しておく。Command(⌘)+ Kその他はこちら。 Menu Com

記事を読む

Message

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

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

ポモドーロテクニック用物理タイマーならTime Timer

会社ではなかなか自由に時間を使えないが、家で読書や作業をする

DELL 32インチディスプレイ U3223QE 購入

Dell U3223QE は解像度 3840x216

WWDC 2023 Vision Pro発表

2023/6/5 (日本時間 2023/06/06 2AM)のWWD

M1 MacBook Air を Venturaにアップデートする

M1 MacBook Air を macOS Montere

iOS16でaurioTouch の inBufferFramesが1になる

https://developer.apple.com/librar

→もっと見る

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