🤔

Electronで組み込み端末向けアプリケーションを開発し3年間運用してみて

に公開15
GitHubで編集を提案

Discussion

大学生だった.大学生だった.

新卒1年目からゴリゴリコード書いて、色々対応したりすごいですね。
Electron使ってみたいと思っていたので、こんな使い方もできるんだと読んでいて面白かったです!

akuaku

ありがとうございます!コメントいただけてとても嬉しいです!

kitaminkitamin

イベントビューアーを起動して「Windows ログ → システム」を確認するとエラーログがびっしり並んでいます。

ログの外部転送が可能なら監視組み込んでおくと運用しやすいですよ。
スペックとの相談にもなりますが、大抵の監視サービスはwinイベント用の監視エージェントが用意されていますし、他のwin機に対して転送することもできます。
あとwinイベントは何気に容量食うので、外部監視に逃がして本体のログは切り詰めるなりアーカイブするなりの設定しておくと良いです。

akuaku

確かに監視系入れておけば良かったですね…
サーバーでなくPCの延長と考えていたせいか思いつかなかったです。
参考になりました。ありがとうございます!

akuaku

あとwinイベントは何気に容量食うので、外部監視に逃がして本体のログは切り詰めるなりアーカイブするなりの設定しておくと良いです。

そういえば、イベントビューアーを開く時に一覧が表示されるまで数十秒かかっていました。
これは大事かも知れない…

odakazodakaz

ただの好奇心なのですが、フロント側はなにかフレームワーク採用されましたか?

  • Next.js
  • Vue

などなど・・・

akuaku

Reactを採用したかったのですが、社内で実績がなく周囲の理解を得られなかったのでjQuery + EJSでやりました…

にも関わらずSPAじゃないとクリアできない要件(画面遷移にアニメーションを持たせる)があったので、ヤケクソ独自のフレームワークを作ってEJSでレンダリングしたHTMLをDOMに流し、画面遷移に合わせて入れ替えていく実装にしました。

AndroidのアクティビティやUnityのシーンのライフサイクルを参考にして、 beforeLoad→(EJSレンダリング)→onLoad→afterLoad→onUnload と要所にjQueryを実行するためのメソッドを作ったベースクラスを用意し、それを継承する実装にしました。
思った通りに動いてくれましたが、EventListenerの解除漏れなど潜在的な不具合に悩まされたりしたので、やはりReactを採用しておいた方が良かったと思っています。

新技術を導入するにあたって、社内の理解を得るために勉強会を開いたりすることがとても大事だと実感しましたし、jQueryを使う(おそらく)最初で最後の機会だったのでいい経験になりました。

長々とすみません!

anonanon

ありがとうございます。
やってみましたがうまくいきませんでした。

りんりん

音声再生
Electron のレンダラープロセス上で JS を使って音声を再生してみると、処理性能の問題で再生されるまでの遅延が大きくて使い物になりませんでした。

これ本当にキッツイんですよねー!
アプリ開発用PC上でも遅延することがあるし、有名な音声再生用のライブラリ使っても改善しなかったので、たぶんChromium側の問題で安定しないんだと思ってました。

外部プログラムでの再生で対応したとのことですが、そのプログラムを起動すること自体では遅延しなかったのですね。
私の環境の場合、外部プログラムを使って再生する方法の方がより遅延してしまってがっかりしてました。
音源再生するためのネイティブの実装方法によるかもしれません。

akuaku

他チームの人にWindowsのネイティブAPIで再生するとても軽いプログラムをC++で作ってもらいました!参考になれば〜

Mr.AcornMr.Acorn

Electronにはめちゃくちゃ興味があるのですがやったことがないです。やったほうがいいのかな・・・

akuaku

「今後のために覚えておくと良い技術」という印象は世間的にもあまりないと思います。
習得するのはデスクトップアプリを作りたくなった/作る必要が出てきた時でも遅くないかなと思います。
その時に自分の技術がWeb開発に特化している場合はElectronを使うと他の方法よりも簡単にデスクトップアプリが作れると思います〜

Mr.AcornMr.Acorn

ありがとうございます!!少しチャレンジしてみます