SlideShare una empresa de Scribd logo
1 de 35
Descargar para leer sin conexión
Web∩アプリ
Mozilla Japan テクニカルマーケティング
清水智公 (nshimizu@mozilla-japan.org)
Firefox Developers Conference 2014 in Kyoto 2014/04/19
about:me
2
清水智公(しみずのりただ)
• Mozilla Japan 

テクニカルマーケティング
• 慶應義塾大学

政策・メディア研究科非常勤
• @chikoski
• https://slideshare.net/chikoski/
3
jQueryつかえるんですか?
4
スタブコードの生成
5
スタブコードの生成:Yeomanの場合
% npm install -g yo	
% npm install -g generator-firefoxos	
% mkdir myApp	
% cd myApp	
% yo firefoxos
6
スタブコードの生成:volojsの場合
% npm install -g volo	
% volo create myApp	
mozilla/motor-app-stab
7
http://volojs.org/
UIフレームワーク
8
jQueryMobile
9
http://buildingfirefoxos.com/
10
BuildingBlocks
MVC/MVVMフレムワーク
11
Model-View-ViewModel
12
var DocumentRow = Backbone.View.extend({	
tagName: "li",	
className: "document-row",	
events: {	
"click .icon": "open",	
"click .button.edit": "openEditDialog",	
"click .button.delete": "destroy"	
},	
initialize: function() {	
this.listenTo(this.model, "change", this.render);	
},	
render: function() {	
...	
}	
});
13
Ember.js
App.ApplicationController = Ember.Controller.extend({	
// the initial value of the `search` property	
search: '',	
!
actions: {	
query: function() {	
// the current value of the text field	
var query = this.get('search');	
this.transitionToRoute('search', 	
{ query: query });	
}	
}	
});
14
データの永続化
15
localForage
var users = [ 	
{id: 1, fullName: 'Matt'}, 	
{id: 2, fullName: 'Bob'} 	
];	
localForage.setItem('users', users,
function(result) {	
console.log(result);	
});
16
https://github.com/mozilla/localForage
IndexedDB
// IndexedDB.	
var db;	
var dbName = "dataspace";	
	
var users = [ {id: 1,
fullName: 'Matt'}, {id: 2,
fullName: 'Bob'} ];	
	
var request =
indexedDB.open(dbName, 2);	
	
