Suguru Inatomi
2018-03-24
https://goo.gl/G3phq1
1. Angular Introduction
2. Angular Roadmap
3. Angular & real world
A framework for web front-end app
A platform for integrated development
An ecosystem for developers
@angular/core
@angular/core/testing
@angular/common
@angular/forms
@angular/http
@angular/router
@angular/platform-browser
@angular/platform-server
...
Batteries included!
Save time to find awesome 3rd-party packages
Easy to learn
Shareable knowledge in communities
Qualified
Always maintained, well-tested and up-to-date
Angular Language Service
Angular CLI (Schematics)
Stackblitz
codelyzer
Types in the template
Easy to develop Angular apps
tslint rules for Angular
Progressive Web Apps
Angular Service Worker
App Shell Pre-rendering
Ionic
Angular with Native APIs
NativeScript
Native app with Angular
Angular CLI Integration
Native app with Angular and WebView
Angular component => Native UI
Angular Material
Component Dev Kit
Angular Elements
Material Design for Angular
The Angular CDK gives developers solid, well-tested tools
to add common interaction patterns with minimal effort.
Angular component as a Custom Elements
Good for team development
Angular CLI: Collection of best practices
codelyzer: Keep code clean
UI components
Codebase sharing
Web app / Native app
Web Components
ngAtlanta 2018 keynote
ngAtlanta 2018 keynote
Semantic Versioning
Major.Minor.Patch
Time-based Releasing
Patch / week
Minor / month
Major / 6 months
Validated at Google
Google uses master HEAD version
1 year, critical fixes and security patches
Angular (a.k.a. Angular v2+) is majority.
AngularJS (a.k.a. Angular v1) is (nearly) over.
v1.7 (June): Final version
3 years LTS: 2018-07-01 => 2021-06-30
No reason to choose AngularJS today.
AngularConnect 2017 keynote
ng-conf 2017 keynote
Experimental new ideas
Component Dev Kit
Schematics
Angular Elements
ngIvy
ABC
Angular for www
Angular components everywhere
PoC: Angular Material => CE
Usecase: UI library / Widgets
Introducing to angular.io
Early Adaptor: `yarn angular/elements-builds`
The 4th-generation
or "Angular + Bazel + Closure compiler"
Toolchain used at Google
Fast / Scalable / Multi-Language / Extensible
Used for Angular apps @ Google
Used for Angular packages
Early Adaptor: http://g.co/ng/abc
Component-oriented design
Functional programming
Browsers compatibility
Performance
SEO
PWA! PWA!
Hey! New web standard is coming!
Single Page Application everywhere
Application Lifetime ≠ Page Lifetime
Mobile First => Mobile Only
Like more native app
Capability / Performance
HTML Document => GUI Application
Component-based
Reusable view fragments
Functional / Immutable
Avoid side-effects
Separation of concerns
Model-View-Whatever
DDD / Clean Architecture
Learn from predecessors
App-like behaviors
Icon on home screen
Splash screen
Device capabilities
Offline
Notification
Payment
Web (more reachable) +
Mobile (more conversion) => WIN!
Web for Business
More reliable
More capable
More performant
More maintainable
More scalable
"Web" is NOT a single environment
Browsers: Chrome / Safari / Edge / Firefox / ...
Versions: Safari 8 / 9 / 10
OSs: iOS Safari / Android Chrome
Standardization vs Implementation
Polyfill / Downpile
=> Abstract browser-dependent code
React / Angular / Vue / ...
MUST run everywhere
Blackbox of complex parts
DOM rendering
Web standards interop
Service Worker
etc
Easy, maintainable and scalable development
Think only about your app
Architecture
State management
Component design
User Experience
For loveable and valuable product
Not Angular's job
It's a Front-end engineer's job!
What should we think about?
Full-stack
Batteries included
Easy to learn
Qualified packages
Validated by Google
Integrated developer tools
Growing ecosystem
Angular Elements
Angular component as Custom Elements
ngIvy
3kB bundle for Hello World
Bazel
Blazing fast build tool
Web front-end is not simple
SPA is a GUI Application
Mobile! Mobile! Mobile!
Think about your product more
Outsourcing to framework
Suguru Inatomi