基本情報
概要
AngularJS(アンギュラージェイエス)とは、Googleとコミュニティにより開発されているオープンソースJavaScriptアプリケーションフレームワークです。ブラウザ上で動作するWebアプリケーション開発にMVCアーキテクチャを取り入れることを目的としています。
基本説明
AngularJSは、テンプレート言語としてHTMLを使用して、アプリケーションコンポーネントを分かりやすく簡潔にするためにHTML文法を拡張します。「データバインディング」と「DI(依存注入)」を通して大部分の余計なコードを排除できます。複雑なWebアプリのフロントエンドも効率よくシンプルに実装できます。
AngularJSの思想として、『UI構築とソフトウェアコンポーネントを同時に行う際には、 命令形のコードはビジネスロジックが表現するのに優れてはいるものの、 命令形のコードより宣言コードのほうが優れている』という信念のもとに構築されています。
AngularJSは、クライアント側JavaScriptのコントローラでデータモデルを管理し、画面(ビュー)とリアルタイムにデータを交換するようなアプリケーションに適したフレームワークです。
AngularJSは人気が高く、Googleが開発に携わっていることにより、安心して学習できるフレームワークです。
得意分野/不得意分野
AngularJSを使うと、設計/実装ルールがある程度強制されるため、それに従うことで、コード量削減や、品質の差を小さくするなど、生産性が大きく向上することが期待できます。
AngularJSはCRUDアプリケーション構築を念頭において設計されています。マスターメンテのようなCRUD系アプリ/業務系アプリなどの、各機能が独立した画面として存在し、フォームでデータ送受信を行うようなアプリに向いているとされています。
AngularJSは、高階層での抽象化により、アプリケーション開発を簡素化します。 ただし、抽象化は柔軟性を犠牲にするという一面もあるため、 すべてのアプリケーションがAngularJSに適しているわけではありません。
ゲームアプリ(変化するデータが大量、速度重視)や、シングルページアプリケーション(画面遷移しないWebアプリ)は、あまり向いていないとされています。
経緯
2009年 初版発表
2012年6月 バージョン1.0.0がリリース
主なポイント
■フルスタックフレームワーク
■HTMLテンプレート
■テンプレートエンジン(モデルの値をレイアウトするための機能)
■双方向データバインディング(モデル/ビュー間での値の変更を互いに反映させる機能)
■MVWパターン(MVCの派生パターン)
■ディレクティブ(条件分岐、繰り返し、イベント処理など、ビューで利用する定型的な機能を提供するカスタムタグ/属性)
■カスタムディレクティブ(再利用可能なコンポーネントと独自のマークアップ)
■ディープリンク(動的ページにリンクを設定)
■DI(依存性注入)
■フィルター(ビューに出力すべき値を加工する機能)
■ルーティング(URLに応じて適用するテンプレートを切り替え)
■Ajax通信機能
■REST志向
■フォームバリデーション
■サーバとの連携
■ローカライゼーション
■テスト環境(ユニットテスト、e2eテスト)
同様製品(概要情報)
同様な機能を提供する製品として、次のようなものがあります。
「Backbone.js」「Knockout.js」「Ember.js」など。
導入事例
世界中で人気が高まっています。
ライセンス情報
AngularJSのライセンスは、「MIT License」です。このライセンスに従うことを条件として、ソースコードの改変と公開が許可されています。
ダウンロード
※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。