SlideShare a Scribd company logo
Pebble + JavaScriptでつくる 
スマートウォッチアプリ 
JSBoard勉強会 #1 / @kadoppe
@kadoppe 
Software Engineer
Question
Q1. 
Pebble知ってる人?
Q2. 
Pebble持ってる人?
Q3. 
Pebbleアプリ作ってる人?
今日の目的 
JavaScriptプログラマに 
Pebbleのアプリ開発に興味を 
持ってもらう
おことわり 
Pebble ≠ JSBoard
Pebbleって何? 
• デジタル時計 
Pebble Pebble Steel 
Pebble 
(写真) 
Pebble 
Steal 
(写真) 
$99 $199
Pebbleで何ができるの?
1. スマフォとつながる 
Pebble 
公式アプリ 
全ての通知 
音楽プレイヤ操作等 
Pebble
2. アプリでカスタマイズする 
Pebble 
公式アプリ 
インストール 
アプリストア 
(最大8つまで) 
Pebble
Pebbleアプリが扱える情報
1. 時刻 
時計なので当たり前
2. 各種センサー情報 
Pebble 
Pebble 
公式アプリ 
アプリ 
加速度センサ 
電子コンパスGPS
2. Webから取得した情報 
Pebble 
Pebble 
公式アプリ 
アプリ各種 
Web API 
Bluetooth HTTP 
画像引用元: https://getpebble.com/checkout
色々組み合わせることで 
可能性は無限大
Pebbleアプリの種類
1. Watchface 
• 時計モードのデザインテーマ 
• 時刻だけでなく、様々な情報が表示可能
2. Watchapp 
• 時計モード→メニューから起動できるアプリ 
• Pebble本体右側の3つのボタン操作を 
アプリから検出できる
Pebbleアプリのつくりかた
SDK 
• Pebbleが提供するSDKを使ってアプリを開発 
• 大きく2種類の開発方法がある
1. C & JavaScriptで開発 
Pebble公式アプリ 
JavaScript 
Engine 
JavaScript 
C言語 
・UI表示 
・センサー値取得 
・スマフォとの通信 
・Web API呼出 
・GPS値取得 
・Pebbleとの通信 
画像引用元: https://getpebble.com/checkout 
Pebble
方法1の問題点 
• C言語の知識が必要 
• 通信処理をC & JavaScriptで実装するのが手間
2. JavaScriptのみで開発 
Pebble公式アプリ 
JavaScript 
Engine 
JavaScript (Pebble.js) 
隠蔽 
Pebble
方法2の問題点 
• 電力消費量が高い & UI更新の遅延が発生 
• スマフォ側のJavaScript EngineでUI更新処理 
をおこなうため(未調査) 
• β版のため動作が不安定 
• 一部センサー情報を取得するためのAPIがない
アプリをつくってみる 
(ライブコーディング)
必要なもの 
• Webブラウザ 
• Pebble公式アプリインストール済みスマフォ 
• Pebble本体
あれ?開発環境は?
CloudPebble 
プロジェクト作成→コーディング→コンパイル 
Pebbleへのアプリ転送→ログ確認
Webブラウザだけで開発可能
つくるもの 
• Watchface 
• 時刻を表示 
• 現在地のお天気を表示 
• GPS 
• OpenWeatherMap API
ライブコーディングスタート 
(グダったらすみません) 
https://github.com/kadoppe/pebble-gps-weather-watch
ライブコーディングおしまい
PebbleのUIコンポーネント
Window 
• もっとも基本的なUIコンポーネント 
• 座標・サイズを指定して子要素を配置できる 
• テキスト 
• 画像 
• 矩形・円
Card 
• 構造化された情報を表示するためのWindow 
• タイトル 
• サブタイトル 
• 本文 
• バナー画像
Menu 
• リスト情報を表示するためのWindow 
• ボタンによるスクロールも可能
その他UIコンポーネント 
• 画像データ(2値画像のみ)の表示 
• Windowに配置した要素のアニメーション 
• 矩形/円
自由に組み合わせて素敵な 
アプリをつくってみてください
Pebbleの問題点
日本語が文字化けする 
• システムに日本語フォントが組み込まれて 
いないことが原因
対策1. カスタムファームウェア 
• Pebble 日本語 (ひらがな、カタカナ) 
ファームウェアをPebbleにインストールする 
http://www.texpress.co.jp/pebble_hiragana 
• 漢字も表示される(1200文字種) 
• 自己責任で
対策2. サードパーティ通知アプリ 
• スマフォの通知(日本語)をPebbleに表示するためのアプ 
リが存在する 
• iOS: PebbleCC(要脱獄) 
• Android: YaNC PRO Pebble Notifications 
https://play.google.com/store/apps/details? 
id=com.runnerway.pebblenotification 
• 日本語が表示されるのはサードパーティアプリ内のみ
そんなPebbleですが 
まずは日本語に依存しない 
アプリから開発してみませんか?
おしまい 
ご清聴ありがとうございました
画像出展 
http://en.wikipedia.org/wiki/ 
IPhone_5#mediaviewer/File:IPhone_5.png 
https://getpebble.com/pebble
Ad

