Wassim Chegham PRO
Senior Developer Advocate @Microsoft ★ Angular contributor ★ Bazel contributor ★ GDE @Google ★ creator of @itsjustangular / hueaction.dev / ngx.tools / xlayers.dev / angular.run / thundr.dev
Exciting things in 2019
🎉🎊✨ for Angular ✨🎊🎉
Bazel
Schematics
CDK
Observables
Angular Elements
Ivy
Google Developer Expert
for the Angular core team
Core Team (ESM Modules)
Node.js Foundation
Do open source at manekinekko
SFEIR
Head Of Open Source Program Office
for the Google Assistant team
for the Google Cloud Platform teams
Google Developer Expert
Google Developer Expert
Tweet at @manekinekko
Blog at @wassimchegham
Wassim Chegham
@ManekiNekko
Bazel:
Build like Google
Fully incremental, Local & distributed caching and parallel execution
Multi or Monorepo, Any size codebase, and Any size group
TypeScript, Go, Java, SASS..., Windows, MacOS, and Linux
Schematics:
Extend Angular CLI
Component Dev. Kit:
UI Components Building Blocks
Observables as a Standard: Streams everywhere
map()
filter()
reduce()
document
.querySelector("#img")
.on("load")
.subscribe(e => { ... })
Angular Elements:
Angular as Custom Elements
Angular
Component
Custom
Element
<cheese-burger>
<hamburger-buns ketchup="2ts">
<lettuce-leaf></lettuce-leaf>
<pickled-cucumber></pickled-cucumber>
<chili-pepper></chili-pepper>
<caramelized-onion></caramelized-onion>
<bacon-strips cooked="true"></bacon-strips>
<american-cheese slice="2"></american-cheese>
<ground-beef pound="1"></ground-beef>
</hamburger-buns>
</cheese-burger>
Angular
Component
Custom
Element
registerAsCustomElements([SearchComponent], () =>
platformBrowserDynamic()
.bootstrapModule(SearchModule)
);
Ivy:
Angular's new Renderer
import { Component } from '@angular/core';
@Component({
selector: 'app-root',
template: `
<h1>
app, {{title}}
</h1>
`,
styleUrls: ['./app.component.css']
})
export class AppComponent {
title = 'works!';
}
import * as core from '@angular/core';
export class AppComponent {
static ngComponentDef = core.ɵdefineComponent({
type: AppComponent,
tag: 'app-root',
template: template: (rf: core.ɵRenderFlags, ctx: ManualComponent) => {
if (rf & 1) {
core.ɵE(0, 'h1');
core.ɵT(1, 'app, ');
core.ɵT(2);
core.ɵe();
}
if (rf & 2) {
core.ɵt(2, ctx.title);
}
},
factory: () => new AppComponent()
})
}
Â
Faster Builds with Bazel
Extend CLI with Schematics
UI Components with CDK
Observables as a Standard
Angular Components as CE
Faster Renderer: Ivy
Elements Slot Support
Material Design 2018 Visual Refresh
@angular/labs
@angular/fire
CLI Command Reference
By Wassim Chegham
This talk was given at Criteo (Paris) during the Angular X Paris meetup. More details: https://www.meetup.com/AngularX-Paris/events/254271845/
Senior Developer Advocate @Microsoft ★ Angular contributor ★ Bazel contributor ★ GDE @Google ★ creator of @itsjustangular / hueaction.dev / ngx.tools / xlayers.dev / angular.run / thundr.dev