【原題】 Day9 TypeScriptでGUIアプリを…強引に作るなら?
まずは一応定石から説明していきます.
JavaScriptでGUIを作るならどうすればいいの?
今回は申し訳ないんですけど,私が未知なのでReact等の紹介はしません.
一般に選択肢として出るのは「Electron」かなと思います.
これは,Node.jsをベースとして,HTML/JavaScript/CSSでホームページ的なものを作り上げてそれを専用のビューで動かすことによりGUIアプリにするというものです.
…あれ! 本アドベントカレンダーのDay6で似たようなことやりましたね!
あれはElectronの思想から来てたり来てなかったり.
じゃあTypeScriptは?
まぁ何でもいいんですけど…
私はElectronをTypeScriptで動かそうとして苦戦しました.
まず,Electronの考え方として,フロントエンド側のJavaScriptとバックエンド側のJavaScriptの2つがあります.
フロントエンド側は,普通のホームページ的なJavaScriptで,バックエンドのコマンドを叩きます.
バックエンド側は,ファイル操作とかDB操作とかを行うNode.js的なJavaScriptです.
さて,ここでTypeScriptにするとそれぞれを別のTypeScriptとなります
これらを良い感じにコンパイルするのは…難しそう!(適当)
という訳でよくわからないものを作り上げてしまった…と思ってこの記事を書いているのですが,正直こっちの方法も良い感じのコンパイル出来てないような気がするのでこれはもう負け記事確定ですね.
じゃあ何をしたの?
まず,ExpressというWebサーバーライブラリを使って,TypeScript上でWebサーバーを立てます.
それでHTMLファイルを配信すると同時に,HTMLにつくTypeScriptも全てtscでコンパイルします.
すなわち,1つのsrcファイルに全てが入っているという訳です.
…さて,分かりにくくないですか?
また,これだけだとGUIではなく普通のバックエンド付きWebサーバーです.
…さらにいうとこれを今実験的にプロジェクトに導入しているのですが…色々無理ですね.
じゃあどうすんの?
まずはElectronをTypeScriptで試されている記事を紹介します.
そのうえで,この強引にGUI作るプロジェクトはやめます.(英断)
…はぁ…どこかにいい感じのGUIアプリを作れるやつはないかな…
……Day22に続く(かも)