Recommended

Pebbleハッカソン
Pebbleハッカソン
Bob_Mk2
 
Kubernetes で実践するクラウドネイティブ DevOps "監視とオブザーバビリティ"編 / Cloud Native DevOps with K...
Kubernetes で実践するクラウドネイティブ DevOps "監視とオブザーバビリティ"編 / Cloud Native DevOps with K...
Preferred Networks
 
Eureka go 2015_12_12
Eureka go 2015_12_12
matsuo kenji
 
OSS Product feat. Gradle
OSS Product feat. Gradle
Yasuharu Nakano
 
(IDEユーザのための) ClojureのEmacs開発環境について
(IDEユーザのための) ClojureのEmacs開発環境について
Kazuhiro Hara
 
Jenkins実践入門 第二版 What's New
Jenkins実践入門 第二版 What's New
Masanori Satoh
 
WatchRoach
WatchRoach
Yoshiyuki Taniguchi
 
Gcpug begginers #1LT startup scriptとshutdown script
Gcpug begginers #1LT startup scriptとshutdown script
tsukasa tamaru
 
Git & GitHub & kintone でウルトラハッピー!
Git & GitHub & kintone でウルトラハッピー!
ymmt
 
Raspberry Pi しかないときのIoTハンズオンチュートリアル
Raspberry Pi しかないときのIoTハンズオンチュートリアル
Kohei Nishikawa
 
システム開発を前進させるためのGradle導入法
システム開発を前進させるためのGradle導入法
Takuma Watabiki
 
shinken monitoringについて真剣に調べてみた結果
shinken monitoringについて真剣に調べてみた結果
Tsuyoshi Torii
 
GitとCIとかチャットとかをオンプレで運用する話
GitとCIとかチャットとかをオンプレで運用する話
mdome
 
スッとGoを取り入れる
スッとGoを取り入れる
Yusuke Wada
 
GitLab Meetup Tokyo #1 LT:「わりと大きい会社でGitLabをホスティングしてみた話」
GitLab Meetup Tokyo #1 LT:「わりと大きい会社でGitLabをホスティングしてみた話」
Taisuke Inoue
 
一人でもはじめるGitでバージョン管理
一人でもはじめるGitでバージョン管理
Takafumi Yoshida
 
Javaユーザに贈るJenkins 25のTips
Javaユーザに贈るJenkins 25のTips
Masanori Satoh
 
Gws 20141024 gradle_intro
Gws 20141024 gradle_intro
Nobuhiro Sue
 
真Drone入門
真Drone入門
Yutaka Matsubara
 
Gradle入門
Gradle入門
orekyuu
 
Jenkins と groovy
Jenkins と groovy
Kohsuke Kawaguchi
 
Nifty cloud automationでクラウド構築・運用の自動化
Nifty cloud automationでクラウド構築・運用の自動化
NIFTY Cloud
 
Spring in-summer-gradle-hands on-withanswers
Spring in-summer-gradle-hands on-withanswers
Takuma Watabiki
 
やさしいGitの内部構造 - yapcasia2013
やさしいGitの内部構造 - yapcasia2013
DQNEO
 
Jenkinsの導入 Vol.01
Jenkinsの導入 Vol.01
regret raym
 
ひとりアドベントカレンダーのご紹介
ひとりアドベントカレンダーのご紹介
Kazuhiro Hara
 
Skinny framework勉強会
Skinny framework勉強会
Yusuke Arakaki
 
