SlideShare uma empresa Scribd logo
1 de 33
Baixar para ler offline
2015年私が学んだ Chrome App
∼ 今日帰ってすぐに始められる Chrome App ∼
#nds45 @civic
今日話す内容
• 今年私がChrome Appで学んだこと
• Chrome Appをはじめよう
• デモChrome Appの紹介
今年私がChrome Appで学んだこと
Electron人気急上昇
• Atom, VSCodeなどElectron製アプリの人気
• HTML+JS+CSSで簡単にアプリが作れる
• ブラウザ依存性キニシナイ
• マルチプラットフォーム
ちょっと待って!
ブラウザ依存性なしだが?
• Electron製アプリはブラウザ内蔵
• 特定バージョンのChromiumが内蔵
• ブラウザのアップデートの影響受けない
• Chromiumバージョンは固定されてよいのか?
• Electron製アプリはブラウザ内蔵
• ブラウザって重い
• 各アプリがみなChromeみたいな重さ?
重くないの?
Electron App
Chromium
Node JS
Electron App
Chromium
Node JS
アプリA アプリB
そこでChrome Appを提案
構造
• Chrome内プロセスの1つとして動作
• タブと似たプロセス
• Chromeの上で動くのでChromeバージョンに従う
Chrome
Chrome App Chrome App Chrome App
Chrome Appの例
LINE
Chrome Dev Editor
そんなに流行ってない
でもポテンシャルはあると思う
• Chromeの拡張機能的なもの
• Chrome OS上のApp
• 独立したWindow
• オフライン対応
• Chrome APIを通じたネイティブ操作
• Cordova対応によるモバイルApp化
Electron製Appと比べた利点
• アプリ自体の配布が楽
• Chrome Web Storeからダウンロード
• 安全性
• manifestで宣言された権限下で動作
• Chrome Web Storeでのソフトウェア・アップデート
• Low level APIのマルチプラットフォーム性
• Chromeがやってくれる(という理想)
Electron製Appと比べた欠点
• ネイティブの自由度
• Chrome Platform APIでできないことは無理

× OSファイルシステムへの無制限なIO

× 特定プラットフォーム限定での作成
• Chromeバージョン依存
• 良くも悪くも
• Chrome Web Storeを介さない野良配布
• 制限される方向
すべてにおいてElectronよりも
良いということではない
小規模ならばChrome Appの方が便利?
Chrome Appをはじめよう
Hello Worldの作成
• Chrome Dev Editorのインストール
• これ自体がChrome App
• New Project
manifest.json
{
"manifest_version": 2,
"name": “Test",
"version": "1.0",
"app": {
"background": {
"scripts": ["background.js"]
}
}
}
エントリポイントとなるJS
background.js
chrome.app.runtime.onLaunched.addListener(

function(launchData) {
chrome.app.window.create('index.html', {
id: 'mainWindow',
bounds: {width: 800, height: 600}
});
}
);
HTMLを指定してWindow表示
App起動時
あとはHTML+JS+CSSの世界
テキストエディタで開発
まっさらな状態から開発
• IDEに頼らずエディタで
• npm + webpackを使ってみる
• 参考:むずかしくないJavaScriptのやさしい話
http://www.civic-apps.com/2015/11/15/ndsmeetup8/
• 手順
npm init
npm install jquery --save
manifest.json
background.js, index.html, index.js
webpack index.js bundle.js
Chromeで開く
• 拡張機能の読み込み
• またはコマンドラインから
google-chrome --load-and-launch-app=(作業フォルダ)
デモChrome Appの紹介
Chrome App HTTP Server
• ブラウザ上で動くアプリでありながらWebサーバー
• chrome.sockets.tcp
• chrome.sockets.tcpServer
Chrome
Chrome App
HTTP Server
Browser Tab
HTTP Request
https://github.com/civic/chrome-app-httpserver
Bluetooth Game Controller
• Bluetoothデバイスとの通信
• Bluetoothを使った独自ゲームコントローラー

Zeemote JS1H
Chrome
Chrome App Bluetooth
https://github.com/civic/chrome-app-bluetooth-zeemote
実はHTML5で「Gamepad API」
というのがある
ただしZeemoteはGamepadではないようだ
そのほかのAPI
• chrome.sockets.udp
• chrome.usb
• chrome.serial
• chrome.commands
• chrome.contextMenus
• chrome.fileSystem
• chrome.gcm
• chrome.syncFileSystem

...
UDP通信
USB通信 
シリアル通信
ショートカットキー
コンテキストメニュー
無制限ファイルシステム
Google Cloudメッセージ
Google Drive同期
まとめ
今日覚えたこと
• Chrome Appは手軽に作成・配布できる
• Chrome Dev ToolからNew Projectで完成
• 小規模AppならばElectronよりも楽ではないか?
• Web Storeでの配布
• ブラウザの安全性
• ソフトウェアのオートアップデート
今日帰ったらすぐに

Chrome Appを作ろう

Mais conteúdo relacionado

Semelhante a 今日帰ってすぐに始められるChrome App #nds45

