SlideShare a Scribd company logo
1 of 40
Download to read offline
Webアプリを
Electronに乗せる
第9回 HTML5minutes!
〜triton-js〜
@pirosikick
穴井 宏幸
リッチラボ株式会社 エンジニア
(ぴろしきっく)
提供
• Yahoo! JAPANの子会社
• 社内ハッカソン(HackDay)から誕生
• スマフォのリッチ広告
• http://www.advertimes.com/20150420/
article189401/
今日の話すこと
• Electronのざっとした概要
• easy-video-mapping.comのElectron版を
開発中
• 躓いたとこと、その解決法など。
Electronのロゴ
http://electron.atom.io/
• Github社製
• HTML・CSS・JSでデスクトップアプリが
作れる
• Atom、Slack、Kobitoとかで採用
簡単なサンプル
Hello! World
index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Hello! World</title>
</head>
<body>
<h1>Hello! World</h1>
</body>
</html>
var app = require('app');
var BrowserWindow = require('browser-window');
// Report crashes to our server.
require('crash-reporter').start();
var mainWindow = null;
// ready: Windowを作る準備が出来た時に呼ばれる
app.on('ready', function() {
// 800x600のWindowを生成しindex.htmlをロード
mainWindow = new BrowserWindow({width: 800, height: 600});
mainWindow.loadUrl('file://' + __dirname + '/index.html');
// ウィンドウが閉じた時
mainWindow.on('closed', function() {
mainWindow = null;
});
});
// 全てのウィンドウが閉じた時
app.on('window-all-closed', function() {
if (process.platform != 'darwin')
app.quit();
});
main.js
package.json
{
"main": "main.js"
}
Electronのバイナリをインストール
// Global
npm install electron-prebuilt -g
//
npm install electron-prebuilt --save-dev
起動
// Macの場合
$ ./node_modules/electron-prebuilt/dist/
Electron.app/Contents/MacOS/Electron .
• メインプロセス(main.js)で
BrowserWindowを作る
• BrowserWindowはブラウザなのでHTML/JS/
CSSが動く
• ブラウザ側でNode.jsが動く
ブラウザ側で
Node.jsのパッケージをrequireして実行できる
http://easy-video-mapping.com/
• WebGLでプロジェクションマッピング
• 画像・動画等を変形させてマッピングす
る
サーバサイド無しだし、ソースをコピーすれば
そのまま動きそう!
jQueryがundefined
ElectronでjQueryがundefinedになる
• ブラウザにmodule.exportsが存在する
• jQueryがCommonJS経由でロードされたと
勘違い
requireでロードして
自分でwindow.jQuery, window.$を定義する
<!-- <script src="lib/jquery.js"></script> -->
<script>
window.jQuery = window.$ = require('./lib/jquery');
</script>
※browserifyやwebpackでbundleする方が楽かも
skywayが動かない
http://nttcom.github.io/skyway/
• WebRTCのP2Pで動画取得
• WebGLのテクスチャとして利用する
• Electronから
skaywayに

接続できない。。。
Electronでskayway.ioを使う
• XHR・WebSocketのOriginヘッダーが

「file://」になりskywayに弾かれる
• node.jsからOriginヘッダーを書き換え
リクエスト
• skyway-peerjs-electron
デモ(時間があれば)
まとめ・その他
• サーバサイドが無ければElectronに乗せ
るのは楽
• XHRのOriginが「file://」になるので注
意
• Node.jsのコードが動くので割りとなん
でもできる
• 配布までにはまだまだ作業が必要
• Cmd+Cでコピーや、

を押下時にフルスクリーンなど、

自分で実装する必要がある
提供
Thanks:)

More Related Content

Viewers also liked

Electron(旧atom shell)基礎+入門
Electron(旧atom shell)基礎+入門Electron(旧atom shell)基礎+入門
Electron(旧atom shell)基礎+入門Kazuyuki Mori
 
アプリを生み出す現場でUI/UXデザイナーが意識するべきこと:RoomClip
アプリを生み出す現場でUI/UXデザイナーが意識するべきこと:RoomClipアプリを生み出す現場でUI/UXデザイナーが意識するべきこと:RoomClip
アプリを生み出す現場でUI/UXデザイナーが意識するべきこと:RoomCliptakaaya
 
Cannon.jsで3D物理演算
Cannon.jsで3D物理演算Cannon.jsで3D物理演算
Cannon.jsで3D物理演算naoto kondou
 
Live2Dプログラミング部
Live2Dプログラミング部Live2Dプログラミング部
Live2Dプログラミング部naotaro0123
 
Electron で作るはじめてのguiアプリ
Electron で作るはじめてのguiアプリElectron で作るはじめてのguiアプリ
Electron で作るはじめてのguiアプリ祐磨 堀
 
