JavaScript
アプリ開発
Electron
JustDoIt

0. Just Do it!

Just Do It!
Don't let your dreams be dreams.
Yesterday, you said tomorrow.

So Just Download it!

1. Just Explain it!

このアプリは、Just Do itおじさんに感動して作成したアプリです。
このアプリを一度起動すると、プロセスなどを停止しない限り永遠に常駐し続け、パソコンのスリープを解除するとJust Do itおじさんに叱咤激励されます。
それだけのアプリです。効果はかなりあります。

2. Just Make it!

このアプリは、html+css+javascriptでマルチプラットフォームアプリが制作できるライブラリ「Electron」とJust Do itおじさんで作成されています。

必要なファイルは以下のみです。
これらのファイルを同じフォルダにぶち込みます。

  • main.js
  • index.html
  • audio.js
  • JustDoItおじさんの音声ファイル

Electron導入はこちらの記事が非常にわかりやすかったです。

2-1. main.js

以下がmain.jsソースコードです。

const electron = require('electron');
const app = electron.app;
const BrowserWindow = electron.BrowserWindow;
const Tray = electron.Tray;

var mainWindow = null;

app.on('ready', () => {

    //スリープ解除したときのイベント
    electron.powerMonitor.on('resume', () => {

        //これまでのウィンドウを閉じる
        if (mainWindow != null) {
            mainWindow.close();
            mainWindow = null;
        }

        //新しいウィンドウを作成する
        //音声ファイルを再生したいだけのためウィンドウを最小透過に設定
        mainWindow = new BrowserWindow({
            width: 0,
            height: 0,
            transparent: true,
            frame: false,
            toolbar: false,
            resizable: false,
            show: false
        });

        //ローカルのhtmlファイルを当てはめる
        mainWindow.loadURL('file://' + __dirname + '/index.html');
    })

    //アプリをDock非表示にする
    app.dock.hide();
});

ソースコードもJust Do Itおじさんを流すためだけの内容であるため、非常にシンプルです。
シンプルすぎて、脆弱性まみれじゃないかと心配になります。

2-2. index.html

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
</head>
<body>
</body>
<script src="audio.js">
</script>
</html>

音声を再生するためのhtmlファイルです。
音声を再生するjavascriptファイルを読み込むだけの内容になっています。

2-3. audio.js

var audio = new Audio(__dirname + '/JustDoIt.wav');
audio.play();

htmlのaudio要素を作成して、再生するだけです。
もはや、ソースコードとは呼べないレベルです。
今回は、急いで作成したため、なかなかの仕上がりになっています。

2-4. JustDoIt.wav

Just Do It!
このファイルを好きなファイルにすると、スリープ解除したときに好きな音声を流すことができます。かわいいは正義。

3. Why made it!

パソコンを開くと、ついニコニコ動画を開いてしまう自分がいました。
これからはJust Do itおじさんの力を借りてプログラミング頑張りたいです。

4. Just Summarize it!

Just Do itおじさんの力を借りてプログラミング頑張るぞー
あと、Electronすごい便利だなと感じました。(基礎の基礎しか触ってないのに何言っているんだ)
時間があれば、強制的に音量を最大にしたり、Just Do It音声ファイルを自分で選べたりループおじさんできるようにしたいと思います。

今現在、mac用しかパッケージ化していないため、Windows用にもパッケージ化しようと思います。