Skip to main content

Alfresco Blog

Building a New Application Developer Experience

Date: May 10, 2016
Author: John Newton
Category:Power of the Platform

The very nature of what is an application and what is a web page has been changing rapidly the last few years. With the use of HTML5 and a powerful Javascript core, the modern browser is becoming much more than a window to the web. It is now becoming an application operating system supporting everything an application needs to interact with the user - logic, storage, layout and responsiveness. Business logic and presentation are lifted out of servers and brought closer to the user. Developers need to care less about DOMs and layout and concentrate on responsive design and simple logic to engage users. Servers will be for services like content and process, not layout and design. We are moving from a world of web pages to a world where everything is an app.

This is a profound shift at a time of many profound shifts. Organizations are now moving quickly to adopt a new generation of digital technologies and applications to engage with customers, make their employees more productive and transform how they do business. Mobile is often cited as one of “nexus of forces” technologies driving this change and companies are struggling to find ways to quickly and adaptively create new mobile applications. This is the impetus driving web giants like Google, Facebook, Twitter, LinkedIn and others to create a new way of building and evolving faster and more usable applications. In order to build new responsive applications out quickly, these organizations have been building new Javascript frameworks and influencing the development of the browser to become more powerful and more adaptive to the ways users use their devices.

AngularJS is one such library that was created by Google and available as open source. Angular is more than a Javascript library in that it is a framework for creating responsive, adaptive applications. The Angular framework supports a client-side architecture and a rich set of components for simplifying the development and testing of applications using Responsive Web Design. Angular is particularly adept at building data-rich and process-intensive applications. The ecosystem around Angular is hard to ignore as many build, test and continuous deployment tools are constantly being developed. In addition, there are many component libraries and examples as well. The number of new developers learning AngularJS is staggering. Thousands of web sites, such as NBC, Walgreens, Intel and Sprint, are now using Angular to power very dynamic sites that run well on mobile devices. See MadeWithAngular for more.

We have experimented with many JavaScript frameworks and believe that AngularJS is the best framework to support our customers’ and partners' application development efforts. The type of data-oriented applications that Angular supports match the application requirements of content and process intensive applications. Many of our leading edge customers are already employing Angular in their digital initiatives. The vast majority of our partners and system integrators are already developing or investing in Angular as one of their key tools. Alfresco Activiti has been the first Alfresco system to use AngularJS as part of its application framework for its process console, process designer, form designer, and process runtime. We also believe that it will make it far easier to find people who know how to develop Alfresco One and Alfresco Activiti applications as AngularJS will be the primary user interface development framework rather than any proprietary framework.

Material Design, a user experience paradigm and design language developed by Google, was another important consideration as AngularJS supports Material Design through extensions. Material Design was born out of the frustration at Google of having too many different user experiences across many product lines. Google designed it collaboratively to create a common language for expressing user experience, which should benefit our users as well. According to Lisa Tyerman, Alfresco’s Director of User Experience, “Material Design marries classic design principles with technology to provide intuitive and innovative interactive experiences. It’s open and proven. It’s a single system that provides a unified experience across platforms and devices and it was designed, tested, extended, and adopted by many, many designers, researchers, and developers.”

Our objective is to build a full development environment to speed the development of responsive content and process applications using AngularJS. To do this, we will be adopting the most popular tools for building Angular applications as well as popular components. We will support the latest version of AngularJS, Angular2, which is a substantial evolution of the framework that is entirely component-based. Angular 2 is imminent and promises to provide great support for responsive applications and Material Design. In addition, we will be creating example applications, such as our next major content management application, which will be a canonical example of how to build an Angular application using Alfresco and Activiti.

We have tasked a team to begin working with our open source community as we develop our application framework and examples of how to use it. We will be collecting and building new components to fit within the new Angular framework. We will reuse as much as possible that already exists in open source and build whatever is needed to fill in the gaps. Our goal is that if you know how to build Angular applications, you will know how to build Content and Process applications on Alfresco One and Activiti. Later, we will deliver low-code development environments that make it even easier to develop applications.

We are excited about what AngularJS can do for developers building new digital applications exploiting content and process. We believe that we can reduce the time to value of new application development substantially. However, I do want to emphasize that we will continue supporting and developing our current application framework around Share using the Surf and Aikau web frameworks. These are important to us and to our customers. We will also be exploring the interoperability of Angular and Share for the future.


Share this page on Twitter Share this page on Facebook Share this page on LinkIn Share this page on Email