AngularJS Advanced: how to structure and fine-tune HTML5 in the Real World applications

DATE: Thursday the 26th of March.

After the initial “Wow” phase, developers adopting Angular face many challenging choices about how to architect, design, decompose and implement production-ready applications. The workshop aims at sharing the experience gained in the development of several mobile and enterprise HTML5 applications.



The workshop is full-day (8 hours) from 9:00 to 18:00, with one hour lunch break.

c/o Polo Didattico | Piazza Oderico da Pordenone – 00145 – Rome

CHECK IN: 8:30 – 9:00

Super Early Bird: 105 €,from the 28 th of January to the 17 th of February;
Early Bird: 125 €,from the 18 th of February to the 4 th of March;
Full: 145 €, from the 5th of March to the end of the sales.


Carlo’s passion for Software Development began with his C128, then grew with Linux, Java/JavaScript, web & enterprise applications, and now to cloud & mobile. After a PhD and Research Univ.of Genoa and CNIT, an exciting time at startup Eptamedia, he’s now a Solution Architect and Senior Trainer at NIS srl. His communication style as an architect and trainer, both technically precise and able to present complex topics to an heterogeneous audience has been appreciated online (slideshare pres.on Hudson with 110Kviews) and at many JUG/Comm. events from Javapolis 2005 to Codemotion Rome.

The workshop is aimed at web developers who, after discovering the power of Angular, want to adopt it in real-world projects, but face a number of challenging choices about how to architect, design, decompose and implement production-ready applications.
The workshop shares the experience gained in the development of several mobile and enterprise HTML5 applications.It gives participants a solid understanding of what is needed to best take advantage of the “Angular Way” in structuring your application:
-Angular internals
-composability, directives, promises
-trade-offs and best practices


Architecture of AngularJS: how can it be so powerful?
-why angularjs is the future
-composition (of scopes), composition (of directives), composition (of
modules), composition (of filters)
-elements of the core library
-HTML compiler, module system and dependency injection

Example Application: Pizza 5 and Ice Cream 5

Advanced Application Structure
-how to structure an application
-splitting responsibilities between controllers, services, directives
-controller As syntax
-how to decouple controllers and still share data and interaction
Lab: from “fat” controller to slim controllers and services

Test support and Behavior-Driven-Development
-unit tests
-integration tests
Lab: unit testing the order cart controller

Services and Dependency Injection
-services vs factories vs providers
-mocking & http backend
Lab: writing and unit testing a service

How to write a directive
-basic example with static html output
-dynamic html output with a template
-embedding controllers in directive
-attribute binding
-isolated scopes
-unit testing directives

Lab: creating the <pizza> directive

Creating a custom self-standing html component
-lifecycle of a directive
-compile vs link
-Itegrating with non-angular code
-$apply / $digest

Accessing server side content
-differences between $http and $resource
-authentication and headers

Event handling
-event bus
-listening to events
-using events for coordinating decoupled services and page sections

Managing modules and dependencies
-module configuration
-module loading: static vs dynamic
-modular route configuration with ng-route
Lab: splitting the menu and cart modules

Advanced Forms: validation and filtering
-new Form API in Angular 1.3
-conditional styling
-writing custom filters/formatters
-using filters in controllers and services
LAB: unit testing a formatting filter

UI libraries overview: comparing and choosing between
-angular ui / ui router
-ng-grid and advanced grids
-Google Material design
-other widget libraries (KendoUI, Wijimo, Syncfusion etc…)

Best Practices
-learning resources
-roadmap towards Angular 1.4/2.0, Javascript/ECMAScript 6 and Web Components


With an hands-on approach, we will discuss what’s needed beyond the “Hello World”, in order to face the many challenges of developing a demanding application:
-designing module structure
-implementing robust apps with BDD tests
-maximizing productivity and maintainability by adopting the “Angular Way” (the architectural style of Angular itself) in your application code
-managing navigation
-achieving complex interaction between the various UI and logic elements without coupling them
-integrating non-angular code
-maximizing reuse and creating custom views by creating modular directives

The advanced AngularJS workshop is aimed at web developers with a
working understanding of HTML5 and Javascript, who, after discovering
the power of Angular JS want to adopt it in real-world projects and feel the need for learning a structured and productive approach to developing awesome HTML5 sites and apps.

Familiarity with HTML5 and working knowledge of JavaScript.

Participants are required to bring their own laptop. The labs require an HTML5 Browser (Chrome or Firefox), text editor or IDE, supporting HTML5, CSS3, JavaScript.JavaScript.


The workshop will be held only if the minimun number of attendees is reached

Back to workshops list

Main Sponsor