"Angular
is a platform that makes it easy to build applications with the web. Angular
combines declarative templates, dependency injection, end to end tooling, and
integrated best practices to solve development challenges. Angular empowers
developers to build applications that live on the web, mobile, or the
desktop".
Single Page Applications
Basically, when people talk about Angular, they talk about it as a
JavaScript framework. It is used to build so-called Single Page Applications
(SPA). These SPA's typically (but not only) use the browsers JavaScript
environment to emulate the behavior of normal websites.
Because they don't rely on a server at all, they can do things,
that we would expect from native applications. They have the ability to manage
their state completely client-side, enabling a richer and much more fluent user
experience.
Furthermore. server-round-trips can be avoided to a bare minimum,
resulting in an overall more responsive application.
Thanks to technologies like Service Workers and Progressive Web
Apps, these applications can become almost
indistinguishable from native applications, especially on mobile (Android)
devices.
The Framework
The Angular framework enables us to write these single page
applications with ease. It comes with features like data-binding, change-detection,
forms, routing & navigation and an HTTP-implementation right out of the
box.
Angular was originally intended to be used with the programming
languages JavaScript, TypeScript and Dart. And although it is still possible to
use it with all of these languages, the by far most popular language of choice
became TypeScript.
I would highly recommend using TypeScript, as the other versions
are not only lacking documentation and community, but updates are also released
much later (months not days) than for the TypeScript version.
The Platform
Over time, the angular developers have developed a great ecosystem
around the framework.
Tools like the Angular-Cli, Angular Universal and Angular Material
got added to the project. These tools added great features like fast project
generation, server-side rendering, and stunning UI components, that are not
coupled with the core-framework itself, but completely optional.
That is why angular is referred to as a platform. It provides all
the tools, that you need, to develop great angular applications, without
relying too much on third-party libraries. Because of this opinionated
approach, most developers are using these tools, resulting in a great
documentation, community help, and blog posts.
Is it called AngularJS or Angular ?
Maybe one of the greatest downsides of angular, to me, is the
version and naming chaos that emerged after the Angular 2 release. Google
decided to row back from the terms Angular 2, Angular 4, Angular 5, but to
refer to them as just "Angular".
Don't get me wrong, having the universal "Angular" name
for all version 2+ was the right decision, in my opinion. But this more general
term makes searching (Google etc.) and finding the right information really
hard.
Angular
Features
A list of the most important features and benefits of Angular:
1.
Angular
supports multiple platforms: Angular is a cross-platform language. It supports multiple platforms. You can build different
types of apps by using Angular.
· Desktop applications: Angular facilitates you to create
desktop installed apps on different types of operating systems i.e. Windows,
Mac or Linux by using the same Angular methods which we use for creating web
and native apps.
·
Native applications: You can build native apps by using Angular with strategies
from Cordova, Ionic, or NativeScript.
· Progressive web applications: Progressive web
applications are the most common apps which are built with Angular. Angular
provides modern web platform capabilities to deliver high performance, offline,
and zero-step installation apps.
2.
High
Speed, Ultimate Performance: Angular is amazingly
fast and provides a great performance due to the following reasons:
·
Universal support: Angular can be used as a front-end web development tool for
the programming languages like Node.js, .Net, PHP, Java Struts and Spring and
other servers for near-instant rendering in just HTML and CSS. It also
optimizes the website for better SEO.
· Code splitting: Angular apps are fast and loads quickly with the new
Component Router, which delivers automatic code-splitting so users only load
code required to render the view they request.
· Code generation: Angular makes your templates in highly optimized code for
today?s JavaScript virtual machines which gives the benefits of hand-written
code.
3.
Productivity: Angular provides a better productivity due to its simple and powerful
template syntax, command-line tools and popular editors and IDEs.
· Powerful templates: Angular provides simple and powerful template syntax to
create UI view quickly.
· IDEs: Angular provides intelligent code completion, instant
errors, and other feedback in popular editors and IDEs.
· Angular CLI: Angular CLI provides command line tools start building fast,
add components and tests, and then instantly deploy.
4.
Full
Stack Development: Angular is a complete
framework of JavaScript. It provides Testing, animation, and Accessibility. It
provides full-stack development along with Node.js, Express.js, and MongoDB.
· Testing: Angular provides Karma and Jasmine for unit testing. B y
using it, you can check your broken things every time you save. Karma is a
JavaScript test runner tool created by Angular team. Jasmine is the testing
framework form unit testing in Angular apps, and Karma provides helpful tools
that make it easier to us to call our Jasmine tests whilst we are writing code.
· Animation Support: Angular facilitates you to create high-performance, complex
choreographies and animation timelines with very little code through Angular's
intuitive API.
· Accessibility: In
Angular, you can create accessible applications with ARIA-enabled components,
developer guides, and built-in test infrastructure.