現在、Web開発の現場では、JavaScriptフレームワークと呼ばれるソフトウェアを用いることが当たり前になっています。中でも「Angular」(旧称AngularJS)は、天下のGoogle謹製かつフルスタック(全部入り)という特長から、最もよく利用されています。ここでは「最近よく聞くAngularって何のこと? 釣り人?」といった方に向けて、Angularについて簡単に紹介します。
JavaScriptフレームワークとは?
Angularは、「JavaScriptフレームワーク」と呼ばれるジャンルのソフトウェアです。Angularについて書く前に、まずJavaScriptフレームワークとは何か、について説明しましょう。
JavaScriptは、Webページの色を変えたり、文字や画像を動かしたりするために開発された、簡易的なスクリプト言語でした。ところが、Webブラウザの性能向上や、HTML/CSSの表現力向上、動画やアニメーションなどのWeb標準技術の整備によってできることがどんどんと増えていき、今では本格的なアプリやゲーム、サーバや機械制御(IoT)にまで活躍の場を広げています。
しかし、JavaScriptの仕様は簡易言語として登場した1990年代から大きく変わっていないため、大規模なソフトウェア開発には向いていません。そこで使われ出したのが、JavaScriptフレームワークです。フレームワークとは「骨組み」のことで、あらかじめ開発に必要な機能やひな型を用意し、それを組み合わせるだけで簡単にアプリを開発できるようにする仕組みです。Angularのようなフレームワークの登場によって、JavaScriptによる大規模開発のスピードを大幅に短縮できるようになったのです。
特長1:フルスタック(全部入り)
現在使われているJavaScriptフレームワークには「React」「Vue.js」「Aurelia」などもありますが、日本はともかく、欧米で最も人気があるのは「Angular」です。その理由の1つは、フルスタック(全部入り)であることです。インストール直後から一般的なアプリ開発に必要な機能をすべて利用できまず。さらに、人気のフレームワークだけあって、多数のライブラリが用意され、自由に機能を拡張することができます。追加ライブラリは必須ではありませんが、UIツールやデバッグツールなどを導入すれば、開発をよりスムーズに行うことができます。
特長2:コンポーネント指向開発
昨今の見栄えの良いWebページは多数のUI部品からできていて、しかもそれらが複雑な階層構造で構成されています。Webアプリを作る際に最も苦労するのが、この複雑に絡み合ったUI部品のコントロールです。そこでAngularでは、Webページを構成するUI部品をコンポーネントと呼び、コンポーネント単位で開発を行います。コンポーネントごとに小さなプログラムを作り、最終的にそれを組み合わせてアプリを作るため、開発途中ではUI部品の関係性を気にせずに開発を進めることができます。
特長3:モダンなWeb技術が満載!
親しみやすいJavaScriptがベースになっていますが、実は、AngularにはGoogleが開発・推進するさまざまなWeb標準の最新技術が満載されています。Angularで使われる言語はECMAScript 6を先取りした「TypeScript」ですし、JavaScriptのモジュール化機能「System.JS」、非同期処理機能「RxJS」「Zone.js」、テストフレームワーク「Jasmine/Karma」などが採用され、取り込まれています。モダンなWeb技術の見本市のようなソフトウェアなのです。
また、Angularを利用すれば、データバインディング、依存性注入(DIコンテナー)、ルーティング等を駆使した「SPA」と呼ばれる最新のWebアプリを容易に開発することができます。
上記のような特長を持つAngularは、最先端のWeb開発にもってこいの魅力的なフレームワークと言えるでしょう。Web開発の現場のエンジニアだけでなく、最先端のWeb技術を深く知りたいという方も、ぜひ一度、弊社刊『Angularアプリケーションプログラミング』などでAngularを学んでみてください。