はじめに
非エンジニアがWebアプリケーションを開発する上でたどる、学習の道筋をこのブログに残しております
本日は、クライアント側に画面表示の機能を持たせるSingle Page Applicationについて整理します
Web開発を始める方で、そもそもSPAを学習するかどうか迷っている方はこちらの記事を事前にご覧ください
businessman-learn-coding.hatenablog.com
シングルアプリケーションとは?
シングルページアプリケーションとは、それまではサーバー側で行っていた画面処理をクライアント側で行うアプリケーションの設計方法。
一般的なWebアプリケーションとの違いは以前掲載した
クライアント側で画面処理を行い、データのみをサーバーから取得することで、データ通信量を下げることができ、アプリの動作スピードを上げることができる。
一つのウェブページ内の表示を変更することでアプリを動作させることからシングルページアプリケーションと呼ばれる。
シングルアプリケーションのメリットを理解する
ここではシングルページアプリケーションのメリットをもう少し明らかにしたい。
データ量が減るとはどういうことかを理解するには、Webアプリケーション画面をもう少し深く理解する必要がある
普通のWebアプリの画面は大きく3つの種類のファイルから構成される
- html : 画面の構成を表すファイル。ページのテキストや入力フォームを設定できる
- css : テキストの色やフォームの形などを設定できる
- javascript : html,cssで記述されている画面の構成やテキストの色等をロジックで変更でき、アニメーションなどを実現できる
一般的なアプリケーションではページを更新するたびにhtmlのタグなども一式サーバーから送付される
一方で、SPAだとユーザのブラウザでjavascriptがhtml,cssを書き換えられる。サーバーに保管されているデータにアクセスが必要なときだけ、サーバと通信するのでら送付されるので、アプリの動作スピードを上げることができる
SPAを実現するライブラリ/フレームワーク
javascriptで画面を書き換えるといっても簡単ではない。単に、文字を書き換えるだけならまだしも、アプリとして機能を作成しようとすると非常に難しくなる
全てを一からコーディングしようとするのは難しすぎるため、SPAを実現するコード集(ライブラリ/フレームワーク)が発明され、広く利用されている
このコード集(ライブラリ/フレームワーク)はオープンソースとして、誰でも利用できるようになっているため、積極的に活用することをおすすめする
現在、広く使われているのはAngular/React/Vueの3つです。特徴をまとめると以下になる。
Vue | React | Angular | |
---|---|---|---|
リリース | 2014/3 | 2013/3 | 2016/9 |
提供元 | Evan You | ||
基本機能 | UI | UI | フルスタック |
開発規模 | 小 | 中~大 | 大 |
学習コスト | 中 | 低 ~ 中 | 高 |
Reactがバランスがよく、Vueが小規模なアプリ向け、Angularは大規模なアプリ向けといえる。
今回採用するライブラリ/フレームワーク
今回は以下2点を考慮し、Angularを利用してWebアプリケーションを開発していく
- 作成しようとしているのが業務アプリケーションに近く、一定の規模になることが予想される
- 基本機能が最初から提供されるほうが学習しやすい
次回の記事
Angularを学習する上での前提知識を整理する
businessman-learn-coding.hatenablog.com