Angular je javascriptový webový Framework. Zaměřuje se na tvorbu jednostránkových aplikací. Takové aplikace jsou vytvořeny za pomoci HTML kódu, do nějž jsou vloženy speciální formátovací značky, které následně určují, jaké operace či data mají být na dané místo vloženy. Angular je volně dostupný pod MIT licencí. V současnosti je největším přispěvatelem společnost Google, která byla jeho zakladatelem v roce 2009.

Architektura

Angular byl navržen tak, aby umožňoval tvůrcům stránek oddělovat zobrazovací logiku od aplikační logiky aniž by měli větší znalosti programování. Za tímto účelem Angular využívá návrhový vzor Model-View-Controller nebo alternativní Model-View-ViewModel. Za pomoci tohoto abstraktního oddělení je většina aplikační logiky obsažena v modelu nebo controlleru. Daný model nebo controller je následně vložen do $scope dané view šablony. Ta pak může používat definované proměnně a s využitím speciálních direktiv je vypisovat i s nimi jakýmkoliv jiným způsobem manipulovat.

Angular zároveň hlídá změny, které probíhají na proměnných definovaných pro daný $scope. To je možné díky použití takzvaného dirty-checkingu, který má na starost kontrolu, zda se nová hodnota neliší od staré. Za situace, kdy se hodnota proměnné změnila, Angular ověří, že je opravdu potřeba změnit DOM a následně aktualizuje view template do nejnovějšího stavu. Daná funkcionalita přispívá k tomu, že není potřeba se starat o opětovné vykreslování a hlídání změn a postačí se zaměřit výhradně na výsledný vzhled aplikace.

Scope

Angular používá vlastní implementaci scope. Ten díky tomu drží reference na veškeré aktuální proměnné, jenž jsou na něm definovány a zároveň na části DOM, se kterým v dané chvíli pracuje. Přístup zajišťuje proměnná $scope, která je definovaná v controlleru.

Controller

Angular využívá pro práci controllery. Každý z nich je připojen k HTML DOMu za pomoci direktivy ng-controller. Každý z controllerů má pro svou práci vlastní $scope. V něm má uloženy hodnoty a objekty, se kterými pak může pracovat.

Controllery se využívají pro:

  • Nastavení počátečního stavu objektu $scope
  • Upravení chování $scope

Pro ostatní případy mají být využívány specializované komponenty Angular. Ty pak umožňují komunikaci mezi controllerem a view modelem.

Populární způsoby použití Angular

  • Aplikace na streamování videa. Aplikace Youtube pro Sony PS3 je vyvíjena za využití Angular. Dalším příkladem je například Netflix.
  • Aplikace na uživatelská hodnocení. Příkladem použití je GoodFilms.
  • Cestovní aplikace. Jedním z příkladů jsou webové stránky JetBlue.
  • Aplikace na předpověď počasí.
  • Portály s uživatelsky generovaným obsahem. Příkladem použití je Freelancer.com.
  • eCommerce.
  • Mobilní prodej. Angular pro svojí nákupní aplikaci používá například MallZee.
  • Sociální sítě. Příkladem využití je LinkedIn.

Výhody použití Angular

  • Komunita. Tím, že je Angular udržován inženýry z Googlu, existuje obrovská komunita, od které se lze učit a která pomůže s řešením případných problémů.
  • Intuitivní. Angular je velmi intuitivní, protože využívá HTML jako deklarativní jazyk. Navíc je jednodušší na reorganizaci.
  • Obsáhlý. Angular je obsáhlým řešením pro rychlý vývoj front-endu. Není potřeba využívat dalších pluginů nebo Frameworků.
  • Testování. Angular podporuje jednotkové testování, čímž zjednodušuje udržování maximální kvality.

Nevýhody použití Angular

  • Zmatečnost. Existuje mnoho způsobů, jak vyřešit jeden problém. Zvláště pro začátečníky tak může být velmi obtížné posoudit, kterou variantu použít nejspíše. Programátoři se tak musí naučit dobře porozumět jednotlivým komponentám.
  • Zpoždění UI. Pokud je více než 2000 diváků, UI může nabírat velké zpoždění. To znamená, že možná komplexita je formulářů je v Angular omezená. To se zároveň týká mřížek a seznamů velkých dat.
  • Kolize pojmenování. S Angular není možné komponovat větší množství NG aplikací na stejné stránce, což může vést ke kolizím pojmenování.