デスクトップアプリ作りたい欲が高まってきたので、Electron に入門した。
Hello
初めてのElectron! HTML5でデスクトップアプリを作成しよう – ICS LAB がわかりやすかった。
$ node -v
v0.12.7
$ npm install electron-prebuilt -g
$ electron -v
v0.30.0
これでひとまず環境は整う。
次は、
http://electron.atom.io/docs/v0.29.0/tutorial/quick-start/
のとおりに、
- package.json
- main.js
- index.html
を作成。
$ electron .
したら動いた。
パッケージ化も、
$ npm install electron-packager -g
$ electron-packager . your-app --platform=darwin --arch=x64 --version=0.30.0 --overwrite
$ open your-app-darwin-x64/your-app.app/
で行けた。
これは確かにお手軽だ…。
GitHubログイン
作りたいものがOAuth認証を利用するアプリなので、GitHubで試して見た。
Electron. oAuth authentication with GitHub がとても参考になった。
ログイン部分のソースはこちら。
https://github.com/tnantoka/GitHubLogin/blob/master/auth.js
ポイントはredirectを監視して、queryにcodeがあったらそれを使ってアクセストークンを取得するところ。
無事に認証できたら、localStorageにtokenを入れてページをreloadするという手抜き実装にしている。
この規模でももう既に破綻の香りがするので、React・Fluxでの実装を勉強しようと思った。
メモ
- package.jsonのmainに指定するスクリプトが動くMain processと各ページを描画するRenderer processがある。
UI以外の処理はremote.require
などを使ってmain側にやらせる。 - OAuthのidやトークンを隠すのは厳しそう
http://stackoverflow.com/questions/30167226/how-to-protect-source-code-in-electron-project
TODO
- アプリ閉じたあとdockアイコンクリックで復帰させる方法