Single-Page Web Apps with AngularJS are Immensely Popular but is it Right for Your Business?
Kyle Mizell | 11/11/2015 | Application Development
The popularity of AngularJS on developer forums like Stack Overflow corresponds to a growing need in the marketplace. Businesses have taken notice of client-side frameworks and are actively seeking talent with AngularJS experience. As seen below, AngularJS is dramatically more prominent in job posts on Indeed.com than other single-page app frameworks.
What is so great about Angular?
And businesses like it too. As with any client-side framework, the “cost” of generating most of a web page is moved to the end user, and because all the dependencies are loaded upfront, the user suffers only minimal wait time between interactions, resulting in a fluid user experience. Shifting the load cost to the user allows businesses to operate their web applications with a much smaller footprint on their web servers.
Of course, AngularJS has deterrents as well as supporters. AngularJS supporters say its features are designed to work together better than other frameworks and that developers benefit from its flexibility and open-source community support. Conversely, AngularJS’s detractors say there’s difficulty finding front-end consultants specializing in AngularJS and that it’s actually an ill-conceived architecture.
Is AngularJS Right for Your Project?
Angular’s rising popularity is compelling. Some businesses are feeling pressure to switch to it or risk missing out on a great innovation that both creates an exciting user experience and reduces the strain on the business’s own web servers. In addition, companies want to keep their engineers engaged and excited by using new technologies. However, AngularJS is not right for every project.
The answer of whether it’s right to build your application with AngularJS depends on your business and the purpose and parameters of your application. Organizations including Ryanair, Domino’s, PayPal, Hawaiian Airlines, Mercedes-Benz, and Getty Images have dabbled with AngularJS and have found it beneficial to their enterprises. On the other hand, many organizations still find it beneficial to stick with server-side rendering because they want to maintain control of the performance of their server hardware. They rely on server-side rendering because client-side rendering is dependent on the performance of the end-user device (a cell phone or tablet, for example), which the organization has no control over.
When considering using AngularJS, here are some additional critical considerations:
- Business Logic: If your web properties rely on complex business logic, you will probably find significant advantages by going with a traditional, server-side architecture, as complex logic is more difficult to accomplish with modern front-end frameworks such as Angular. Factors include whether your sales are global, supply chain, taxation restrictions, shipping restrictions, and more. If too much logic needs to be processed on the front end, it will probably result in strange workarounds in your code and a cumbersome user experience.
- Security: Security can be a concern with front-end frameworks like AngularJS. This is due to the nature of maintaining session data on the client instead of the server. This can be mitigated by proper design and development practices, but considerable effort will be needed to ensure that secure data isn’t stored in insecure ways on the client. An additional security concern is out-of-date user data, specifically with sessions that have been logged out on the server but not yet on the client. In these cases, user data remains on the client’s end, and provisions need to be made to invalidate the data and clean it up. Server-side session management is much better at invalidating sessions and doing garbage collection
- SEO: Websites commonly have a sitemap, which is a static XML file placed on the server pointing to each of the pages of the website. Search engine crawlers such as Google’s look for the sitemap file to get instructions on crawling your website. If your website presentation layer is generated by frameworks like AngularJS, the routes (URLs) to your pages may be difficult to define, and deep linking might not be possible. Also, the presentation layer might have content that gets rendered after the URL has been accessed, which causes a poor result when being crawled by search engines — incomplete pages that get cached within the search engine. There are of course ways to mitigate issues like these, but again, it takes more effort and redundancy, and it complicates maintenance efforts.
So is AngularJS right for your project? Here are some guidelines in broad strokes:
Targeted marketing sites with immersive experiences? Consider AngularJS.
Single-page applications built with AngularJS might be a great solution for product marketing sites or microsites because the pages load very quickly and offer an immersive experience for the user. They’re very quick and responsive, an ideal attribute for sites like these that need to capture and maintain customer attention. As elements of the screen are clicked on, flashy UI-driven elements can appear immediately. With these sites, having even a one- or two-second lag for a page to appear is harmful.
Large e-commerce applications? Stick with traditional server-side software.
Web applications with light business rules? Your UI can leverage AngularJS while the backend remains more traditional.
For these applications, AngularJS will communicate to the backend systems through RESTful APIs. Supply-chain logic, payments, and so on are processed on the backend by a Java or .NET application or any other server-side platform/language, while the front end consists of an Angular application that responds to user interaction. Be careful, though: More often than not, it’s easy to build more logic into the front end over time because it’s the easiest place to make change, and this can become extremely problematic.
Conclusion – Will you Jump on the AngularJS Bandwagon?
AngularJS is a robust and powerful framework that can reduce operating costs and create a dynamic user experience for your customers. However, the decision to use a framework like AngularJS should only be made after a thorough evaluation of your end users, your staff and their skillsets, and the types of applications and systems you are supporting.
As with any technology, it is important to take into account the true purpose of your web application. Sometimes the right choice for your business is a modern front-end architecture, sometimes it’s a more traditional backend architecture, and sometimes it’s a hybrid solution. It’s important to consider all options and weigh the pros and cons without bias toward any solution.
Kyle Mizell has over 15 years of experience in web development specializing in application architecture, mobile, and e-commerce for enterprises. Kyle takes a straightforward approach to projects, setting clear expectations and combining dedication, quality, and productivity to translate business needs into elegant technical solutions. He is adept at working with both technical and non-technical people to drive innovation and actively keeps up with changes in technology in order to introduce new techniques and best practices. As a leader, Kyle believes in creating a team environment where people are empowered and workloads are balanced across the team.