Angular情報
Angularとは
Angular(アンギュラー)は、Googleとコミュニティによって開発されているJavaScriptベースの動的Webアプリケーションのためのフレームワークです。なお、バージョン1系まではAngularJS(アンギュラージェイエス)と呼ばれていましたが、2016年9月にリリースされた後継のバージョン2系以降はJSを省略したAngularと呼ばれています。
Angularでは、テンプレート言語としてHTMLを使用し、かつアプリケーションのコンポーネントを簡潔にするためにHTML文法を拡張しています。
また、DIコンテナといったモジュールの依存性を管理する機能も用意されています。他にも、シングルページアプリケーションを開発する際に遭遇する様々な課題に対応するための豊富な機能を備えています。Angularは、一般的にはMVC(Model-View-Controller)と言われるパターンを採用しています。
なお、AngularJS はJavaScriptによる開発が前提になっていましたが、Angular からは JavaScript(ES6)のスーパーセットであるTypeScriptによる開発が前提になっており、AngularとAngularJSには互換性がほとんどありません。
主な特徴
HTML ベースのテンプレート機能
テンプレート言語にHTMLを使用し、カスタム属性や拡張構文を使用して、制御構造やUIコンポーネント、ロジックなどを記述することが可能です。
双方向データバインディング
HTMLのinputフィールドをバインドすることで、ユーザーの入力によるフィールドの変更とJavaScriptによるモデルの変更が双方向で可能になります。
DIによるモジュール管理
Dependency Injection(依存性注入)により、コンポーネント間の依存関係をプログラムのソースコードから排除し、外部の設定ファイルなどで注入できます。
ルーティング機能
URLに応じてコンテンツ部分のみを動的に変えることにより、ページ全体が再読み込みされることがありません。
非同期通信のサポート
簡単に非同期通信を実装することができ、インタラクティブなWebページが作成できます。
ビルトインディレクティブとカスタムディレクティブ
HTMLに機能を付加する「ディレクティブ」が、標準で多数組み込まれており、カスタマイズすることも可能です。
フィルタ機能
データを整形するフィルタ機能により、モデルの値を変更することなく画面表示の際のフォーマットを変更できます。
セキュリティ対策
出力のエスケープや制限、コンテンツごとのセキュリティポリシーの適用など、脆弱性への対策が考慮されています。
テスト駆動型の開発
DIを効果的に使用することにより、テスト駆動型の開発ができます。
サーバサイドレンダリング
Angularでは、SEO対策として、サーバサイドでHTMLをレンダリングすることが可能になります。
TypeScriptでの開発を推奨
Angularでは、TypeScriptでの開発を推奨しており、開発環境ではMicrosoftのVisual Studio Code との相性が良いとされています。
RxJS ライブラリ
リアクティブ・プログラミング用ライブラリであるRxJSを利用して、非同期またはコールバックベースのコード作成を簡素化することができます。
クロスプラットフォーム
アプリケーションのようなモダンなWebプラットフォームを提供します。また、ネイティブOS APIへのアクセス機能を使用することで、Mac、Windows、Linux向けのデスクトップアプリを作成できます。
スピードとパフォーマンス
テンプレートをJavaScript仮想マシン用に最適化されたコードに変換します。
生産性
テンプレート構文を用いることで、UIビューをすばやく作成することが可能です。コマンドラインツールAngular CLI によって高速にビルド、デプロイができます。また一般的なエディタやIDEに対応しており開発効率が高くなっております。
類似プロダクト
Angularの他にも、ReactやVue.jsなどのいくつかのJavaScriptベースのWebアプリケーションフレームワークがあります。これらの中で、現在は React の人気が最も高いですが、Angularも依然人気があります。
Angularのライセンス
Angularのライセンスは、MITライセンスです。MITライセンスは、X Window System (X11)などのソフトウェアに適用されていることから、X11ライセンス、またはXライセンスとも表記されます。
MITライセンスは、数あるソフトウェアライセンスの中で最も制約が少なく、ソースコードの無償の使用のほか、改変、再配布することも認められています。
製品ダウンロード
※AngularJSは2022年1月でEOLとなっています
オープンソース年間サポートサービス
OpenStandiaではOSSを安心してご利用いただけるように、オープンソース年間サポートサービスをご提供しております。
サポートしているOSSは下記ページをご参照ください。