z

CMUForMe開発日記2

2025年6月21日

前回のあらすじ

Nextronを使って楽にデスクトップアプリ型のアプリを作る。 その前にNextron、そのベースとなるElectronでの開発がどんなものになるかについての落書き。

Electronの特徴

Electronはマルチプロセスモデルを採用している。具体的には大きく分けて2つのプロセスがある。

  1. アプリ本体のメインプロセス
  2. 画面描画を担当するレンダラープロセス

なんでわざわプロセスを分けるなんて面倒なことしているんだって話になるが、 これを理解するには、ElectronのベースとなっているChroniumについての理解が必要になる。というのもElectronはChroniumのプロセスモデルを継承しているからだ。

Chroniumといえば、WebブラウザのOSSで、かの有名なGoogleのChromeはそれの親戚になる。

そのChroniumの一番大きな特徴と言われているのが、このマルチプロセスモデルというやつで、具体的には、ブラウザプロセスとレンダラープロセスを分離することで、サンドボックス化によるセキュリティ向上、役割分担による高速描画が実現できるようになったたらしい。

そして、このマルチプロセスの仕組みをそのままネイティブアプリ開発に活用したのがElectronになり、それにさらにNext.jsを結合したのがNextronになる。

家系図に例えると、Chroniumが祖母、Chromeが祖父、Electronが父で、Nextronが母、Nextronがその子どもといった感じ。

Nextronでの開発のポイント

NextronでNext.jsの仕組みを使って楽にデスクトップ型アプリを開発するとはいえ、開発のポイントは、マルチプロセスの連携になりそうである。先ほどの例で言うと父のDNAを理解する必要がある。

実際に開発する中で下記の2つが課題になった。

  1. レンダラープロセスからメインプロセスの機能の呼び出し
  2. メインプロセスとレンダラープロセスの両方で使う共有の型

今回はここまで。2つの詳細については次回のお楽しみに。