ぽぬメモ!

ただのゲーム好きオヤジ

Evernoteを簡単に開いて編集するElectronアプリ

普段はMacで開発をしているのですが、MacBookPro13インチの画面が小さく、自宅ではもっと大きな画面で作業したいと思い、 49インチ4Kモニターに繋がっているゲーム専用のWindows10で初歩の開発環境としてElectronの開発環境構築と、 簡単なハイブリッドアプリを作ってみました。

まず、WindowsでElectronの開発環境を構築する手順です。 Windows10には、PythonもNode.jsもプリインストールされていないので、 何はなくともそこからです。

1.WindowsStoreからPython3.9をインストール

Windows10の「Microsoft Storeアプリ」から「Python3.9」を検索し、インストールします。 インストールオプションは無いのですが、pipのインストールや、インストールしたpython環境変数のパスを通すぐらいはやってくれます。

Macの場合、PyEnvで複数バージョンのPythonを切り替えたりすると思いますが、Windowsではどうすればいいのか調べていません。

f:id:kawapon2nd:20210123151803p:plain

2.「Node.js」を「Windows Installer(*.msi)」でインストール

続いて、「Node.js」を公式サイトからインストールしていきます。

「Node.js」公式サイト https://nodejs.org/ja/

f:id:kawapon2nd:20210123151743p:plain

Windows Installer(*.msi)」を選択してインストールします。 バージョンは最新LTSの14.15.4です。

ここでもコマンドプロンプト(ターミナル)は使っていません。

インストールを進めると、環境変数のパスや、npmのインストールも行ってくれます。

f:id:kawapon2nd:20210123151834p:plain

インストールの終盤に画面がPowerShellに代わり、パッケージ管理ツールのchocolateyが足りないものをインストールしてくれました。 たしかに、ゲームにしか使っていないPCなのでビルドに必要なものは入っていませんでした。

f:id:kawapon2nd:20210123151851p:plain

そして、再起動をするように促されるので再起動します。 Windowsって、やたらと再起動するイメージがあるのですが、シェルの再起動とかではダメなんでしょうか。

再起動したら、またコマンドプロンプトに戻って、 インストールしたPython、Node.js、npmが使えるか、確認してみます。

f:id:kawapon2nd:20210123151859p:plain

いい感じです。

3.Electronでのビルド

適当な場所にフォルダ(evernote-tiny-desktop-app)を作成する

mkdir evernote-tiny-desktop-app
cd evernote-tiny-desktop-app

以下の構成でファイルを配置

evernote-tiny-desktop-app
  + node_modules(最初は不要)
  + src
    + main.js
  .gitignore(不要)
  package.json(最初は不要)
  package-lock.json(最初は不要)
  README.md(不要)

node_modules と package-lock.json は、これから生成するので無くていいです。

src/main.jsの中身

const { app, BrowserWindow } = require('electron')

let mainWindow

var URL = "https://www.evernote.com/client/web"

app.on("ready", function () {
    mainWindow = new BrowserWindow({
        width: 800, height: 800
    });
    mainWindow.loadURL(URL)
});

app.on('window-all-closed', () => {
    app.quit()
})

app.on('window-all-closed', () => {
    if (process.platform !== 'darwin') {
        app.quit()
    }
})

app.on('activate', () => {
    if (win === null) {
        createWindow()
    }
})

node_modulespackage.json を作るために npm init を行います

npm init -y

node_modulesフォルダが作成されます。 package.jsonファイルが作成されます。

package.jsonファイルを以下のように編集します。

package.json

{
  "name": "evernote-tiny-desktop-app",
  "version": "0.1.0",
  "description": "Evernote tiny desktop app",
  "main": "src/main.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "kawaponuZ",
  "license": "MIT",
  "devDependencies": {
    "electron": "^11.2.1"
  }
}

npm install を行います

npm install

package-lock.json ファイルが作成されます。

Windows用にビルドします。

npx electron-packager . tinyevernote --platform=win32  --arch=x64 --overwrite

MacOS用にビルドします。(MacOSでしか出来ない?)

npx electron-packager . tinyevernote --platform=darwin --arch=x64 --overwrite

Linux用にビルドします。

npx electron-packager . tinyevernote --platform=linux  --arch=x64 --overwrite

4.動作確認

4.(1) Evernoteの初期画面

f:id:kawapon2nd:20210123151908p:plain

4.(2) GMailでのEvernoteへのログイン

f:id:kawapon2nd:20210123151916p:plain

4.(3) Evernoteのデータ処理中

