Three.js on Electron + Typescript

Three.jsを動かして見た。ついでに今回はTypescript、あといらんかったけどgulpでトランスパイルの実行。

ビルドタスク(タスクランナー)の事とか、今回は使ってませんがBrowserify(tsify)とかimportとかrequireとかmoduleだの、exportだの、、、何から理解していけばよいやらなかなかはかどりません。UnityとかFlashの開発の容易さを改めて思い知らされました。

ダウンロード: threejs_test2

npm install してnpm run build && start で実行できるハズ。

ところでElectronのダウンロードってやたら時間がかかる事がありますね。> node install.js から止まったまま動いてるのかどうかわからないのが不安なんですが、例えば

$ npm install electron@^1.6.15 --save-dev --loglevel verbose

とすると、詳細な進捗を出力してくれるので、ちょい安心できます。


p5.js on Electron

ActionScriptの代替としてElectronの勉強をと言いつつ、仕事が忙しくなり全く手を付けていませんでしたが、ちょっと再開。

なにせ「Electronではじめるアプリ開発[Amazon.co.jp]」の敷居が高い!第3章の「チャットアプリケーションを作ろう」からES6(ES2015)のJavascriptで書き始めて、「import?」さっきまでの「require」はどこいったの?からのReactの浅ーい説明と、Webアプリの開発経験が無いと読み進めるのは難しい内容です。

てなことで、横道にそれて(逃げて?)「Electron上でProcessingを動かしてみる」です。

正確にはそのJavascript実装版の「p5.js」を動かしてみた!です。

Processing-Javaよりかなり重い

 

いままで作ってきたProcessingのスケッチには追加のライブラリが必要なものばかりでしたので使用せず、p5js.orgのFlockingを移植してみました。移植と言っても、p5をインスタンスモードで動かす事とFlockとBoidをモジュール化したってだけです。

モジュール化と読込はnode.jsのrequireで実装しています。ES2016ならimportやclassが使えるので書きやすいんですが、トランスパイルを挟む事になりp5が動かない時に問題の切り分けが今は上手くできそうにないので後回しです。今回書いたのはNode IntegrationなJavascriptという事になります。

つまづいた所が何点か、

いきなりElectromパッケージのインストールができませんでした。セキュリティソフトの「ESET Endpoint Antivirus」が邪魔をしていたらしく一時的にオフにする事で「npm install」を通すことができました。

あと、指定サイズぴったりのコンテンツサイズを用意したかったのですが、

win = new BrowserWindow({"width":800,"height":600,"resizable": false});

とするだけではウィンドウタイトルやウィンドウの枠、いわゆるクロームも含めたサイズのウィンドウが作成されます。

win = new BrowserWindow({"width":800,"height":600,"resizable": false,"useContentSize": true});

とすることでコンテンツサイズが800×600のウィンドウを作ってくれるのですが、Windowsで実行する場合に出るメニューバーを消したい場合、

win = new BrowserWindow({"width":800,"height":600,"resizable": false,"useContentSize": true});
win.setMenu(null);

とするとメニューバーの高さ分隙間が出来てしまいました。これは以下のようにウィンドウを作る前にメニューを消すことで対処しました。

Menu.setApplicationMenu(null);
win = new BrowserWindow({"width":800,"height":600,"resizable": false,"useContentSize": true});

複数のウィンドウを持ったアプリの場合は問題が出るかもしれません。

今回の成果物~electron_test_p5

展開したフォルダへシェルで移動して、$ npm install で必要なパッケージのインストールし、$ npm run start で実行できます。と思います。

道のり長いなー。


Alt-AIR

Electronでのアプリ開発をかじり始めました。

Flash Playerは2020年末で終わりますが、Abobe AIRは続くんだそうで(AIR Roadmap Update

まぁ、ホンマか?と。いつまで約束できますん?と。来年には「AIRもやめまーす」なんて事が無いとも限りません。

何件かAIRアプリケーションを納品しており、出来上がったものを別の開発言語で作り直すなんてことは無理としても、AIRの代替のものを探して行きついたところがElectronです。

参考書片手に始めましたが、JavaScriptってこんなんでしたっけ、最近もAfterEffectsのスクリプトを書きましたが、違う。letとかconstとか何?varどこいった?

本当にAIRアプリケーション開発の代替になるかな。

Electronではじめるアプリ開発[Amazon.co.jp]