適当なツール系GUIアプリを作成しようと思うとまずWEBアプリが思いつく。
開発者からするとPWAやAMPを使えばよいと思うけど、ユーザとして考えるととりあえずネイティブアプリを使いたい人は多いと思う。
WEBアプリケーションをネイティブアプリにするために何を使おうか。
クロスプラットフォームのためのフレームワークを見てみます。
フレームワーク
Electron (公式、GitHub)
GitHubの開発したフレームワーク。
Node.js と Chromium をベースにデスクトップアプリが作れる。
Atom、Visual Studio Codeのような高機能エディタやDiscord、SkypeのようなアプリがElectronベースで作られています。
golangで処理を書けるgo-astilectronやgotronというのもあった。
NW.js (公式、GitHub)
Intelの開発したフレームワーク。
Node.js と Chromium をベースにデスクトップアプリが作れる。
Electronとの違いは多々あるけど、ビルドまでの容易さはいい感じ。
Cordova/PhoneGap (公式、GitHub)
この2つはとりあえず同じようなものです(投げやり)。
基本はCordovaを使うと思います。
HTML+CSS+JSからネイティブアプリビルドができます。
デスクトップアプリも作成可能ですが通常モバイルアプリ作成用です。
React Native(公式、GitHub)
Facebook開発のReactでモバイルアプリが作れるフレームワークです。
windowsアプリも作れるみたい(react-native-windows)。
Reactそのものもですが、Nativeもちょっと敷居が高めにみえる。
良くも悪くも新しいので良い点もあれば不便な部分も多いようです。
Meteor (公式、GitHub)
Web、デスクトップ、モバイルアプリを作るためのプラットフォーム。
なんでもjavascriptでかけるという夢のような環境になるようです。
便利な反面、制限や依存性も強めな印象。
所感
凝ったデスクトップアプリを作るならやっぱりElectronを使いたい。
無意味にgo-astilectronとか触ってみたい。
モバイルアプリを作るなら安定のCordova。
これまで何度か使っていて過不足なく使えているのが大きい。
しかしちょっと前にReactをやったのでReact Nativeが気になる。
簡単なテストアプリを作ってみて良さそうなら切り替えてみてもいいかもしれない。