Blog

Home / Blog

A brief idea on Angular and what's new about this web-framework platform

Jason Li
Sr. Software Development Engineer
Skilled Angular and .NET developer, team leader for a healthcare insurance company.
February 14, 2020


Angular: Web Framework

Angular, a platform for mobile and web applications, is an open-source framework based on the TypeScript language. This framework created by the Angular Team at Google along with a community of expert individuals and corporations. Designing of Angular done as a complete rewrite of AngularJS (based on JavaScript language).

Characteristics of Angular

The main characteristics of Angular:

• Angular uses a hierarchy of components as its primary architectural characteristic and so, does not have a scope or controller concept.

• Angular uses different expression syntaxes for property and event binding.

• The core functionality of Angular is segregated into various modules: referred to as modularity.

• The TypeScript language, which Angular is based on, imparts certain features to the platform that includes static typing (with generics) as well as annotations.

• Angular features dynamic loading and asynchronous template compilations.

• For Angular, iterative call-backs are provided by RxJS; this limits debugging along with state-visibility. Any issues with debugging can be solved with ngReact or ngrx, which are reactive add-ons.

• Angular Universal runs all Angular applications on servers.

Angular Framework Versions up to version 8

The first version of Angular was coded in JavaScript, and hence it is known as the Angular JS framework. Declarative programming is used to create user interfaces and to connect software components; whereas, imperative programming defines an application's business logic. This forms the basis of Angular JS.

A structural framework for dynamic web apps, Angular JS uses HTML as a template language. The major features include data binding and dependency injection; this helps in eliminating unnecessary codes. The mismatch between static documents and dynamic applications is often solved with a library as well as frameworks. Angular JS minimizes the mismatch between document centric HTML and the needs of a new application made by HTML constructs. A construct referred to as directives, is used by Angular JS to teach the browser new syntax.

The second version, Angular 2.0, was introduced in October 2014. The controversial and problematic issues were resolved and then released again in September 2016. Then, Angular 4.0 was released (third version). It was named as Angular 4.0 as the router package was distributed as version 3.3.0. Angular 4 is backward compatible with Angular 2.0, as per the coding.

The features include the following:

• A smaller and more powerful library that aids in making HTTP requests.

• New router life-cycle events and conditionally disabling animations.

Angular 5.0 released on November 1, 2017, with key improvements that aids in supporting progressive web apps through a build optimizer. Angular 6.0, released on May 4, 2018, focused more on tool-chains and less on the underlying framework. This helps with quick Angular updates, which include Angular elements, Angular Material Starter Components, Angular Material with CDK components, ng updates, ng add-ons, CLI workspace, library support, animations performance improvements, tree shakable providers, and RxJS v6, to name a few. Angular 7, released on October 18, 2018, focused on updates regarding application performance such as Angular Material and CDK, Virtual Scrolling, and Improved Accessibility of selects that now supports Content Projection using web standard for custom elements along with dependency updates. The Angular 8, which was released on May 28, 2019, features differential loading for all the application codes along with dynamic imports for lazy routes, web-workers, TypeScript 3.4 support and Angular Ivy as an optional preview.

Angular Ivy optional preview includes the following:

• Code generated that is simple, easier to read and debug at runtime.

• The re-build time is faster than earlier versions.

• Improved payload size as well as template type checking.

• Backward compatibility with the previous version.

Angular 9

Angular 9, released on February 7, 2020, move all the required applications to use the ivy compiler along with runtime by default settings. For this new version of Angular, it has been updated to work with TypeScript 3.6 and 3.7.

Advantages offered by the Ivy compiler and runtime:

• Smaller bundle sizes, faster testing, and better debugging.

• An improvement in CSS (Cascading Style Sheets) class and style binding, type checking, build-times by enabling AoT (Ahead-of-Time) compiler: provides smaller bundles with faster rendering in the browser, and internalization.

• An ng Update: A more reliable and informative tool that helps in updating applications and their dependencies.

• Dependency injection: Very useful in assembling various related data services for applications; use of HTML (HyperText Markup Language) template for composing all required components.

