やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

HTML,CSS,JSだけでアプリ開発する方法

色々あるみたいなので整理した。

なぜHTML,CSS,JS?

OSごとに異なるプログラミング言語で開発せねばならないのは苦痛。環境構築、学習、実装、テストなどのコストが跳ね上がる。少ない言語で多様な環境で動くアプリをつくりたい。

とくにGUIは環境ごとに大きく異なる。HTML,CSS,JSで作成できれば助かる。

(HTML,CSS,JS,どれも日々進化し仕様も変動しているという問題はあるが)

方法

A. Webアプリ

ブラウザは全OSに存在する。HTML,CSS,JSで実装できる。それさえ学習すれば全OSで動くアプリが作れるはず。

A1. ブラウザで動作するアプリ

  • JSを別ファイル化する仕組みが万全でない
    • 保守性のあるコードが書けない

別ファイル化する方法は以下のとおり。だがそれぞれ大いに問題がある。

方法 問題
require.jsで非同期読込 コードが煩雑になる
Node.js+webpackによる事前トランスパイル&単一ファイル化 環境構築が大変
各ブラウザがES2015のimportやES Module機能を実装してくれるのを待つ ブラウザ間の差は存在し続ける

A2. Node.jsでトランスパイル

環境構築が非常に大変。変化が激しくて速いのでついていけない。

B. サーバアプリ

Node.jsによりサーバ処理を実装する。

サーバアプリを実行するマシンが無い。無料借用サーバはサービス終了や改悪、通信制限があり安定して使えない。ローカルサーバは重いしKILLが面倒。

学習コストが高い。サーバの実装に関わる学習が必要。単にアプリを実行したいだけなら本来不要。また、Node.js以外ならサーバ側は別の言語で書かねばならない(python, ruby, Perlなど)。言語学習はもちろん、サーバ開発用フレームワークの学習も必要。

GUIをHTML,CSS,JSで書けるのが利点。さらに、ローカルファイル操作ができる。

C. クロスプラットフォームコンパイラ

HTML,CSS,JSで各OSのネイティブアプリを作成するらしい。(Windowsならexeファイルを作る)

なお、言語をC#にすればMONOも候補になる。