Electronからはじめるnodejs
ElectronからはじめるnodejsElectronからはじめるnodejs
ElectronからはじめるnodejsHirata Tomoko
 
C言語なWebSocketの遊び方。
C言語なWebSocketの遊び方。C言語なWebSocketの遊び方。
C言語なWebSocketの遊び方。Masahiko Hashimoto
 
AWS LambdaとAPI Gatewayでサーバレスなシステム構築に踏み出してみる
AWS LambdaとAPI Gatewayでサーバレスなシステム構築に踏み出してみるAWS LambdaとAPI Gatewayでサーバレスなシステム構築に踏み出してみる
AWS LambdaとAPI Gatewayでサーバレスなシステム構築に踏み出してみるTakashi Makino
 
ElectronでExactTargetのGUIツールを作ってみた話
ElectronでExactTargetのGUIツールを作ってみた話ElectronでExactTargetのGUIツールを作ってみた話
ElectronでExactTargetのGUIツールを作ってみた話tzm_freedom
 
Amazon Cognito Deep Dive @ JAWS DAYS 2016
Amazon Cognito Deep Dive @ JAWS DAYS 2016Amazon Cognito Deep Dive @ JAWS DAYS 2016
Amazon Cognito Deep Dive @ JAWS DAYS 2016akitsukada
 
Electronで 動画ながら見アプリを作った
Electronで 動画ながら見アプリを作ったElectronで 動画ながら見アプリを作った
Electronで 動画ながら見アプリを作ったHayato Koriyama
 
Xіv. магічні артефакти
Xіv. магічні артефактиXіv. магічні артефакти
Xіv. магічні артефактиOlga Lesenko
 
อาร์ม รูปโมลานิซ่า
อาร์ม  รูปโมลานิซ่าอาร์ม  รูปโมลานิซ่า
อาร์ม รูปโมลานิซ่าMos BirDy
 
Krizna komunikacija na webu - BRZINOM SKRINŠOTA
Krizna komunikacija na webu - BRZINOM SKRINŠOTA Krizna komunikacija na webu - BRZINOM SKRINŠOTA
Krizna komunikacija na webu - BRZINOM SKRINŠOTA Tanja Tatomirovic
 
What are the great predictors of future performance and how to recruit for th...
What are the great predictors of future performance and how to recruit for th...What are the great predictors of future performance and how to recruit for th...
What are the great predictors of future performance and how to recruit for th...LinkedIn Talent Solutions
 
DAVID Patient Quality Assurance software
DAVID Patient Quality Assurance softwareDAVID Patient Quality Assurance software
DAVID Patient Quality Assurance softwareMustafa Danpullo
 

Viewers also liked (20)

Electron(旧atom shell)基礎+入門
Electron(旧atom shell)基礎+入門Electron(旧atom shell)基礎+入門
Electron(旧atom shell)基礎+入門
 
アプリを生み出す現場でUI/UXデザイナーが意識するべきこと:RoomClip
アプリを生み出す現場でUI/UXデザイナーが意識するべきこと:RoomClipアプリを生み出す現場でUI/UXデザイナーが意識するべきこと:RoomClip
アプリを生み出す現場でUI/UXデザイナーが意識するべきこと:RoomClip
 
Cannon.jsで3D物理演算
Cannon.jsで3D物理演算Cannon.jsで3D物理演算
Cannon.jsで3D物理演算
 
Electron Vs Enterprise
Electron Vs EnterpriseElectron Vs Enterprise
Electron Vs Enterprise
 
Live2Dプログラミング部
Live2Dプログラミング部Live2Dプログラミング部
Live2Dプログラミング部
 
Electron で作るはじめてのguiアプリ
Electron で作るはじめてのguiアプリElectron で作るはじめてのguiアプリ
Electron で作るはじめてのguiアプリ
 
Electronからはじめるnodejs
ElectronからはじめるnodejsElectronからはじめるnodejs
Electronからはじめるnodejs
 
C言語なWebSocketの遊び方。
C言語なWebSocketの遊び方。C言語なWebSocketの遊び方。
C言語なWebSocketの遊び方。
 
AWS LambdaとAPI Gatewayでサーバレスなシステム構築に踏み出してみる
AWS LambdaとAPI Gatewayでサーバレスなシステム構築に踏み出してみるAWS LambdaとAPI Gatewayでサーバレスなシステム構築に踏み出してみる
AWS LambdaとAPI Gatewayでサーバレスなシステム構築に踏み出してみる
 
ElectronでExactTargetのGUIツールを作ってみた話
ElectronでExactTargetのGUIツールを作ってみた話ElectronでExactTargetのGUIツールを作ってみた話
ElectronでExactTargetのGUIツールを作ってみた話
 