Rancher2.0でkubernetes
Rancher2.0でkubernetes
cyberblack28 Ichikawa
 
Firefox OSでSVGをつかってみた
Firefox OSでSVGをつかってみた
Kohei Kadowaki
 
Capybaraで雑にWebスクレイピング
Capybaraで雑にWebスクレイピング
Koji Nakamura
 

More Related Content

What's hot (20)

Git & GitHub & kintone でウルトラハッピー!
Git & GitHub & kintone でウルトラハッピー!
ymmt
 
Raspberry Pi しかないときのIoTハンズオンチュートリアル
Raspberry Pi しかないときのIoTハンズオンチュートリアル
Kohei Nishikawa
 
システム開発を前進させるためのGradle導入法
システム開発を前進させるためのGradle導入法
Takuma Watabiki
 
shinken monitoringについて真剣に調べてみた結果
shinken monitoringについて真剣に調べてみた結果
Tsuyoshi Torii
 
GitとCIとかチャットとかをオンプレで運用する話
GitとCIとかチャットとかをオンプレで運用する話
mdome
 
スッとGoを取り入れる
スッとGoを取り入れる
Yusuke Wada
 
GitLab Meetup Tokyo #1 LT:「わりと大きい会社でGitLabをホスティングしてみた話」
GitLab Meetup Tokyo #1 LT:「わりと大きい会社でGitLabをホスティングしてみた話」
Taisuke Inoue
 
一人でもはじめるGitでバージョン管理
一人でもはじめるGitでバージョン管理
Takafumi Yoshida
 
Javaユーザに贈るJenkins 25のTips
Javaユーザに贈るJenkins 25のTips
Masanori Satoh
 
Gws 20141024 gradle_intro
Gws 20141024 gradle_intro
Nobuhiro Sue
 
真Drone入門
真Drone入門
Yutaka Matsubara
 
Gradle入門
Gradle入門
orekyuu
 
Jenkins と groovy
Jenkins と groovy
Kohsuke Kawaguchi
 
Nifty cloud automationでクラウド構築・運用の自動化
Nifty cloud automationでクラウド構築・運用の自動化
NIFTY Cloud
 
Spring in-summer-gradle-hands on-withanswers
Spring in-summer-gradle-hands on-withanswers
Takuma Watabiki
 
やさしいGitの内部構造 - yapcasia2013
やさしいGitの内部構造 - yapcasia2013
DQNEO
 
Jenkinsの導入 Vol.01
Jenkinsの導入 Vol.01
regret raym
 
ひとりアドベントカレンダーのご紹介
ひとりアドベントカレンダーのご紹介
Kazuhiro Hara
 
Skinny framework勉強会
Skinny framework勉強会
Yusuke Arakaki
 
Rancher2.0でkubernetes
Rancher2.0でkubernetes
cyberblack28 Ichikawa
 
Git & GitHub & kintone でウルトラハッピー!
Git & GitHub & kintone でウルトラハッピー!
ymmt
 
Raspberry Pi しかないときのIoTハンズオンチュートリアル
Raspberry Pi しかないときのIoTハンズオンチュートリアル
Kohei Nishikawa
 
システム開発を前進させるためのGradle導入法
システム開発を前進させるためのGradle導入法
Takuma Watabiki
 
shinken monitoringについて真剣に調べてみた結果
shinken monitoringについて真剣に調べてみた結果
Tsuyoshi Torii
 
GitとCIとかチャットとかをオンプレで運用する話
GitとCIとかチャットとかをオンプレで運用する話
mdome
 
スッとGoを取り入れる
スッとGoを取り入れる
Yusuke Wada
 
GitLab Meetup Tokyo #1 LT:「わりと大きい会社でGitLabをホスティングしてみた話」
GitLab Meetup Tokyo #1 LT:「わりと大きい会社でGitLabをホスティングしてみた話」
Taisuke Inoue
 
一人でもはじめるGitでバージョン管理
一人でもはじめるGitでバージョン管理
Takafumi Yoshida
 
Javaユーザに贈るJenkins 25のTips
Javaユーザに贈るJenkins 25のTips
Masanori Satoh
 
Gws 20141024 gradle_intro
Gws 20141024 gradle_intro
Nobuhiro Sue
 
Gradle入門
Gradle入門
orekyuu
 
