Provoke

The Business of Angular 2

Written by Alex Winn, Software Developer at Provoke. 

In 2017 consumers are picky. Our world of drone-delivered groceries and instantly-gratifying, text-based communication has taught us that the second we’re not having an intuitive and immediately digestible experience with a piece of software, we can dump it and move on.

To compound the difficulty of consumer pickiness, just a single misstep in user experience can cause thousands of users to jump ship and take their clicks, impressions, and ultimately their dollars with them. 

) Even the top 10% of apps only maintain an average of 50% of their users month to monthEven the top 10% of apps only maintain an average of 50% of their users month to month.

To avoid the tragic, long-term effects of a user experience misstep and counter the demanding nature of a discerning user base, many organizations have adopted an agile development process of adaptation, evolution and continuous rapid improvement. If a giant piece of software is suddenly made up of many smaller pieces of software that work in unison, improvement and adaptation can happen much more quickly. Angular 2, In my opinion, is the embodiment of agile development.



So Angular 2 – what is it?

Angular 2 is a JavaScript framework for developing front end web applications. The major benefit of Angular 2 is decoupling the dynamic and highly subjective user experience from the more static business logic within an application.

Consider a consumer facing app. Likely, it has one core purpose — to sell a product, present information to a user or otherwise offer some sort of service. This core purpose is represented by the more static business logic, consisting of database interaction, security concerns and methods to handle the two. The app’s core purpose will likely not change over its lifetime.

Opposite to an application’s business logic, we have the user interface. The UI is everything a consumer sees and interacts with. It is more subjective, and more likely to need quick improvements and adaptation.

In an application where the UI and the business logic are tightly linked, even small UI changes can be very complex, possibly presenting unknown variables and requiring retesting across the entire application. 

However, using Angular 2 to decouple the UI from the business logic allows changing an app’s UI to happen faster , and independently from the app’s business logic. In fact, with Angular 2, an application’s UI does not even need to be part of the same code base as the business logic. This means an application’s business logic could be developed separately, without ever being aware of the UI, and the UI can be developed based on just the architecture of the business logic.

Using Angular 2 in this way means the consumer facing portion of an application can be completely focused on user experience. It can be adjusted, or even completely overhauled independently, while database interactions and security implementation can remain untouched. This speeds up and simplifies agile development by removing extraneous complexity and unknown variables and also makes testing changes more simple.

Angular 2 takes the idea of compartmentalization even further with its use of components. Components can be thought of as independent building blocks within the UI that can be reused throughout the application. A simple example of a component is the “Add to cart” button on a website. No matter what product you may be looking at on that site, the “Add to cart” button looks and acts the same. However, if the “Add to cart” button suddenly needed to take users to a different page than it did in the past, Angular 2 allows us to isolate the component and make a single  change in one place, rather than in many places across the UI. This results in changes taking less time and reaching a higher consistency.



What else can it do?

Other major advantages of Angular 2 include ease and consistency of development, quality of support documentation available, and an open source community that has strongly embraced this style of development.

In the interest of consistency, Angular 2 primarily uses TypeScript, a superset of JavaScript that is based on the code consistency of the C# language. It deviates from traditional JavaScript frameworks in that it enforces object-oriented architecture and semantics. While this may require a small adjustment from a JavaScript mindset, ultimately, it normalizes code style across a development team and enforces better coding practices. This generally increases productivity and eliminates small mistakes.

As for ease of use, Angular 2 is touted as an “integrated ecosystem”, meaning it is meant to be browser and device agnostic.

In the past, an application may have required multiple iterations for phones, tablets and desktops. It can now be built once to work on all modern browsers and devices concurrently. Fewer developers can work for less time to make a device-inclusive application.

Angular 2  includes native accessibility tools, such as semantic markup, keyboard accessibility, and visual assistance to help accommodate the estimated 15-20% of the population who are living with a disability of some kind. It also includes native security tools to prevent common scripting attacks such as cross-scripting, (XSS) cross-site request forgery, (CSRF) and cross-site script inclusion (XSSI). This way, concerns that may have otherwise taken huge amounts of development time can be cast aside, as they have already been addressed. 

Beyond these features, some of Angular 2’s greatest attributes come in the form of the support that has been built around it. The Angular frameworks were conceived and built by Google, and utilize TypeScript, which is developed and maintained by Microsoft. The combined resources of these two tech mainstays means the documentation and wealth of knowledge behind both technologies is vast and easily accessible.

Angular 2 also has enormous support from the open source community, with free, production-ready modules and libraries being developed every day. Many of these modules are built and maintained by large reputable tech companies, and their use in a production application is increasingly low risk.


TLDR!

By utilizing Angular 2 as an application’s front end framework, the development and maintenance becomes simplified, and an organization can lower the time involved in the development and testing process. This ensures a quicker time to market and the highest quality web, mobile and desktop experience , overall offering the most cost efficient, customer focused solution. 

                                      









Sources

WHO. "Report on Disability". 2011

Eurostat. "Prevalence of basic activity difficulties or disability". 2012

US Cesus Bureau. "Anniversary of Americans with Disabilities Act: July 26". 2012

Comments powered by Disqus