Angular 2

Welcome Party

a [mostly] live coding presentation

Vitor Fernandes

 

Toptal Developer at KWAN: Love, Respect, Community

Organizer at AngularJS Portugal

 

 

github.com/vmlf01

linkedin.com/in/vfernandes

Agenda

  • Quick Start: Angular 2 Welcome App

  • Big Picture: Angular 2 Building Blocks

  • Adding Stuff to the App

    • Components, Events, Router, Forms, HTTP
  • Angular 2 Story

Quick Start:

Welcome App

Quick Start: Welcome App

  • Original Bootstrap Theme: Evento

 

 

 

  • AngularClass angular2-webpack-starter kit

 

 

 

http://shapebootstrap.net/item/1524963-evento-free-music-event-template/live-demo

https://github.com/AngularClass/angular2-webpack-starter

Quick Start: Welcome App

$ git clone https://github.com/vmlf01/angular2-hello-world

$ cd angular2-hello-world
$ git checkout step1
$ npm install
$ npm start

 

 

Quick Start: Welcome App

  • src/index.html

 

  • src/app/main/app.component.ts
    • @Component() decorator
    • selector
    • templateUrl
    • styleUrls

Quick Start: Welcome App

  • src/app/providers/data.service.ts
    • @Injectable() decorator

 

  • src/app/app-logo/app-logo.component.ts
    • inline template
    • inline styles

 

Quick Start: Welcome App

  • src/app/event-details/event-details.component.ts
    • @Input() decorator
    • attribute bindings
    • property bindings
    • event bindings

 

Quick Start: Welcome App

  • src/app/main/app.module.ts
    • @NgModule() decorator
    • Putting it all together
    • Application bootstrap

 

Big Picture:

Building Blocks

Big Picture: Building Blocks

Big Picture: Building Blocks

  • Components are the basic Angular building block
  • A Component is a highly cohesive loosely coupled part of the application UI
  • Easier to re-use
  • Easier to test

Big Picture: Building Blocks

  • Components contain:
    • Code
    • Template
    • Styling
    • Metadata

Big Picture: Building Blocks

  • Services are auxiliary pieces of code
    • Logging
    • Data access
    • Calculation logic
    • Validation logic
  • Services are singletons within their
    DI Container

Big Picture: Building Blocks

  • Angular modules consolidate components, services, directives and pipes into cohesive blocks of functionality
  • Every Angular app has at least one module: the root module
  • We can also load additional feature modules on-demand

Angular sidekick: TypeScript

  • TypeScript advantages:
    • Decorators
    • Types
    • Easier Class definition
    • ES2015 & ES.Next features now
    • Static checking
    • True IntelliSense

Adding a

Slideshow Component

(back to live coding)

Reacting to

Events

(back to live coding)

Reacting to Events

$ git checkout step2
$ npm start

 

 

Using Router

to Navigate Pages

(back to live coding)

Using Router to Navigate

$ git checkout step3
$ npm start

 

 

Handling

Forms & Validations

(back to live coding)

Handling Forms & Validations

$ git checkout step4
$ npm start

 

 

Talking

to the API

(back to live coding)

Talking to the API

$ git checkout step5
$ npm start

 

 

Angular 2 Story:
How Did We Get Here?

Angular 2 Story

  • Location: ng-europe October 2014
  • Scenario:
    • Angular 1.3 was just released, but...
    • Angular 2 takes center stage, and...
    • Igor Minar & Tobias Bosch do a presentation on Angular 2.0 Core by comparing it with Angular 1.3

Angular 2 Story

https://www.youtube.com/watch?v=gNmWybAyBHI

Angular 2 Story

https://www.youtube.com/watch?v=gNmWybAyBHI

Angular 2 Story

https://www.youtube.com/watch?v=gNmWybAyBHI

Angular 2 Story

https://www.youtube.com/watch?v=gNmWybAyBHI

Angular 2 Story

  • Complete armaggeddon:
    • Controller is dead
    • DDO is dead
    • $scope is dead
    • angular.module is dead
    • jqLite is dead

Angular 2 Story

  • No migration path announced
  • It's the end of the world as we know it
  • PANIC!
  • Companies don't know what to do
  • Developers don't know what to do

Angular 2 Story

  • 2 years later, here we are:
    • Angular 2 Final released September 2016
    • Angular 1.5.8 released July 2016
    • Angular 1 still very much alive
    • 700K Angular 2 vs 1.2M Angular 1 active visitors to Angular docs

Angular 2 Story

  • Angular is no longer just a web framework
  • Angular is an application platform
    • Browser
    • Server
    • Mobile
    • Desktop

Angular 2 Story

  • Angular 2 improvements over Angular 1:
    • Faster
    • Asynchronous module loading
    • Server-side initial rendering
    • RxJs support
    • Better tooling

Q & A

Next Steps

  • TypeScript
  • RxJs
  • Flux Architecture Pattern
  • Unit Testing
  • E2E Testing
  • Server-side Rendering
  • Asynchronous Module Loading

Additional Resources

  • https://angular.io/
  • http://blog.thoughtram.io/
  • http://onehungrymind.com/
  • https://www.barbarianmeetscoding.com/blog/categories/angular2-step-by-step/
  • http://courses.angularclass.com/p/angular-2-fundamentals
  • https://angular-university.io/course/getting-started-with-angular2
  • https://www.ng-book.com/2/

Sponsors

http://kwan.pt/

Sponsors

https://www.ng-book.com/2/

Other events

https://www.meetup.com/gdglisbon/events/234921618/

GDGLx Sessions #4

 

Angular:

One framework.

 

November 17, 2016

 

Community

meetup.com/angularjs-portugal

gitter.im/AngularPortugal/Home

Always looking for speakers!

Angular 2 Welcome Party

By Vitor Fernandes

Angular 2 Welcome Party

  • 7,086