itこの広告は、90日以上更新していないブログに表示しています。Node.js最近は面白いと思ったものを気が向いた時になんとなく触る、ということが多いです。最近MattermostというWebベースのチャットアプリを使い始めました。(Dockerで公開されているというのは本当に便利ですね。試してみるためだけにサーバーの環境を触らなくて済むし、自力で環境を整える手間が省けます)www.moongift.jpWebアプリの常としてブラウザを開いていないと使えないので、うっかりウィンドウを閉じてしまわないよう意外に気を使います。Chromeでタスクバーにショートカットを作れば見た目上は別アプリにできるんですが、Macではこの方法が使えないので地味に不便でした。Qiitaをたまたま見て「これだ」と思ったのでElectronを使ってMattermostのデスクトップアプリを作ってみました。github.comElectronElectronはGitHubが公開している、デスクトップアプリを作るためのフレームワークです。Codeで使われています(と言うか元々Atomのために作られた)。Linuxのクロスプラットフォームアプリを作れるWebの技術(HTML+CSS+Javascript)だけで書けるChromium+Node.jsで動作しているので、HTML5とNode.jsのAPIをどちらも使えるMacで動作することと自分がNode.jsを一応使えたことがElectronを使った理由として大きいです。WebViewで表示するところまではElectronのチュートリアルと、Qiitaの記事を見たらあっさりできました。HTMLに関しては最近まで「frameタグ」とか「右クリック禁止」のレベルで止まっていたのですが、今回はWebViewタグ一発なのであまり問題になりませんでした。未読があることが分かればよいので、unread-titleクラスの数(=未読チャンネルの数)を数えます。WebViewの中でDOMを取得する必要があるので、WebViewのpreload属性でロードしておきます。XではDockにバッジを表示します。常駐化ウィンドウを閉じてしまうと当然DOMは取れず、未読件数も取得できないので対処が必要です。mainWindowのcloseイベント発生時に、ウィンドウを最小化または非表示にしてやります。XではDockアイコンをクリックした場合にappのactivateイベントでmainWindowを再表示します。アプリの終了はCtrl+QまたはCommand+Qです。appのbefore-quitイベントでwillAppQuitをtrueにして、ウィンドウを閉じられるようにします。true;});作ってみてWindowsだとElectronがHTML5のデスクトップ通知をしてくれません。ElectronのIssueに挙がっているのですが、どうなるかはわかりません。通知が来たことをイベントを拾えるようになって欲しいところです。Electronのチュートリアルを読み始めてからWebViewでMattermostを表示して未読件数を取得するところまで、でだいたい3時間程度なので、かなり手軽にアプリを作れてしまって驚いています。XAML)とかWin32のC++ってなんとなく気合い入れないと作らないですし(しかもWindowsだけ)、Electronは手軽に作れることが重要な便利ツールにこそ良さそうです。3.6久しぶりの更新です。(2)リンクはてなブログブログをはじめる週刊はてなブログはてなブログProはてなブログをはじめよう!yuya-ocさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。