Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Angular‘s Future with Ivy @ngPoland 2020
Search
Manfred Steyer
PRO
November 19, 2020
Programming
250
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Angular‘s Future with Ivy @ngPoland 2020
Manfred Steyer
PRO
November 19, 2020
More Decks by Manfred Steyer
See All by Manfred Steyer
Beyond Chatbots: Agentic UI with Open Standards @W-JAX 2026, München
manfredsteyer
PRO
0
56
Architecture as Executable Contract: Agents Respecting Your Architecture @W-JAX 2026, München
manfredsteyer
PRO
0
140
A2UI as an Architecture Question: Agentic UI Between AI Freedom and Control
manfredsteyer
PRO
0
75
Agentic UI Requires Standards: How AG-UI, A2UI, and MCP Apps Play Together
manfredsteyer
PRO
0
83
AI-Ready Angular Architectures Architecture as Executable Contract
manfredsteyer
PRO
0
99
Human in the Loop Beyond Approval: Toward True Collaboration @FrontMania 2026 in Utrecht
manfredsteyer
PRO
0
110
Agentic UI: Where the Agent meets the User @FrontMania 2026 in Utrecht
manfredsteyer
PRO
0
110
A2UI as an Architecture Question: Agentic UI Between AI Freedom and Control
manfredsteyer
PRO
0
120
AI-Ready Angular Architectures Architecture as Executable Contract
manfredsteyer
PRO
0
300
Other Decks in Programming
See All in Programming
Performance Optimization With LLMs
xleitix
0
240
作って学ぶSpring BootのAuto Configuration / JJUG Night Seminar 2026-10-19
rshindo
0
220
PumaからFalconに移行したRailsアプリケーションでの実践
falcon8823
0
360
FactoryBotをやめればRSpecは速くなるのか?
yuta_onishi_97
0
1.6k
Herb in Rails 8.2: Your ERB views, now HTML-aware @ Kaigi on Rails 2026, Tokyo, Japan
marcoroth
2
420
作れるエンジニアから、価値を届けるエンジニアへ
ryunakayama
1
240
複数ドメインを一つのアプリに統合するFlutterの設計と運用_FlutterKaigi2026登壇資料(須永高弘)
takahirosunaga
0
160
AIが実装を担う時代の「技術設計」と「チームマネジメント」
kamina_zzz
2
210
全ての永続トークンを、生まれる前に消し去りたい!
sylph01
3
1.7k
[DroidKnights 2026] Workflow AX: From Auto-Documented Policies to E2E Testing
raeminkang
0
540
Vapor Mode でアクセシビリティは 壊れないか検証した話
fuqda
1
330
Seven New Principles of Software Engineering
yegor256
0
460
Featured
See All Featured
Speed Design
sergeychernyshev
33
2.2k
The Curious Case for Waylosing
cassininazir
1
610
Accessibility Awareness
sabderemane
1
290
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
123
22k
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
800
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.4k
Un-Boring Meetings
codingconduct
0
490
Prompt Engineering for Job Search
mfonobong
0
580
How to Think Like a Performance Engineer
csswizardry
28
2.9k
Rails Girls Zürich Keynote
gr2m
96
14k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
1.1k
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2.2k
Transcript
@ManfredSteyer ManfredSteyer Manfred Steyer, ANGULARarchitects.io Angular‘s Future with Ivy: Outlooks
and Prophecies
@ManfredSteyer Ivy Compiler Leads to Smaller Bundles Up to 40%
less bundle size!
@ManfredSteyer
@ManfredSteyer DEMO
@ManfredSteyer
@ManfredSteyer Contents Lazy Components Dynamic Components Higher Order Components Standalone
Components Zone-less Angular
@ManfredSteyer Manfred Steyer
@ManfredSteyer
@ManfredSteyer Lazy Load an Ivy Component import('../dashboard-tile/dashboard-tile.component').then(m => { […]
}
@ManfredSteyer Lazy Load an Ivy Component import('../dashboard-tile/dashboard-tile.component').then(m => { const
comp = m.DashboardTileComponent; […] }
@ManfredSteyer Lazy Load an Ivy Component import('../dashboard-tile/dashboard-tile.component').then(m => { const
comp = m.DashboardTileComponent; const factory = this.cfr.resolveComponentFactory(comp); […] } ComponentFactoryResolver (Injected)
@ManfredSteyer Lazy Load an Ivy Component import('../dashboard-tile/dashboard-tile.component').then(m => { const
comp = m.DashboardTileComponent; const factory = this.cfr.resolveComponentFactory(comp); const compRef = this.viewContainer.createComponent( factory, null, this.injector); } Get via @ViewChild(…)
@ManfredSteyer DEMO
@ManfredSteyer
@ManfredSteyer Why Does This Work with Ivy? With Ivy, the
component is self-describing Remember: Component.ɵcmp Principle: Locality Before Ivy: Metadata within NgModules
@ManfredSteyer Potential Lazy Loading ;-) Partial Hydration
@ManfredSteyer Don't use them in production! No guarantees these features
will ever land in Angular!
@ManfredSteyer
@ManfredSteyer Dynamic Component export function create() { […] }
@ManfredSteyer Dynamic Component export function create() { class DynamicComponent implements
OnInit { […] } […] }
@ManfredSteyer Dynamic Component export function create() { class DynamicComponent implements
OnInit { […] } […] DynamicComponent.ɵcmp = […]; […] }
@ManfredSteyer Dynamic Component export function create() { class DynamicComponent implements
OnInit { […] } […] DynamicComponent.ɵcmp = […]; return DynamicComponent; }
@ManfredSteyer Higher-Order Component export function create(otherComponent: Type<any>) { class DynamicComponent
implements OnInit { […] } […] DynamicComponent.ɵcmp = […]; return DynamicComponent; }
@ManfredSteyer Higher-Order Component export function create(otherComponent: Type<any>) { class DynamicComponent
implements OnInit { […] } […] DynamicComponent.ɵcmp = […]; return DynamicComponent; } Call otherComponent in template function
@ManfredSteyer DEMO
@ManfredSteyer Potential More dynamic Framework extensions
@ManfredSteyer
@ManfredSteyer Composing Components DashboardTileComponent 3x BarComponent
@ManfredSteyer Defining a Component's "Neighborhood" DashboardTileComponent.ɵcmp
@ManfredSteyer Defining a Component's "Neighborhood" DashboardTileComponent.ɵcmp.directiveDefs = [ […] ];
@ManfredSteyer Defining a Component's "Neighborhood" DashboardTileComponent.ɵcmp.directiveDefs = [ BarComponent.ɵcmp ];
Type Assertions ("type casts") not shown here …
@ManfredSteyer Grouping Components import { BarComponent } from "./bar.component"; export
const BAR_COMPONENTS = [ BarComponent, […] ]; index.ts
@ManfredSteyer @Component({ […], deps: [ ...BAR_COMPONENTS ] }) export class
DashboardTileComponent { […] } Proposal
@ManfredSteyer DEMO
@ManfredSteyer
@ManfredSteyer Bootstrapping platformBrowserDynamic().bootstrapModule(AppModule);
@ManfredSteyer Bootstrapping ɵrenderComponent(MyAngularComponent);
@ManfredSteyer Potential Project Structure: Libs and/or Barrels (index.ts) Standalone Components
-> Web Components
@ManfredSteyer
@ManfredSteyer What is Zone.js? Key to automatic change detection Monkey-patches
all browser objects
@ManfredSteyer Downsides 100+ KB (uncompressed): Web Components? Money Patching: Magic
Cannot monkey patch native async/ await (ES 2017)
@ManfredSteyer Mark Components as Dirty import { ɵmarkDirty } from
'@angular/core'; […] ɵmarkDirty(this /* <-- Component */);
@ManfredSteyer DEMO
@ManfredSteyer
@ManfredSteyer
@ManfredSteyer
@ManfredSteyer
@ManfredSteyer
@ManfredSteyer
@ManfredSteyer Conclusion Fine grained lazy loading --> Partial hydration Dynamic
and higher order components --> Framework extensions Standalone components --> Structure with barrels and libs Zone-less: Future-proof General: More lightweight
@ManfredSteyer "Your future hasn't been written yet!" Emmet Brown, PhD
@ManfredSteyer d Slides & Examples Public: Frankfurt, Munich, Vienna In-House:
everywhere