HTML,CSS,JSだけでアプリ開発する方法
色々あるみたいなので整理した。
なぜHTML,CSS,JS?
OSごとに異なるプログラミング言語で開発せねばならないのは苦痛。環境構築、学習、実装、テストなどのコストが跳ね上がる。少ない言語で多様な環境で動くアプリをつくりたい。
とくにGUIは環境ごとに大きく異なる。HTML,CSS,JSで作成できれば助かる。
(HTML,CSS,JS,どれも日々進化し仕様も変動しているという問題はあるが)
方法
- Webアプリ
- A1. ブラウザで動作するアプリ
- A2. Node.jsでトランスパイルしたA
- サーバアプリ
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で書けるのが利点。さらに、ローカルファイル操作ができる。