Web制作者がandriodのcddを読んでみた version1.1
Web制作者がandriodのcddを読んでみた version1.1Web制作者がandriodのcddを読んでみた version1.1
Web制作者がandriodのcddを読んでみた version1.1Masakazu Muraoka
 
Web制作者がandriodのcddを読んでみた
Web制作者がandriodのcddを読んでみたWeb制作者がandriodのcddを読んでみた
Web制作者がandriodのcddを読んでみたMasakazu Muraoka
 
8th july2013 packaged_apps_codelab
8th july2013 packaged_apps_codelab8th july2013 packaged_apps_codelab
8th july2013 packaged_apps_codelabKensaku Komatsu
 
Sharoid Service Menu
Sharoid Service MenuSharoid Service Menu
Sharoid Service Menusharoid
 
フロントエンドの技術で始めるデスクトップアプリ
フロントエンドの技術で始めるデスクトップアプリフロントエンドの技術で始めるデスクトップアプリ
フロントエンドの技術で始めるデスクトップアプリTomotaka Kusaka
 
アプリ開発の
アプリ開発のアプリ開発の
アプリ開発のmaruyama097
 
WordCamp Tokyo2012 handson Portfolio
WordCamp Tokyo2012 handson PortfolioWordCamp Tokyo2012 handson Portfolio
WordCamp Tokyo2012 handson Portfolioregret raym
 
北海道勉強会_20140531
北海道勉強会_20140531北海道勉強会_20140531
北海道勉強会_20140531Hiraku Komuro
 
Webエンジニアのためのandroidアプリ開発
Webエンジニアのためのandroidアプリ開発Webエンジニアのためのandroidアプリ開発
Webエンジニアのためのandroidアプリ開発Soudai Sone
 
Unity に於ける Android ビルド自動化のおはなし - 20141215 第27回 Unity 勉強会
Unity に於ける Android ビルド自動化のおはなし - 20141215 第27回 Unity 勉強会Unity に於ける Android ビルド自動化のおはなし - 20141215 第27回 Unity 勉強会
Unity に於ける Android ビルド自動化のおはなし - 20141215 第27回 Unity 勉強会Mori Tetsuya
 
20120413 nestakabaneworkshop
20120413 nestakabaneworkshop20120413 nestakabaneworkshop
20120413 nestakabaneworkshopYoichiro Sakurai
 
Chrome Apps & Chromeウェブストア概要
Chrome Apps & Chromeウェブストア概要Chrome Apps & Chromeウェブストア概要
Chrome Apps & Chromeウェブストア概要yoshikawa_t
 
HTML5 の Web制作を 確実に楽にする最新の アドビWeb制作ツール for HTML5 Carnival Fukuoka
HTML5 の Web制作を 確実に楽にする最新の アドビWeb制作ツール for HTML5 Carnival FukuokaHTML5 の Web制作を 確実に楽にする最新の アドビWeb制作ツール for HTML5 Carnival Fukuoka
HTML5 の Web制作を 確実に楽にする最新の アドビWeb制作ツール for HTML5 Carnival FukuokaKeisuke Todoroki
 
カスタムROM開発者の視点から見たAndroid
カスタムROM開発者の視点から見たAndroidカスタムROM開発者の視点から見たAndroid
カスタムROM開発者の視点から見たAndroidandroid sola
 
iPhone/Android アプリをまとめて省エネ開発する技術
iPhone/Android アプリをまとめて省エネ開発する技術iPhone/Android アプリをまとめて省エネ開発する技術
iPhone/Android アプリをまとめて省エネ開発する技術vaccho
 

Semelhante a 今日帰ってすぐに始められるChrome App #nds45 (18)

Web制作者がandriodのcddを読んでみた version1.1
Web制作者がandriodのcddを読んでみた version1.1Web制作者がandriodのcddを読んでみた version1.1
Web制作者がandriodのcddを読んでみた version1.1
 
Web制作者がandriodのcddを読んでみた
Web制作者がandriodのcddを読んでみたWeb制作者がandriodのcddを読んでみた
Web制作者がandriodのcddを読んでみた
 
Electron early 2019
Electron early 2019Electron early 2019
Electron early 2019
 
Chrome 拡張のご紹介
Chrome 拡張のご紹介Chrome 拡張のご紹介
Chrome 拡張のご紹介
 
8th july2013 packaged_apps_codelab
8th july2013 packaged_apps_codelab8th july2013 packaged_apps_codelab
8th july2013 packaged_apps_codelab
 
Sharoid Service Menu
Sharoid Service MenuSharoid Service Menu
Sharoid Service Menu
 
フロントエンドの技術で始めるデスクトップアプリ
フロントエンドの技術で始めるデスクトップアプリフロントエンドの技術で始めるデスクトップアプリ
フロントエンドの技術で始めるデスクトップアプリ
 
アプリ開発の
アプリ開発のアプリ開発の
アプリ開発の
 