Nifty cloud automationでクラウド構築・運用の自動化
Nifty cloud automationでクラウド構築・運用の自動化
NIFTY Cloud
 
Spring in-summer-gradle-hands on-withanswers
Spring in-summer-gradle-hands on-withanswers
Takuma Watabiki
 
やさしいGitの内部構造 - yapcasia2013
やさしいGitの内部構造 - yapcasia2013
DQNEO
 
Jenkinsの導入 Vol.01
Jenkinsの導入 Vol.01
regret raym
 
ひとりアドベントカレンダーのご紹介
ひとりアドベントカレンダーのご紹介
Kazuhiro Hara
 
Skinny framework勉強会
Skinny framework勉強会
Yusuke Arakaki
 

Viewers also liked (12)

Firefox OSでSVGをつかってみた
Firefox OSでSVGをつかってみた
Kohei Kadowaki
 
Capybaraで雑にWebスクレイピング
Capybaraで雑にWebスクレイピング
Koji Nakamura
 
Webでもできるデータビジュアライゼーション
Webでもできるデータビジュアライゼーション
Kohei Kadowaki
 
WebSocketことはじめ
WebSocketことはじめ
Kohei Kadowaki
 
D3.js と SVG によるデータビジュアライゼーション
D3.js と SVG によるデータビジュアライゼーション
Kohei Kadowaki
 
Inline SVG - トラブルとその対策
Inline SVG - トラブルとその対策
Kohei Kadowaki
 
WebSocket + Node.jsでつくるチャットアプリ
WebSocket + Node.jsでつくるチャットアプリ
Kohei Kadowaki
 
ぼくたちのじゅたくかいはつ
ぼくたちのじゅたくかいはつ
Atsushi Harada
 
いまさら聞けない!?Backbone.js 超入門
いまさら聞けない!?Backbone.js 超入門
Kohei Kadowaki
 
○○したら受託開発が180°変わった(10分版)
○○したら受託開発が180°変わった(10分版)
Atsushi Harada
 
Go言語入門者が Webアプリケーション を作ってみた話 #devfest #gdgkyoto
Go言語入門者が Webアプリケーション を作ってみた話 #devfest #gdgkyoto
Shoot Morii
 
Firefox OSでSVGをつかってみた
Firefox OSでSVGをつかってみた
Kohei Kadowaki
 
Capybaraで雑にWebスクレイピング
Capybaraで雑にWebスクレイピング
Koji Nakamura
 
Webでもできるデータビジュアライゼーション
Webでもできるデータビジュアライゼーション
Kohei Kadowaki
 
WebSocketことはじめ
WebSocketことはじめ
Kohei Kadowaki
 
D3.js と SVG によるデータビジュアライゼーション
D3.js と SVG によるデータビジュアライゼーション
Kohei Kadowaki
 
Inline SVG - トラブルとその対策
Inline SVG - トラブルとその対策
Kohei Kadowaki
 
WebSocket + Node.jsでつくるチャットアプリ
WebSocket + Node.jsでつくるチャットアプリ
Kohei Kadowaki
 
ぼくたちのじゅたくかいはつ
ぼくたちのじゅたくかいはつ
Atsushi Harada
 
いまさら聞けない!?Backbone.js 超入門
いまさら聞けない!?Backbone.js 超入門
Kohei Kadowaki
 
○○したら受託開発が180°変わった(10分版)
○○したら受託開発が180°変わった(10分版)
Atsushi Harada
 
Go言語入門者が Webアプリケーション を作ってみた話 #devfest #gdgkyoto
Go言語入門者が Webアプリケーション を作ってみた話 #devfest #gdgkyoto
Shoot Morii
 
Ad

More from Kohei Kadowaki (9)

プログラマーのお仕事
プログラマーのお仕事
Kohei Kadowaki
 
5分でわかる?Backbone.js ことはじめ
5分でわかる?Backbone.js ことはじめ
Kohei Kadowaki
 
SVGでつくるインタラクティブWebアプリケーション
SVGでつくるインタラクティブWebアプリケーション
Kohei Kadowaki
 
UnityでつくるはじめてのPONG
UnityでつくるはじめてのPONG
Kohei Kadowaki
 