Amazon Cognito Deep Dive @ JAWS DAYS 2016
Amazon Cognito Deep Dive @ JAWS DAYS 2016Amazon Cognito Deep Dive @ JAWS DAYS 2016
Amazon Cognito Deep Dive @ JAWS DAYS 2016
 
Electronで 動画ながら見アプリを作った
Electronで 動画ながら見アプリを作ったElectronで 動画ながら見アプリを作った
Electronで 動画ながら見アプリを作った
 
Xіv. магічні артефакти
Xіv. магічні артефактиXіv. магічні артефакти
Xіv. магічні артефакти
 
อาร์ม รูปโมลานิซ่า
อาร์ม  รูปโมลานิซ่าอาร์ม  รูปโมลานิซ่า
อาร์ม รูปโมลานิซ่า
 
Krizna komunikacija na webu - BRZINOM SKRINŠOTA
Krizna komunikacija na webu - BRZINOM SKRINŠOTA Krizna komunikacija na webu - BRZINOM SKRINŠOTA
Krizna komunikacija na webu - BRZINOM SKRINŠOTA
 
Accsell008
Accsell008Accsell008
Accsell008
 
Comic!
Comic!Comic!
Comic!
 
What are the great predictors of future performance and how to recruit for th...
What are the great predictors of future performance and how to recruit for th...What are the great predictors of future performance and how to recruit for th...
What are the great predictors of future performance and how to recruit for th...
 
Xzu by ramy xzu originaloe copy.doc2
Xzu by ramy xzu originaloe   copy.doc2Xzu by ramy xzu originaloe   copy.doc2
Xzu by ramy xzu originaloe copy.doc2
 
DAVID Patient Quality Assurance software
DAVID Patient Quality Assurance softwareDAVID Patient Quality Assurance software
DAVID Patient Quality Assurance software
 

Similar to WebアプリをElectronに乗せる

リモートデバッグツール Weinerをつかってみた
リモートデバッグツール Weinerをつかってみたリモートデバッグツール Weinerをつかってみた
リモートデバッグツール WeinerをつかってみたMasakazu Muraoka
 
20140523 jQuery基礎 (HTML5ビギナーズ)
20140523 jQuery基礎 (HTML5ビギナーズ)20140523 jQuery基礎 (HTML5ビギナーズ)
20140523 jQuery基礎 (HTML5ビギナーズ)Daisuke Yamazaki
 
HTML5時代のwebクリエイターに必要なこと
HTML5時代のwebクリエイターに必要なことHTML5時代のwebクリエイターに必要なこと
HTML5時代のwebクリエイターに必要なことMasakazu Muraoka
 
WEBがネイティブに勝つために - kaumoCTOMeetup(いっちマン)
WEBがネイティブに勝つために - kaumoCTOMeetup(いっちマン)WEBがネイティブに勝つために - kaumoCTOMeetup(いっちマン)
WEBがネイティブに勝つために - kaumoCTOMeetup(いっちマン)icchiman
 
Chrome Extensionで スクリーンシェアをやってみる
Chrome ExtensionでスクリーンシェアをやってみるChrome Extensionでスクリーンシェアをやってみる
Chrome Extensionで スクリーンシェアをやってみるYusuke Naka
 
JavaScriptで ごく普通にhttp通信をする 〜esp8266+espruinoでhttp getリクエストをするテスト〜
JavaScriptで ごく普通にhttp通信をする 〜esp8266+espruinoでhttp getリクエストをするテスト〜JavaScriptで ごく普通にhttp通信をする 〜esp8266+espruinoでhttp getリクエストをするテスト〜
JavaScriptで ごく普通にhttp通信をする 〜esp8266+espruinoでhttp getリクエストをするテスト〜Masakazu Muraoka
 
Web屋という仕事のこれから Web動向からWeb屋に必要な技術を考えてみる
Web屋という仕事のこれから Web動向からWeb屋に必要な技術を考えてみるWeb屋という仕事のこれから Web動向からWeb屋に必要な技術を考えてみる
Web屋という仕事のこれから Web動向からWeb屋に必要な技術を考えてみるMasakazu Muraoka
 
Swaggerのさわりだけ
SwaggerのさわりだけSwaggerのさわりだけ
SwaggerのさわりだけMasakazu Muraoka
 
パンダの会 Html5概説
パンダの会 Html5概説パンダの会 Html5概説
パンダの会 Html5概説Masakazu Muraoka
 
もっと良くなるHTMLアプリケーション設計と実装
もっと良くなるHTMLアプリケーション設計と実装もっと良くなるHTMLアプリケーション設計と実装
もっと良くなるHTMLアプリケーション設計と実装Mitsue-Links
 
Web Speech API でおっさんの声を美少女化してみた
Web Speech API でおっさんの声を美少女化してみたWeb Speech API でおっさんの声を美少女化してみた
Web Speech API でおっさんの声を美少女化してみたminoru nakanou
 