WordCamp Tokyo2012 handson Portfolio
WordCamp Tokyo2012 handson PortfolioWordCamp Tokyo2012 handson Portfolio
WordCamp Tokyo2012 handson Portfolio
 
北海道勉強会_20140531
北海道勉強会_20140531北海道勉強会_20140531
北海道勉強会_20140531
 
Webエンジニアのためのandroidアプリ開発
Webエンジニアのためのandroidアプリ開発Webエンジニアのためのandroidアプリ開発
Webエンジニアのためのandroidアプリ開発
 
Unity に於ける Android ビルド自動化のおはなし - 20141215 第27回 Unity 勉強会
Unity に於ける Android ビルド自動化のおはなし - 20141215 第27回 Unity 勉強会Unity に於ける Android ビルド自動化のおはなし - 20141215 第27回 Unity 勉強会
Unity に於ける Android ビルド自動化のおはなし - 20141215 第27回 Unity 勉強会
 
20120413 nestakabaneworkshop
20120413 nestakabaneworkshop20120413 nestakabaneworkshop
20120413 nestakabaneworkshop
 
20140629 firefoxos-devenv
20140629 firefoxos-devenv20140629 firefoxos-devenv
20140629 firefoxos-devenv
 
Chrome Apps & Chromeウェブストア概要
Chrome Apps & Chromeウェブストア概要Chrome Apps & Chromeウェブストア概要
Chrome Apps & Chromeウェブストア概要
 
HTML5 の Web制作を 確実に楽にする最新の アドビWeb制作ツール for HTML5 Carnival Fukuoka
HTML5 の Web制作を 確実に楽にする最新の アドビWeb制作ツール for HTML5 Carnival FukuokaHTML5 の Web制作を 確実に楽にする最新の アドビWeb制作ツール for HTML5 Carnival Fukuoka
HTML5 の Web制作を 確実に楽にする最新の アドビWeb制作ツール for HTML5 Carnival Fukuoka
 
カスタムROM開発者の視点から見たAndroid
カスタムROM開発者の視点から見たAndroidカスタムROM開発者の視点から見たAndroid
カスタムROM開発者の視点から見たAndroid
 
iPhone/Android アプリをまとめて省エネ開発する技術
iPhone/Android アプリをまとめて省エネ開発する技術iPhone/Android アプリをまとめて省エネ開発する技術
iPhone/Android アプリをまとめて省エネ開発する技術
 

Mais de civic Sasaki

Amazon SESのメール受信対応でサーバー減らせた話
Amazon SESのメール受信対応でサーバー減らせた話Amazon SESのメール受信対応でサーバー減らせた話
Amazon SESのメール受信対応でサーバー減らせた話civic Sasaki
 
第42回中華製安価デバイスの通信を解析した話
第42回中華製安価デバイスの通信を解析した話第42回中華製安価デバイスの通信を解析した話
第42回中華製安価デバイスの通信を解析した話civic Sasaki
 
第37回NDS Java並行処理 今昔物語
第37回NDS Java並行処理 今昔物語第37回NDS Java並行処理 今昔物語
第37回NDS Java並行処理 今昔物語civic Sasaki
 
第36回NDS 発表資料 ちょこっとpython
第36回NDS 発表資料 ちょこっとpython第36回NDS 発表資料 ちょこっとpython
第36回NDS 発表資料 ちょこっとpythoncivic Sasaki
 
NDS31 はじめてChrome App
NDS31 はじめてChrome AppNDS31 はじめてChrome App
NDS31 はじめてChrome Appcivic Sasaki
 

Mais de civic Sasaki (6)

Amazon SESのメール受信対応でサーバー減らせた話
Amazon SESのメール受信対応でサーバー減らせた話Amazon SESのメール受信対応でサーバー減らせた話
Amazon SESのメール受信対応でサーバー減らせた話
 
第42回中華製安価デバイスの通信を解析した話
第42回中華製安価デバイスの通信を解析した話第42回中華製安価デバイスの通信を解析した話
第42回中華製安価デバイスの通信を解析した話
 
第37回NDS Java並行処理 今昔物語
第37回NDS Java並行処理 今昔物語第37回NDS Java並行処理 今昔物語
第37回NDS Java並行処理 今昔物語
 
第36回NDS 発表資料 ちょこっとpython
第36回NDS 発表資料 ちょこっとpython第36回NDS 発表資料 ちょこっとpython
第36回NDS 発表資料 ちょこっとpython
 
Nds35 kindle4
Nds35 kindle4Nds35 kindle4
Nds35 kindle4
 
NDS31 はじめてChrome App
NDS31 はじめてChrome AppNDS31 はじめてChrome App
NDS31 はじめてChrome App
 

Último

NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
論文紹介: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 UnderstandingToru Tamaki
 
論文紹介: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...Toru Tamaki
 
論文紹介: 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 Gamesatsushi061452
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイスCRI Japan, Inc.
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptxsn679259
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルCRI Japan, Inc.
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Hiroshi Tomioka
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsWSO2
 

Último (12)

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

今日帰ってすぐに始められるChrome App #nds45