これ面白かった。
twitterアプリの開発を通して、ざっと最低限必要なことは学べた印象。
配布と自動更新以外は写経。とても充実した内容でした。
Desktopアプリ作るなら一度使ってみたいです。
お品書き
- timelineの表示・tweet
- macのnotification
- ショートカットの設定
- メニューバー(Tray)の追加
- badge(Dockアイコン)
- Dockのbound animation
- draftの保存機能
- screenshot(desktop captureの例)
- debug
- test
- 配布
- 自動更新
こんな感じ。
Securityについて
BrowserWindowのwebPreferencesオプションについて
- webSecurityを無効にしない
- リモートコンテントを表示するウィンドウはnodeIntegrationをfalseにする
- allowDisplayingInsecureContentとallowRunningInsecureContentをtrueにしない
- repermentalFeaturesとexpermentalCanvasFeaturesをむやみに有効にしない
- blinkFeaturesをむやみに使用しない
<webview>の属性について
- nodeintegrationをfalseにする
- blinkfeatures、disablewebsecurity、allowpopupsを使用しない
- insertCSS、executeJavaScriptメソッドに対してリモートコンテンツを使用しない
その他
- Electron(Chromium)のアップデートに追従する
- セキュアなコンテンツ(HTTPS)のみを表示する
- Content-Scrurity-Policyを使用して、読み込むリソースを制限する
- window.evalをオーバーライドして使用できないようにする
debug
公式のDevtron は良さそう。IPC Monitoringも可能。
npm install --save-dev devtron # devtool上で require('devtron').install()
test
spectron + mocha
ごくごく基本的なテストの書き方のみ紹介。どうテストを書いて行くかは結構悩むかも。
より詳細はgithubに。
electron/spectron: Test Electron apps using ChromeDriver