f:id:kawapon2nd:20210123151928p:plain

4.(4) Evernoteの閲覧と編集

f:id:kawapon2nd:20210123151939p:plain

ElectronはJavaScriptエンジンがGoogle V8ということもあって、快適に動作します。 機能面で言うと、付け足したいものもあるのですが、ひとまずここまで動けば後で都度いじればいいと思っています。

そしてこれから

と、ここまでやって、やっぱりLinuxコマンドラインで作業しないと効率が悪いので

MacLinuxの作業が捗る別な方法を考えています(今は言えませんが)。

まつもと泉先生 追悼イラスト集 【金色のミラージュ】

ecs.toranoana.jp

執筆者、掲載順(敬称略)

フルカラー
モノクロ
コメント寄稿
特別寄稿

試されるミドルエイジ

試されるミドルエイジスキル

月曜日にプログラミングの試験を受けることになりました。 過去何度か受けたことはありますが、今回はオールジャンルで1時間しかありません。 言語は自由ってなっていたので、どんな問題なのだろう。

ネット上にはいくつか過去問らしきものがあるけど。

www.rco.recruit.co.jp

www.businessinsider.jp

github.com

なお、社長は東大卒のバリバリ理系です。

いろいろ届いた。

Oculasが動作を保証しているANKERの速いUSB-C to USB-Aケーブルとかが届いた。

なぜか、PC用に使っていたXBoxのコントローラーが変になっていたので、新調しようと思ったらかなり高い。 やはりロジクールを買おうか。。。

ルンバのバッテリーも届いた。 しかし、ルンバのバッテリーをレターパック500に入れて、無理やり球体に丸めて郵送するのはやめてくれ。

[オヤジの週末]ルンバのバッテリー交換と流し台の掃除

とうとう、8年使ったルンバのバッテリーがダメになりました。

f:id:kawapon2nd:20210111073620j:plain
純正バッテリー

そこで、交換用の純正バッテリーを調べてみると、11,000円と高価。しかもニッケルマンガン

部屋にいる時間も変わってきているので、まだまだ使い続けることを決意。15年ぐらい。。。

まあ、広く知られた商品なので互換バッテリーは沢山出ていて、それで様子を見てみる。

f:id:kawapon2nd:20210111095744j:plain
互換バッテリー

そして、流し台と洗面台を掃除していたら塩素系液体が目に入ってしまい、 掃除もゲームもできない状態に。

今日こそは、掃除も、ゲームも、明日のお仕事関連の準備もがんばる。

あと、流し台の排水口をやらないと。。。


キッチンの排水口を“絶対に触らずに”キレイにする方法!

もうね、この手の話題は、「価格.comマガジン」一択でいいです。

PR動画ですが、専門業者もどうかと思うので。

買い物いろいろ

ラジオが好きです。 テレビは苦で特にコマーシャルと大げさなドラマと批判的な報道番組が無理。

巣ごもりでサブスクが増えました。

音楽のサブスク

これだと、ダブりますよね。 だけど、まだ1つにできない感じなのです。

有料の動画配信

U-NEXTは、高めですが、コンテンツはいいのです。 見放題コンテンツ、新作アニメ、NHKのコンテンツ、お色気系となんでもありです。

スカパー!見直し

変更しました。

あまりなじみのないチャンネルかと思うのは、 「WOWOWプラス」と「CNNj」ですが、結構いいです。

WOWOWプラスは、ちょっと見たい映画が毎週いくつかあります。

www.wowowplus.jp

CNNjは基本は同時通訳のニュースなのですが、 日本のニュースのような騒がしさがなく、生きた英語も聞けて良いんです。

www2.jctv.co.jp

J SPORTSは解約できません。1月に「デイトナ24」があるから。

ロバート・クビサが乗るLMP2マシンは、 名門ハイクラス・レーシングからの参戦で アルファロメオ感の強いカラーリングはとてもかっこいいです。

f:id:kawapon2nd:20210108170215j:plain
イクラス・レーシング

あと、とても大事なのですが、一日を通して氷点下という異常な気温のため 耐え切れず、仕事用の勝負服としてスウェット上下を買いました。

f:id:kawapon2nd:20210109180222j:plain
スウェット上下

夜中に見たらー6度になっていました。 これだけ寒いのだから。着るものは暖かさ重視です。

ネクタイに革靴にスーツにコートで電車とかもう無理です。

本いろいろ

はじめて、kindleマンガを購入しました。

f:id:kawapon2nd:20210109184101j:plain

もちろん技術書もいろいろ買いましたよ。