WebRTCでリアル店舗を作ってみる
WebRTCでリアル店舗を作ってみるWebRTCでリアル店舗を作ってみる
WebRTCでリアル店舗を作ってみるJunichi Okamura
 
HTML5から始まる技術革新
HTML5から始まる技術革新HTML5から始まる技術革新
HTML5から始まる技術革新Wakasa Masao
 
HTML5とWeb開発に関する最新動向
HTML5とWeb開発に関する最新動向HTML5とWeb開発に関する最新動向
HTML5とWeb開発に関する最新動向Shumpei Shiraishi
 

Similar to WebアプリをElectronに乗せる (20)

リモートデバッグツール Weinerをつかってみた
リモートデバッグツール Weinerをつかってみたリモートデバッグツール Weinerをつかってみた
リモートデバッグツール Weinerをつかってみた
 
jQuery Mobile
jQuery MobilejQuery Mobile
jQuery Mobile
 
20140523 jQuery基礎 (HTML5ビギナーズ)
20140523 jQuery基礎 (HTML5ビギナーズ)20140523 jQuery基礎 (HTML5ビギナーズ)
20140523 jQuery基礎 (HTML5ビギナーズ)
 
HTML5時代のwebクリエイターに必要なこと
HTML5時代のwebクリエイターに必要なことHTML5時代のwebクリエイターに必要なこと
HTML5時代のwebクリエイターに必要なこと
 
WEBがネイティブに勝つために - kaumoCTOMeetup(いっちマン)
WEBがネイティブに勝つために - kaumoCTOMeetup(いっちマン)WEBがネイティブに勝つために - kaumoCTOMeetup(いっちマン)
WEBがネイティブに勝つために - kaumoCTOMeetup(いっちマン)
 
Chrome Extensionで スクリーンシェアをやってみる
Chrome ExtensionでスクリーンシェアをやってみるChrome Extensionでスクリーンシェアをやってみる
Chrome Extensionで スクリーンシェアをやってみる
 
JavaScriptで ごく普通にhttp通信をする 〜esp8266+espruinoでhttp getリクエストをするテスト〜
JavaScriptで ごく普通にhttp通信をする 〜esp8266+espruinoでhttp getリクエストをするテスト〜JavaScriptで ごく普通にhttp通信をする 〜esp8266+espruinoでhttp getリクエストをするテスト〜
JavaScriptで ごく普通にhttp通信をする 〜esp8266+espruinoでhttp getリクエストをするテスト〜
 
Web屋という仕事のこれから Web動向からWeb屋に必要な技術を考えてみる
Web屋という仕事のこれから Web動向からWeb屋に必要な技術を考えてみるWeb屋という仕事のこれから Web動向からWeb屋に必要な技術を考えてみる
Web屋という仕事のこれから Web動向からWeb屋に必要な技術を考えてみる
 
Html5 and Graphics
Html5 and GraphicsHtml5 and Graphics
Html5 and Graphics
 
Swaggerのさわりだけ
SwaggerのさわりだけSwaggerのさわりだけ
Swaggerのさわりだけ
 
Electron
ElectronElectron
Electron
 
パンダの会 Html5概説
パンダの会 Html5概説パンダの会 Html5概説
パンダの会 Html5概説
 
Htmlのコトバ
HtmlのコトバHtmlのコトバ
Htmlのコトバ
 
もっと良くなるHTMLアプリケーション設計と実装
もっと良くなるHTMLアプリケーション設計と実装もっと良くなるHTMLアプリケーション設計と実装
もっと良くなるHTMLアプリケーション設計と実装
 
Web Speech API でおっさんの声を美少女化してみた
Web Speech API でおっさんの声を美少女化してみたWeb Speech API でおっさんの声を美少女化してみた
Web Speech API でおっさんの声を美少女化してみた
 
WebRTCでリアル店舗を作ってみる
WebRTCでリアル店舗を作ってみるWebRTCでリアル店舗を作ってみる
WebRTCでリアル店舗を作ってみる
 
HTML5から始まる技術革新
HTML5から始まる技術革新HTML5から始まる技術革新
HTML5から始まる技術革新
 
Espruinoの紹介
Espruinoの紹介Espruinoの紹介
Espruinoの紹介
 
HTML5とWeb開発に関する最新動向
HTML5とWeb開発に関する最新動向HTML5とWeb開発に関する最新動向
HTML5とWeb開発に関する最新動向
 
Firefoxosハンズオン
FirefoxosハンズオンFirefoxosハンズオン
Firefoxosハンズオン
 

Recently uploaded

LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルCRI Japan, Inc.
 
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 を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイスCRI Japan, Inc.
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 

Recently uploaded (7)

LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 

WebアプリをElectronに乗せる