質問: electronのメリットのひとつはWindows、Mac、Linux版を同時に開発できると言うことでしょうか?
回答: メリット Web系の言語(HTML系、JavaScript系)で開発ができる、「HTML、JavaScript」の基礎ならネットでも検索しやすい。 「Windows、macOS、Linux」用のアプリを作成できる。 [Electron] Webの技術だけでWindowsやmacOS用のアプリを作成する >electron-builderはpackagerよりも高機能なツールです。 >例えば以下のような機能が利用できます。 > >自動更新 >様々な出力形式 >圧縮ファイル: 7z、zip、tar.xz、tar.lz、tar.gz、tar.bz2、dir >Windows: インストーラー(nsis、nsis-web)、 portable(単独で動作するポータブルアプリ)、AppX(Windowsストア) >macOS: dmg、pkg、mas、mas-dev >Linux: AppImage, snap, debian package (deb), rpm, freebsd, pacman, p5p, apk >ビルド後のファイルをGitHub Releases, Amazon S3, DigitalOcean Spacesへ公開 >好きなプラットフォームでLinuxまたはWindows用のElectronアプリをビルドするためのDockerイメージ。 >とりあえずインストーラーを自動で付けてくれるのはありがたい。 Electronを触って少し欠点も見えてきた Electron、React Native、Cordova...Web技術でネイティブアプリ開発する方法 >Electronの紹介からいきたいと思います。クロスプラットフォームなデスクトップアプリを開発するためのフレームワークで、元々はGitHubが開発した「Atom Shell」というツールでした。 > >田中: 特徴としては、Chromiumを組み込んだブラウザレイヤーと、Node.jsによるネイティブレイヤーの二層構造になっているという点が挙げられるかと思います。WebViewはもちろん、Node.jsもクロスプラットフォーム性の非常に高いプラットフォームですので、Electronを用いると、クロスプラットフォームなアプリを簡単に開発することができます。 > >白石: 著名なところでいうと、SlackはElectronで書かれているんですよね。 > >田中: そうです。Slack、Visual Studio Code、そしてもちろんGitHub製のエディタであるAtomと、著名なベンダーもElectronの採用には積極的ですね。 > >白石: Electronの将来は明るそうですね。Electronの欠点とかはあるんでしょうか? > >田中: WebViewの上で動作するので、やはりパフォーマンスやメモリ使用量の面では不利になりますね。ただ実際には、PCはモバイルに比べると速度面で優位ですので、そこまで気にするところでもありません。 > >さっき挙げた例で言うと、SlackやAtomは重いなあ...と感じることが多いですが、Visual Studio Codeはすごく軽快に動作します。なんでElectron開発元が開発しているAtomがあんなに重いのか(笑)。VS Codeの軽快さは、相当な技術力のなせる業なのかもしれません。 > >白石: さすがマイクロソフトってところですね。 >React Native >田中: では次はReact Nativeです。Facebookが作っているモバイルアプリ用のフレームワークで、一言で言えばReactを使ってモバイルアプリを作るためのツールですね。Reactの仮想DOMを、ネイティブのUIコンポーネントを利用してレンダリングするものです。 > >白石: React Nativeは最近人気急上昇中ですよね。その理由は何なんでしょうか? > >田中: React自体に人気があるということと、そしてFacebookが自ら使用しているのが大きいですね。React Nativeは、元々Instagramのチームが作っていたそうです。 > >白石: React Nativeの利点や欠点はなんでしょうか。 > >田中: WebViewの上で動作するのではなく、ネイティブに動作するアプリが作れるというのは大きな利点ですね。パフォーマンス上の問題も生じにくいし、ネイティブのルック&フィールをそのまま利用できる。 > >また、UIスレッドとJavaScriptのUIスレッドが最初から分かれているのも利点だと思います。JavaScriptの処理がUIスレッドの動作を阻害しないので、UIが60fpsを維持しやすい。 > >白石: では、React Nativeには欠点といえるものはありますか? > >田中: 作ってみると分かるのですが、結構作り方に癖があるんですよね。それに慣れるのが少し大変かもしれません。コードの共通化は促進されるものの、クロスプラットフォームじゃないというところも、議論が分かれるところです。 > >白石: Facebookは「Learn Once Write Anywhere」(一度学べばどこでも書ける)と言っていますね。 > >田中: そうですね。クロスプラットフォームは最初から目指していない。そこもCordovaとは大きな違いです。