SlideShare une entreprise Scribd logo
1  sur  33
Télécharger pour lire hors ligne
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を作ろう

Contenu connexe

Similaire à 今日帰ってすぐに始められる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
 

Similaire à 今日帰ってすぐに始められる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 アプリをまとめて省エネ開発する技術
 

Plus 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
 

Plus 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
 

Dernier

[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 

Dernier (10)

[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 

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