Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Firefox OS勉強会 4th Untitled
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
masawada
October 16, 2013
Technology
1.5k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Firefox OS勉強会 4th Untitled
masawada
October 16, 2013
More Decks by masawada
See All by masawada
dotfiles 式年遷宮 令和最新版
masawada
1
1.1k
10年続くサービスのデータを1日未満のメンテナンスウィンドウで安全に移管する
masawada
5
2.7k
よりよいレビュー環境を求めて / A code review odyssey
masawada
0
3k
フロントエンドの秩序は保たれているか?
masawada
1
4.3k
Getting Started with ScratchX
masawada
0
800
GyaPC::Asia Tokyo 2015 LT
masawada
0
1.5k
Privileged Apps with Vue.js
masawada
0
220
Chikubeam
masawada
1
1.7k
Git講習 2014.04.15
masawada
1
380
Other Decks in Technology
See All in Technology
CLIライブラリ開発を支える技術
htnabe
0
150
積み重なった技術負債への挑戦 〜初手としての全社ゴト化〜
techtekt
PRO
0
1.6k
The Knowledge Spine: A Machine-Executable Ontology for Governed Marketing Activation
vananth22
0
120
サーバーレスをどこまで使う? WebRTC対戦ゲームで選んだVPSとの共存設計
kaidouji85
0
400
SREは、MCPとAutopilotをこう使え!
kazumax55
3
960
Antigravity SDK for the Java Developer
glaforge
0
190
認知負荷を吸収し、プロダクトをまたぐPR Preview基盤の設計事例
taiki45
2
130
AIに賢く動いてもらうためのコンテキスト〜Snowflake女子会 vol.8
snowwmn0824
0
170
バイブコーディング時代のWebアプリ開発入門~Cloud Runで学ぶセキュアなビルドとデプロイ
waiwai2111
1
150
高負荷プロダクション環境におけるAWS Lambdaのリアル 〜スケールとコストを左右する実行ライフサイクルの技術仕様〜
maimyyym
2
220
「ピッケル本」日本語版は4.0(第6版)が出版されるべき / pickaxe4-nagoyark05
kakutani
2
290
Kiro Meetup #8 Kiro アップデート (2026/3/21〜2026/9/24)
katzueno
1
160
Featured
See All Featured
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
68
57k
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
3
3.8k
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
390
Exploring anti-patterns in Rails
aemeredith
4
510
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.4k
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.6k
Ruling the World: When Life Gets Gamed
codingconduct
0
360
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
670
Design in an AI World
tapps
1
330
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6.1k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.2k
The untapped power of vector embeddings
frankvandijk
2
1.9k
Transcript
໊শະઃఆ 2013.10.16 Firefox OSษڧձ 4th @masawada
Έͳ͞Μ
͜ΜΜ
masawada
None
ࣗݾհ • ిؾ௨৴େֶ ใཧֶ෦ ใɾ௨৴ֶՊ 2 • ΤϦΞϫϯηάͱ͔ • Rubyͱ͔JavaScriptͱ͔
masawada.me
FxOS & Win8 ϋοΧιϯ
αΠίʔ αΠίʔ
ຊ
໊শະઃఆ 2013.10.16 Firefox OSษڧձ 4th @masawada
None
None
ؒʹ߹Θͳ͔ͬͨ
Twitter
ΈΜͳ
͍͖ͩ͢
Twitter
None
2013/10/16 17:43
ϋογϡλά
#FxOS
͝ҙݟɾ࣭
#FxOS
Twitter
TwitterΫϥΠΞϯτ Λ࡞Ζ͏
TwitterΫϥΠΞϯτ ࣍ੈͷHello, world
Hello, world TwitterΫϥΠΞϯτ ςΩετೖྗ × ˕ ςΩετग़ྗ ˕ ˕ ը૾දࣔ
˚ ◦ Ϧετදࣔ ˚ ◦ ωοτϫʔΩϯά × ˕
ి௨େੜࡏֶதʹ1 TwitterΫϥΠΞϯτΛ࡞Δ
None
None
TwitterΫϥΠΞϯτ Λ࡞Ζ͏
Twitter Libraries
None
None
Node.js͚ͬΆ͍
Cross Origin੍ݶ͕ ݪҼʁ
→࡞Ζ͏
Ͱ͖·ͨ͠
Firefox OS͚ Twitter APIϥΠϒϥϦ
Violet.js
۩ମతʹԿ͕ Firefox OS͚ʁ
// XHR var xhr = new XMLHttpRequest({mozSystem: true}); // manifest.webapp
"type": "privileged", "permissions": { “systemXHR”: {} }
violet.js • ΄ͱΜͲͷAPIΤϯυϙΠϯτʹରԠ → (ະςετ…) • Firefox OSΞϓϦͱͯ͠͏ʹ systemXHRͷݖݶΛཁٻ͢Δඞཁ͕͋Δ
͜͜·Ͱ͕ ࠓ7݄ͷͰ͖͝ͱ
FxOS & Win8 ϋοΧιϯ
8/10
FoxBird
σϞ
FoxBird • OAuth: PIN Only • Tweet (statuses/update) • Favorite
• Retweet • Streaming API (GET user)
ॏࢹͨ͜͠ͱ
Streaming APIରԠ
Streaming APIपΓΛ ղઆ
Streaming API ԿΛ͍ͬͯΔͷ͔
REST
None
Streaming API
None
ίωΫγϣϯΛ அ͠ͳ͍
src/streaming.js
var con = Violet.HTTPClient({ method: method, uri: uri }); con.onloading
= function(xhr){ ... };
src/http.js
var xhr = new XMLHttpRequest({mozSystem: true}); // தུ xhr.onreadystatechange =
function(){ if(xhr.readyState === 3){ this.onloading(xhr); }else if(xhr.readyState === 4){ if(xhr.status === 200){ this.onsuccess(xhr); }else{ this.onerror(xhr); } } }.bind(this);
SFBEZ4UBUFͷͷϦετҎԼͷΑ͏ʹͳΓ·͢ɻ ɾ ॳظԽ͞Ε͍ͯ·ͤΜ ɾ ಡΈࠐΈதͰ͢ ɾ ಡΈࠐΈྃ͠·ͨ͠ ɾ ํʹѻ͑·͢ ɾ
ͯྃ͢͠·ͨ͠
SFBEZ4UBUFͷͷϦετҎԼͷΑ͏ʹͳΓ·͢ɻ ɾ ॳظԽ͞Ε͍ͯ·ͤΜ ɾ ಡΈࠐΈதͰ͢ ɾ ಡΈࠐΈྃ͠·ͨ͠ ɾ ํʹѻ͑·͢ ɾ
ͯྃ͢͠·ͨ͠
readyState === 3ͷͱ͖ ߋ৽ΞϦ
var con = Violet.HTTPClient({ method: method, uri: uri }); con.onloading
= function(xhr){ var lines = xhr.responseText.split('\r\n'); if(!lines[lines.length-2]){ return false; } callback(JSON.parse(lines[lines.length-2])); };
Streaming APIରԠ
violet.jsΛͬͯΈΔ
ΫϥΠΞϯτΛ ࡞ͬͯΈΔ
ΫϥΠΞϯτΛ࡞Δ • πΠʔτػೳ • Streaming APIͰλΠϜϥΠϯಡΉ • UIBuilding BlocksΛ͏
σϞ
؆୯ʹ࡞ΕΔ
ߴ։ൃͰ͖Δ
[ߴ։ൃ][Google ݕࡧ]
ੋඇ ͬͯΈ͍ͯͩ͘͞
࠷ޙʹ
v0.2.0
v0.2.0ͷ৽ػೳ • POST statuses/filterʹରԠ • ͬͯstreamingdeprecated • userstreamʹͳΓ·ͨ͠ • v0.3.0Ͱফ͑·͢
• POST statuses/update_with_mediaʹରԠ
͏͙͢ϦϦʔε
͋Γ͕ͱ͏͍͟͝·ͨ͠