インラインSVGをつかって地図っぽいものをつくってみる
インラインSVGをつかって地図っぽいものをつくってみる
Kohei Kadowaki
 
ShareWisをFirefoxで動かすためのSVG的とりくみ
ShareWisをFirefoxで動かすためのSVG的とりくみ
Kohei Kadowaki
 
d3jsではじめるデータビジュアライゼーション入門
d3jsではじめるデータビジュアライゼーション入門
Kohei Kadowaki
 
ゲーム開発初心者の僕がUnity + WebSocketで何か作ってみた
ゲーム開発初心者の僕がUnity + WebSocketで何か作ってみた
Kohei Kadowaki
 
SocketStream入門
SocketStream入門
Kohei Kadowaki
 
プログラマーのお仕事
プログラマーのお仕事
Kohei Kadowaki
 
5分でわかる?Backbone.js ことはじめ
5分でわかる?Backbone.js ことはじめ
Kohei Kadowaki
 
SVGでつくるインタラクティブWebアプリケーション
SVGでつくるインタラクティブWebアプリケーション
Kohei Kadowaki
 
UnityでつくるはじめてのPONG
UnityでつくるはじめてのPONG
Kohei Kadowaki
 
インラインSVGをつかって地図っぽいものをつくってみる
インラインSVGをつかって地図っぽいものをつくってみる
Kohei Kadowaki
 
ShareWisをFirefoxで動かすためのSVG的とりくみ
ShareWisをFirefoxで動かすためのSVG的とりくみ
Kohei Kadowaki
 
d3jsではじめるデータビジュアライゼーション入門
d3jsではじめるデータビジュアライゼーション入門
Kohei Kadowaki
 
ゲーム開発初心者の僕がUnity + WebSocketで何か作ってみた
ゲーム開発初心者の僕がUnity + WebSocketで何か作ってみた
Kohei Kadowaki
 
Ad

Recently uploaded (7)

AI技術共有会2025-06-05_DeepResearchの理解と実践.pdf
AI技術共有会2025-06-05_DeepResearchの理解と実践.pdf
Takuma Oda
 
Protect Your IoT Data with UbiBot's Private Platform.pptx
Protect Your IoT Data with UbiBot's Private Platform.pptx
ユビボット 株式会社
 
勉強会_ターミナルコマンド入力迅速化_20250620. pptx. .
勉強会_ターミナルコマンド入力迅速化_20250620. pptx. .
iPride Co., Ltd.
 
PGConf.dev 2025 参加レポート (JPUG総会併設セミナー2025 発表資料)
PGConf.dev 2025 参加レポート (JPUG総会併設セミナー2025 発表資料)
NTT DATA Technology & Innovation
 
やってみた!OpenAI Function Calling 入門 .
やってみた!OpenAI Function Calling 入門 .
iPride Co., Ltd.
 
色について.pptx .
色について.pptx .
iPride Co., Ltd.
 
Vibe Codingを始めよう 〜Cursorを例に、ノーコードでのプログラミング体験〜
Vibe Codingを始めよう 〜Cursorを例に、ノーコードでのプログラミング体験〜
iPride Co., Ltd.
 
AI技術共有会2025-06-05_DeepResearchの理解と実践.pdf
AI技術共有会2025-06-05_DeepResearchの理解と実践.pdf
Takuma Oda
 
Protect Your IoT Data with UbiBot's Private Platform.pptx
Protect Your IoT Data with UbiBot's Private Platform.pptx
ユビボット 株式会社
 
勉強会_ターミナルコマンド入力迅速化_20250620. pptx. .
勉強会_ターミナルコマンド入力迅速化_20250620. pptx. .
iPride Co., Ltd.
 
PGConf.dev 2025 参加レポート (JPUG総会併設セミナー2025 発表資料)
PGConf.dev 2025 参加レポート (JPUG総会併設セミナー2025 発表資料)
NTT DATA Technology & Innovation
 
やってみた!OpenAI Function Calling 入門 .
やってみた!OpenAI Function Calling 入門 .
iPride Co., Ltd.
 
Vibe Codingを始めよう 〜Cursorを例に、ノーコードでのプログラミング体験〜
Vibe Codingを始めよう 〜Cursorを例に、ノーコードでのプログラミング体験〜
iPride Co., Ltd.
 

Pebble + JavaScriptでつくるスマートウォッチアプリ