The Angular World

Suguru Inatomi

2018-03-24
https://goo.gl/G3phq1
Agenda
1. Angular Introduction
2. Angular Roadmap
3. Angular & real world
1. Angular Introduction
-
A framework for web front-end app
-
A platform for integrated development
-
An ecosystem for developers
Angular is ...
Angular as a framework
Full-stack for modern web app
Official Packages
-
@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
-
Benefits
Angular as a platform
Angular Platform
-
Angular Language Service
-
Angular CLI (Schematics)
-
Stackblitz
-
codelyzer
Developer Tools
Angular Language Service
Types in the template


Angular CLI
Easy to develop Angular apps


codelyzer
tslint rules for Angular

Stackblitz


Angular Platform
-
Progressive Web Apps
-
Angular Service Worker
-
App Shell Pre-rendering
-
-
Ionic
-
Angular with Native APIs
-
-
NativeScript
-
Native app with Angular
-
Angular for Mobile
Progressive Web Apps
Angular CLI Integration

Ionic
Native app with Angular and WebView

NativeScript
Angular component => Native UI


Angular Platform
-
Angular Material
-
Component Dev Kit
-
Angular Elements
Development Kit
Angular Material
Material Design for Angular

Component Dev Kit
The Angular CDK gives developers solid, well-tested tools
to add common interaction patterns with minimal effort.

Angular Elements
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
-
Benefits
Angular as an ecosystem
> 1 million developers
ngAtlanta 2018 keynote
Large community
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
-
Angular release cycle
-
1 year, critical fixes and security patches
Angular LTS
-
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.
Angular vs AngularJS


Angular(JS) in Google

AngularConnect 2017 keynote
Angular in Production
ng-conf 2017 keynote

Angular in Japan
- ng-japan/who-use-angular-in-japan
-
23 companies are listed.
- Add your company!
2. Angular Roadmap
-
Experimental new ideas
-
Component Dev Kit
-
Schematics
-
Angular Elements
-
ngIvy
-
ABC
-
Angular Labs

Angular Elements
Angular for www
-
Angular components everywhere
-
PoC: Angular Material => CE
-
Usecase: UI library / Widgets
-
Introducing to angular.io
-
-
Early Adaptor: `yarn angular/elements-builds`

ngIvy
The 4th-generation
- Internal view engine renewal
- Goal
- Faster
- Smaller
- Simpler
- 3kB Hello World app
- Optional in v6

Angular Buildtools Convergence
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

- Build with Bazel
- Will be integrated to Angular CLI
- Angular Elements
- Will be published as first-party
- ngIvy
- Will be stable and default
Angular in 2018
3. Angular & real world
-
Component-oriented design
-
Functional programming
-
Browsers compatibility
-
Performance
-
SEO
-
PWA! PWA!
-
Hey! New web standard is coming!
Web frontend today

-
Single Page Application everywhere
-
Application Lifetime ≠ Page Lifetime
-
-
Mobile First => Mobile Only
-
Like more native app
-
Capability / Performance
-
-
Paradigm Shift
HTML Document => GUI Application
-
Component-based
-
Reusable view fragments
-
-
Functional / Immutable
- View = fn(State)
- Event-Driven
-
Avoid side-effects
-
Separation of concerns
-
Model-View-Whatever
-
DDD / Clean Architecture
-
Nothing new idea
Learn from predecessors
-
App-like behaviors
-
Icon on home screen
-
Splash screen
-
Device capabilities
-
Offline
-
Notification
-
Payment
-
-
Web (more reachable) +
Mobile (more conversion) => WIN!
More mobile-ish UX
Web for Business

-
More reliable
-
More capable
-
More performant
-
More maintainable
-
More scalable
Needs of Web
-
"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 / ...
-
Web Platform
MUST run everywhere

Use a framework
Angular for YOU
-
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!
-
App concerns
What should we think about?
Conclusion
-
Full-stack
-
Batteries included
-
Easy to learn
-
Qualified packages
-
Validated by Google
-
-
Integrated developer tools
-
Growing ecosystem
Why is Angular popular?
-
Angular Elements
-
Angular component as Custom Elements
-
-
ngIvy
-
3kB bundle for Hello World
-
-
Bazel
-
Blazing fast build tool
-
What are coming?
What can I do?
-
Web front-end is not simple
-
SPA is a GUI Application
-
-
Mobile! Mobile! Mobile!
-
Think about your product more
-
Outsourcing to framework
-
6/16 ng-japan 2018

Thanks!

Suguru Inatomi
The Angular World
By Suguru Inatomi
The Angular World
MANABIYA 2018
- 6,038