» Components with HTML, which connect to the TypeScript Code for essential parts of the program, can be designed.

New features of Angular 9

Angular 9 made an Ivy compiler the default one for its runtime operations. So, what is Angular Ivy? Angular Ivy is code-name, for next-generation compilation. The newer version of Angular uses Ivy as the default compiler instead of the older one known as View Engine. AoT compilation with Ivy is faster than earlier versions; a major reason for using Ivy compiler.

Other features and improvements brought forth by Angular 9

Angular 9 offers new options for providedIn, for designing @Injectable service. This includes a platform that makes the services available and accessible in a special singleton platform injector, which is shared by all applications on a page. The newest version of Angular has component harnesses for ensuring that unit tests are correctly scoped and less brittle with implementation details abstracted away. The new components of Angular 9 enable the inclusion of YouTube and Google Maps capabilities into various applications. TypeScript 3.6 and 3.7 are supported along with improved performance for EventListeners.

Ivy Compiler

Performance of Ivy renderer is improved through various measures such as removing repeat global state accesses from i18n instructions and by excluding SafeDetection code. The @angular/localize package is added to an Angular CLI project through ng add. Better error messages are offered for unknown components and the Ivy renderer is flagged for allowing localize-translate, which allows the source locale to be specified. For improving the core performance, sanitization becomes tree-shakable (removing dead code) in the Ivy renderer. In Ivy, template type checking is changed to produce ts.Diagnostics for mending design issues. For the core, Angular adds on a new migration schematic as per a given plan. Several bug fixes have been made for the Ivy, compiler, core, and language services.

angular

All these improvements help small and large apps to save a considerable amount of size. Small, medium and large apps benefit from reduced factory sizes; thorough knowledge of what to use or what not to use among the Angular features are very helpful. Ivy improves stack trace for debugging issues and this can in turn help in useful template instructions with the new expressions. The ivy compiler and runtime are shown to provide improvements for various app handling styles. Catching bugs becomes easier with Ivy with the application of strict rules. A new Ivy compiler is faster and more secure by giving easy access to error messages. There is a considerable boost to the app build time with the performance of the Ivy compiler.

Internalization is a core feature of Angular. Angular 9 helps in improving build times by i18n substitutions. These substitutions allow the platform to be 10 times faster than before. Angular 9 comes with a more reliable ng update with the use of the latest CLI (Command-Line Interface) and clearer progress updates along with easier update debugging.

ProvidedIn

A @Injectable service in Angular should be given clear instructions as to where the injector is added. Two options of either platform or any are available for ProvidedIn with the latest version of Angular.

Component harnesses

Whenever a component library changes its implementation, all the tests that rely on these components need to be updated. Angular 9 comes with component harnesses that offer an alternate way to test these components.

IDE (Integrated Development Environment) and Language Service Improvements

Improvements are made to Angular language service extension on the Visual Studio Marketplace. The stability issues and many long-standing bugs have been taken care of along with a major overhaul of the architecture.

Angular 9 release switches applications to the Ivy compiler and runtime by default; introduces new and improved ways of testing components: one of the biggest updates Angular has ever made.

Updating previous Angular versions to Version 9

For a thorough updation process, it is recommended that the previous Angular versions be first upgraded to the latest version of Angular 8 before updating it to Angular 9.

Future Releases of Angular versions

The angular team will now be working on Ivy for smaller bundle sizes as well as a significant improvement in run-time. The next version will be backward compatible with Angular 9, with Google pledging to do twice-a-year upgrades.

Support Policy and Schedule

All major Angular releases are supported for around 18 months, which comprise of active support for 6 months. Regularly scheduled updates and patches are released during this period. 12 months of Long Term Support (LTS) follows afterward with focus on just critical fixes along with the release of security patches.

Wrapping Up

These are what are new in the field of Angular design and development with Angular 9 arriving in style. Angular 10 are queued up to be released in May with features such as small bundle sizes and fast run-times. The web framework platform, Angular keeps releasing new upgrades as well as versions for easy design and development of mobile & web applications.