request.onerror =
function(event) {	
// Handle errors.	
};	
request.onupgradeneeded =
function(event) {	
db =
event.target.result;	
	
var objectStore =
db.createObjectStore("users
", { keyPath: "id" });	
	
objectStore.createIndex("fu
llName", "fullName",
{ unique: false });	
	
objectStore.transaction.onc
omplete = function(event) {	
var userObjectStore
= db.transaction("users",
"readwrite").objectStore("u
sers");	
}	
};	
	
// Once the database is
created, let's add our user
to it...	
	
var transaction =
db.transaction(["users"],
"readwrite");	
	
// Do something when all
the data is added to the
database.	
transaction.oncomplete =
function(event) {	
console.log("All
done!");	
};	
	
transaction.onerror =
function(event) {	
// Don't forget to
handle errors!	
};	
	
var objectStore =
transaction.objectStore("us
ers");	
	
for (var i in users) {	
var request =
objectStore.add(users[i]);	
request.onsuccess =
function(event) {	
// Contains our
user info.	
console.log(event.target.re
sult);	
};	
}
17
localForage:ドライバの設定
localforage.setDriver('localStorageWrapper');	
!
localforage.setDriver('localStorageWrapper').	
then(function() {	
alert(localforage.driver);	
});
18
カスタムコンポーネント
19
Brick:UIコンポーネント集
<x-calendar></x-calendar>
20
X-Tag:カスタムコンポーネントの定義
xtag.register('x-status-hud', {	
lifecycle: {	
created: function(){	
}	
},	
methods: {	
show: function (){	
this.visible = true;	
},	
hide: function (){	
this.visible = false;	
}	
},	
}); // End tag declaration
21
jsファイルの依存性の解決
22
RequireJS
define(["jquery", "backbone"], 	
function($, Backbone){	
var model = Backbone.Model.exntend({	
initialize: function(){	
}	
});	
return model;	
});
23
アプリ開発者の視点
24
Androidのアレって
どうつくるんだろう?
25
Foxroid
• http://tasdg.co.jp/news/
26
FoxroidTips
• http://tasdg.co.jp/fxos/tips/
27
パフォーマンスチューニング
28
開発ツール付属のプロファイラ
29
メモリ使用量、FPS、ロード、リフロー
30
FirefoxPowertool
• https://github.com/JonHylands/fxos-powertool
31
まとめ
32
33
34
35
https://developer.mozilla.org/
MDN

Más contenido relacionado

La actualidad más candente

20140531 めとべや東京4 ユニバーサル アプリ入門
20140531 めとべや東京4 ユニバーサル アプリ入門20140531 めとべや東京4 ユニバーサル アプリ入門
20140531 めとべや東京4 ユニバーサル アプリ入門
一希 大田
 

La actualidad más candente (14)

UWP アプリを JavaScript で作る 3つの方法
UWP アプリを JavaScript で作る 3つの方法UWP アプリを JavaScript で作る 3つの方法
UWP アプリを JavaScript で作る 3つの方法
 
Movable Type CPI Seminar 2010/11/15
Movable Type CPI Seminar 2010/11/15Movable Type CPI Seminar 2010/11/15
Movable Type CPI Seminar 2010/11/15
 
Visual Studio 2015 リリース記念 勉強会 universal windows platform app
Visual Studio 2015 リリース記念 勉強会 universal windows platform appVisual Studio 2015 リリース記念 勉強会 universal windows platform app
Visual Studio 2015 リリース記念 勉強会 universal windows platform app
 
20150530 めとべや東京8 universal windows platform appの画面開発
20150530 めとべや東京8 universal windows platform appの画面開発20150530 めとべや東京8 universal windows platform appの画面開発
20150530 めとべや東京8 universal windows platform appの画面開発
 
Firefox/Geckoの開発環境 —20年続いているOSSプロジェクトの現在—
Firefox/Geckoの開発環境 —20年続いているOSSプロジェクトの現在—Firefox/Geckoの開発環境 —20年続いているOSSプロジェクトの現在—
Firefox/Geckoの開発環境 —20年続いているOSSプロジェクトの現在—
 
Blend for visual studio 2013の新機能
Blend for visual studio 2013の新機能Blend for visual studio 2013の新機能
Blend for visual studio 2013の新機能
 
20140531 めとべや東京4 ユニバーサル アプリ入門
20140531 めとべや東京4 ユニバーサル アプリ入門20140531 めとべや東京4 ユニバーサル アプリ入門
20140531 めとべや東京4 ユニバーサル アプリ入門
 
無償のVisual studioで作るクライアント アプリ
無償のVisual studioで作るクライアント アプリ無償のVisual studioで作るクライアント アプリ
無償のVisual studioで作るクライアント アプリ
 
Uwpアプリケーション開発入門
Uwpアプリケーション開発入門Uwpアプリケーション開発入門
Uwpアプリケーション開発入門
 
わんくま名古屋 #40 (20161217) Xamarinで自動化テストしよう
わんくま名古屋 #40 (20161217) Xamarinで自動化テストしようわんくま名古屋 #40 (20161217) Xamarinで自動化テストしよう
わんくま名古屋 #40 (20161217) Xamarinで自動化テストしよう
 
その後のBash on windows
その後のBash on windowsその後のBash on windows
その後のBash on windows
 
Xamarin の特徴と開発手法概要
Xamarin の特徴と開発手法概要Xamarin の特徴と開発手法概要
Xamarin の特徴と開発手法概要
 
わんくま名古屋#36 (20150725) Windows 10 ユニバーサル Windows アプリ開発入門
わんくま名古屋#36 (20150725) Windows 10 ユニバーサル Windows アプリ開発入門わんくま名古屋#36 (20150725) Windows 10 ユニバーサル Windows アプリ開発入門
わんくま名古屋#36 (20150725) Windows 10 ユニバーサル Windows アプリ開発入門
 
JXUGC 13 東京 はじめに
JXUGC 13 東京 はじめにJXUGC 13 東京 はじめに
JXUGC 13 東京 はじめに
 

Destacado

できる!スマホアプリ:Webからはじまるアプリ
できる!スマホアプリ:Webからはじまるアプリできる!スマホアプリ:Webからはじまるアプリ
できる!スマホアプリ:Webからはじまるアプリ
Masami Yabushita
 

Destacado (9)

FxOSコードリーディングミートアップ#16 Contacts API読んでみた
FxOSコードリーディングミートアップ#16 Contacts API読んでみたFxOSコードリーディングミートアップ#16 Contacts API読んでみた
FxOSコードリーディングミートアップ#16 Contacts API読んでみた
 
FirefoxOS を AndroidStick で動かしてみた(updated)
FirefoxOS を AndroidStick で動かしてみた(updated)FirefoxOS を AndroidStick で動かしてみた(updated)
FirefoxOS を AndroidStick で動かしてみた(updated)
 
FxOSコードリーディングミートアップ#16 Vibration APIも読んでみた
FxOSコードリーディングミートアップ#16 Vibration APIも読んでみたFxOSコードリーディングミートアップ#16 Vibration APIも読んでみた
FxOSコードリーディングミートアップ#16 Vibration APIも読んでみた
 
Emoji
EmojiEmoji
Emoji
 
Firefox OSアーキテクチャクイックツアー - FxOSコードリーディングミートアップ#21向け追記版
Firefox OSアーキテクチャクイックツアー - FxOSコードリーディングミートアップ#21向け追記版Firefox OSアーキテクチャクイックツアー - FxOSコードリーディングミートアップ#21向け追記版
Firefox OSアーキテクチャクイックツアー - FxOSコードリーディングミートアップ#21向け追記版
 
できる!スマホアプリ:Webからはじまるアプリ
できる!スマホアプリ:Webからはじまるアプリできる!スマホアプリ:Webからはじまるアプリ
できる!スマホアプリ:Webからはじまるアプリ
 
Creating the Future with Firefox OS
Creating the Future with Firefox OSCreating the Future with Firefox OS
Creating the Future with Firefox OS
 
PhoneGapでハイブリッド開発 for Firefox OS
PhoneGapでハイブリッド開発 for Firefox OSPhoneGapでハイブリッド開発 for Firefox OS
PhoneGapでハイブリッド開発 for Firefox OS
 
中国Firefox OS勉強会 3rd 組み込み屋さんから見たFirefox OS
中国Firefox OS勉強会 3rd 組み込み屋さんから見たFirefox OS中国Firefox OS勉強会 3rd 組み込み屋さんから見たFirefox OS
中国Firefox OS勉強会 3rd 組み込み屋さんから見たFirefox OS
 

Similar a Web∩アプリ

20140629_lod_x_firefox_os_x_html5
20140629_lod_x_firefox_os_x_html520140629_lod_x_firefox_os_x_html5
20140629_lod_x_firefox_os_x_html5
Noritada Shimizu
 
Webアプリ開発のトレンドとUIライブラリ開発事情(仙台Geek★Night #1)
Webアプリ開発のトレンドとUIライブラリ開発事情(仙台Geek★Night #1)Webアプリ開発のトレンドとUIライブラリ開発事情(仙台Geek★Night #1)
Webアプリ開発のトレンドとUIライブラリ開発事情(仙台Geek★Night #1)
masakazusegawa
 
Firefox OS 勉強会 名古屋2nd 「便利な便利な開発ツール」
Firefox OS 勉強会 名古屋2nd 「便利な便利な開発ツール」Firefox OS 勉強会 名古屋2nd 「便利な便利な開発ツール」
Firefox OS 勉強会 名古屋2nd 「便利な便利な開発ツール」
Noritada Shimizu
 
ABC2012Spring 20120324
ABC2012Spring 20120324ABC2012Spring 20120324
ABC2012Spring 20120324
Tak Inamori
 
Firefox mobile for android internals
Firefox mobile for android internalsFirefox mobile for android internals
Firefox mobile for android internals
Makoto Kato
 
20120316 designerworkshoppublished
20120316 designerworkshoppublished20120316 designerworkshoppublished
20120316 designerworkshoppublished
Yoichiro Sakurai
 
Gaiaのソースコードに見るちょっと未来のweb app開発
Gaiaのソースコードに見るちょっと未来のweb app開発Gaiaのソースコードに見るちょっと未来のweb app開発
Gaiaのソースコードに見るちょっと未来のweb app開発
Masakazu Muraoka
 
FxOSはウェアラブルデバイスの夢を見るか?
FxOSはウェアラブルデバイスの夢を見るか?FxOSはウェアラブルデバイスの夢を見るか?
FxOSはウェアラブルデバイスの夢を見るか?
Masakazu Muraoka
 
Swaggerのさわりだけ
SwaggerのさわりだけSwaggerのさわりだけ
Swaggerのさわりだけ
Masakazu Muraoka
 

Similar a Web∩アプリ (20)

Mozapps installがなくなったことへの不平不満
Mozapps installがなくなったことへの不平不満Mozapps installがなくなったことへの不平不満
Mozapps installがなくなったことへの不平不満
 
PhoneGapでWebアプリをスマホアプリ化
PhoneGapでWebアプリをスマホアプリ化PhoneGapでWebアプリをスマホアプリ化
PhoneGapでWebアプリをスマホアプリ化
 
20140629_lod_x_firefox_os_x_html5
20140629_lod_x_firefox_os_x_html520140629_lod_x_firefox_os_x_html5
20140629_lod_x_firefox_os_x_html5
 
Html5で作るiPhoneアプリケーション2010
Html5で作るiPhoneアプリケーション2010Html5で作るiPhoneアプリケーション2010
Html5で作るiPhoneアプリケーション2010
 
2014年を振り返る 今年の技術トレンドとDockerについて
2014年を振り返る 今年の技術トレンドとDockerについて2014年を振り返る 今年の技術トレンドとDockerについて
2014年を振り返る 今年の技術トレンドとDockerについて
 
Webアプリ開発のトレンドとUIライブラリ開発事情(仙台Geek★Night #1)
Webアプリ開発のトレンドとUIライブラリ開発事情(仙台Geek★Night #1)Webアプリ開発のトレンドとUIライブラリ開発事情(仙台Geek★Night #1)
Webアプリ開発のトレンドとUIライブラリ開発事情(仙台Geek★Night #1)
 
Firefox OS 勉強会 名古屋2nd 「便利な便利な開発ツール」
Firefox OS 勉強会 名古屋2nd 「便利な便利な開発ツール」Firefox OS 勉強会 名古屋2nd 「便利な便利な開発ツール」
Firefox OS 勉強会 名古屋2nd 「便利な便利な開発ツール」
 
ABC2012Spring 20120324
ABC2012Spring 20120324ABC2012Spring 20120324
ABC2012Spring 20120324
 
Web屋という仕事のこれから Web動向からWeb屋に必要な技術を考えてみる
Web屋という仕事のこれから Web動向からWeb屋に必要な技術を考えてみるWeb屋という仕事のこれから Web動向からWeb屋に必要な技術を考えてみる
Web屋という仕事のこれから Web動向からWeb屋に必要な技術を考えてみる
 
Firefox mobile for android internals
Firefox mobile for android internalsFirefox mobile for android internals
Firefox mobile for android internals
 
mBaaS/C4SA howto
mBaaS/C4SA howtomBaaS/C4SA howto
mBaaS/C4SA howto
 
20120316 designerworkshoppublished
20120316 designerworkshoppublished20120316 designerworkshoppublished
20120316 designerworkshoppublished
 
Silverlight+COMにチャレンジ
Silverlight+COMにチャレンジSilverlight+COMにチャレンジ
Silverlight+COMにチャレンジ
 
ネットワーク分散型フレームワークConView
ネットワーク分散型フレームワークConViewネットワーク分散型フレームワークConView
ネットワーク分散型フレームワークConView
 
Gaiaのソースコードに見るちょっと未来のweb app開発
Gaiaのソースコードに見るちょっと未来のweb app開発Gaiaのソースコードに見るちょっと未来のweb app開発
Gaiaのソースコードに見るちょっと未来のweb app開発
 
FxOSはウェアラブルデバイスの夢を見るか?
FxOSはウェアラブルデバイスの夢を見るか?FxOSはウェアラブルデバイスの夢を見るか?
FxOSはウェアラブルデバイスの夢を見るか?
 
NET MAUI for .NET 7 for iOS, Android app development
 NET MAUI for .NET 7 for iOS, Android app development  NET MAUI for .NET 7 for iOS, Android app development
NET MAUI for .NET 7 for iOS, Android app development
 
PhoneGapなんか要らない? FirefoxOS
PhoneGapなんか要らない? FirefoxOSPhoneGapなんか要らない? FirefoxOS
PhoneGapなんか要らない? FirefoxOS
 
Galapagosization environment
Galapagosization environmentGalapagosization environment
Galapagosization environment
 
Swaggerのさわりだけ
SwaggerのさわりだけSwaggerのさわりだけ
Swaggerのさわりだけ
 

Más de Noritada Shimizu

Más de Noritada Shimizu (20)

20160803 devrel
20160803 devrel20160803 devrel
20160803 devrel
 
20160713 webvr
20160713 webvr20160713 webvr
20160713 webvr
 
20160601 devtools
20160601 devtools20160601 devtools
20160601 devtools
 
20150512 webgl-off-the-main-thread
20150512 webgl-off-the-main-thread20150512 webgl-off-the-main-thread
20150512 webgl-off-the-main-thread
 
20160428 html5jwebplat
20160428 html5jwebplat20160428 html5jwebplat
20160428 html5jwebplat
 
asm.js x emscripten: The foundation of the next level Web games
asm.js x emscripten: The foundation of the next level Web gamesasm.js x emscripten: The foundation of the next level Web games
asm.js x emscripten: The foundation of the next level Web games
 
Mozilla とブラウザゲーム
Mozilla とブラウザゲームMozilla とブラウザゲーム
Mozilla とブラウザゲーム
 
2016 gunma.web games-and-asm.js
2016 gunma.web games-and-asm.js2016 gunma.web games-and-asm.js
2016 gunma.web games-and-asm.js
 
20151224-games
20151224-games20151224-games
20151224-games
 
20151128 firefoxos-handson
20151128 firefoxos-handson20151128 firefoxos-handson
20151128 firefoxos-handson
 
20151117 devtools
20151117 devtools20151117 devtools
20151117 devtools
 
Inspection & Tweak: Firefox を使ったフロント開発
Inspection & Tweak: Firefox を使ったフロント開発Inspection & Tweak: Firefox を使ったフロント開発
Inspection & Tweak: Firefox を使ったフロント開発
 
20150822 osc-shimane
20150822 osc-shimane20150822 osc-shimane
20150822 osc-shimane
 
20150829 firefox-os-handson
20150829 firefox-os-handson20150829 firefox-os-handson
20150829 firefox-os-handson
 
20150829 firefox-os
20150829 firefox-os20150829 firefox-os
20150829 firefox-os
 
20150727 Development tools for Firefox OS apps
20150727 Development tools for Firefox OS apps20150727 Development tools for Firefox OS apps
20150727 Development tools for Firefox OS apps
 
Firefox OS でアプリを作るときに気をつけたい N 個のこと
Firefox OS  でアプリを作るときに気をつけたい N 個のことFirefox OS  でアプリを作るときに気をつけたい N 個のこと
Firefox OS でアプリを作るときに気をつけたい N 個のこと
 
Firefox OSアプリ開発ハンズオン(Hello World編)
Firefox OSアプリ開発ハンズオン(Hello World編)Firefox OSアプリ開発ハンズオン(Hello World編)
Firefox OSアプリ開発ハンズオン(Hello World編)
 
WebVR(html5j TV部、WebVRとかVRのUIとか勉強会)
WebVR(html5j TV部、WebVRとかVRのUIとか勉強会)WebVR(html5j TV部、WebVRとかVRのUIとか勉強会)
WebVR(html5j TV部、WebVRとかVRのUIとか勉強会)
 
Application submission, management and manetization in Firefox Marketplace
Application submission, management and manetization in Firefox MarketplaceApplication submission, management and manetization in Firefox Marketplace
Application submission, management and manetization in Firefox Marketplace
 

Último

Último (12)

新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 

Web∩アプリ