SlideShare a Scribd company logo
React tools
for better
Angular apps
Martin Hochel
@martin_hotell
Angular Vienna
Vienna ,AT
Hello Vienna !
▪ @ngPartyCz meetup founder
▪ Author of ngMetadata
▪ Member of @skate_js, @ngParty
▪
▪
Martin Hochel
Principal SE, GDE
Prague / Czech Republic
@martin_hotell
github.com/Hotell
Fight !
Fight
leads
to the dark side
Twi r ne m a s
We can be all friends !
How ?
Tools Architecture
Libraries
Baseline
CLI Tools
Libraries
Architecture
Disclaimer: Tombstones ahead
sorry about that
Tools
Task runner/package manager
Tools: task runner
Tools: task runner
Tools: package manager
Formatting
Tools: Formatting
T li
Formatting rules:
● max-len,
● no-mixed-spaces-and-tabs,
● keyword-spacing,
● comma-style.
Code-quality rules:
● no-unused-vars,
● no-extra-bind,
● no-implicit-globals,
● prefer-promise-reject-errors
Tools: Formatting
Tools: Formatting conflicts with linter
Tools: Formatting - let robots do the work
Unit Testing
Unit Testing
Kar
Jas
Unit testing
Unit testing: add Jest to @angular/cli
Unit testing: speed
karma-chrome:
14.911s
karma-phantomjs:
13.119s
jest:
4.970s
Unit testing: Jest - Snapshots
Unit testing: Jest - Interactive watch mode
Unit testing: Jest - much more awesomeness
- Powerful mocking features ( ES2015 mo s, as s )
- Code coverage - 0CJS `jest --coverage`
- Pluggable ( run Puppeteer with Jest )
- Huge ecosystem
- jest-axe ( a11y )
- jest-images-snapshots
E2E Testing
E2E Testing
Pro c
Sel u
E2E Testing
A node.js tool to automate
end-to-end web testing
Ultimate cure for your E2E testing sickness,
MUDr. TestCafe ⚕
E2E Testing: add TestCafe to @angular/cli
E2E
demo
E2E Testing: summary
- TestCafe ( Fast, 100% reliable, just NodeJS ! )
- Windows, MacOS, Linux
- Chrome, Firefox, Safari, Opera, Edge, IE, Custom
- CI integration
- TypeScript
Components
development/catalogue
Components development
Storybook
Components dev: add Storybook to @angular/cli
Angular Vienna - Use React tools for better Angular apps
Storybook: write a Story
Storybook: Component stories
Architecture
Components
Components: architecture
HOC f(C)=> C.f @Directive
React.Component @Component
Inline/External CSS Inline/External CSS
render ( JSX ) Inline template
Immutable props ChangeDetectionStrategy.OnPush
Components: architecture
Sta s om n
Sta l o p t
Mozart
State Management: types
Context API @Injectable
this.state @Component/@Directive
FLUX( Redux ) FLUX( Redux )
Libraries
Libraries: Redux
Libraries: Handling side effects
Handling side effects via Epic
Component
Reducer
Action
State
Epic
Service
Server
Action
Actions in,
Actions out
Action
Libraries: Axios
Summary
Summary: What did we learn today ?
- Common JS ecosystem:
- Tools
- Architecture
- Libraries
Kar
Jas
T li
Pro c
Sel u
Better CLI Tools
Libraries
Architecture
● Immutable
● Reactive one way
data flow
Summary: OSS
● Starter
● Example app
● Article
Custom Schematics ( that you’re looking for )
● @martin_hotell/schematics
Custom Schematics ( that you’re looking for )
Summary: BFF
Thank you ! Martin Hochel
@martin_hotell
Ad

Recommended

Use React tools for better Angular apps
Use React tools for better Angular apps
Martin Hochel
 
Testing of React JS app
Testing of React JS app
Aleks Zinevych
 
How to go about testing in React?
How to go about testing in React?
Lisa Gagarina
 
Meetup React Sanca - 29/11/18 - React Testing
Meetup React Sanca - 29/11/18 - React Testing
Augusto Lazaro
 
Unit Testing your React / Redux app (@BucharestJS)
Unit Testing your React / Redux app (@BucharestJS)
Alin Pandichi
 
Building End-to-End Apps Using Typescript
Building End-to-End Apps Using Typescript
Gil Fink
 
Alt Dot Net Usergroup: Does the world end if you stop using Visual Studio?
Alt Dot Net Usergroup: Does the world end if you stop using Visual Studio?
Garry Stewart
 
Yet Another Continuous Integration Story
Yet Another Continuous Integration Story
Anton Serdyuk
 
Integration of automation framework with ci tools
Integration of automation framework with ci tools
vodQA
 
DDD with Behat
DDD with Behat
Anton Serdyuk
 
C# 6
C# 6
Pascal Laurin
 
The state of Jenkins pipelines or do I still need freestyle jobs
The state of Jenkins pipelines or do I still need freestyle jobs
Andrey Devyatkin
 
Building End to-End Web Apps Using TypeScript
Building End to-End Web Apps Using TypeScript
Gil Fink
 
It's all about behaviour, also in php - phpspec
It's all about behaviour, also in php - phpspec
Giulio De Donato
 
Android clean architecture workshop 3h edition
Android clean architecture workshop 3h edition
Jorge Ortiz
 
BDD in PHP - Behat
BDD in PHP - Behat
Łukasz Kużyński
 
What can possibly go wrong if i dont e2 e test my packages?
What can possibly go wrong if i dont e2 e test my packages?
Juan Picado
 
Php[tek] 2016 - BDD with Behat for Beginners
Php[tek] 2016 - BDD with Behat for Beginners
Adam Englander
 
Bootiful Reactive Testing with Mario Gray
Bootiful Reactive Testing with Mario Gray
VMware Tanzu
 
React native introduction (Mobile Warsaw)
React native introduction (Mobile Warsaw)
Jarek Potiuk
 
45 Tools to Boost Your Front-End
45 Tools to Boost Your Front-End
Nicolas PENNEC
 
2310 b xb
2310 b xb
Krazy Koder
 
Hidden Dragons of CGO
Hidden Dragons of CGO
All Things Open
 
Why don't you Groovy?
Why don't you Groovy?
Orest Ivasiv
 
Easy form creation and validation with Formjack
Easy form creation and validation with Formjack
slicejack
 
.NET compiler platform codename Roslyn
.NET compiler platform codename Roslyn
Piotr Benetkiewicz
 
Building Better AngularJS 1.X Apps With TypeScript
Building Better AngularJS 1.X Apps With TypeScript
ColdFusionConference
 
Daniel Steigerwald - Este.js - konec velkého Schizma
Daniel Steigerwald - Este.js - konec velkého Schizma
Develcz
 
Use React tools for better Angular apps
Use React tools for better Angular apps
Martin Hochel
 
Frontend training
Frontend training
Adrian Caetano
 

More Related Content

What's hot (20)

Integration of automation framework with ci tools
Integration of automation framework with ci tools
vodQA
 
DDD with Behat
DDD with Behat
Anton Serdyuk
 
C# 6
C# 6
Pascal Laurin
 
The state of Jenkins pipelines or do I still need freestyle jobs
The state of Jenkins pipelines or do I still need freestyle jobs
Andrey Devyatkin
 
Building End to-End Web Apps Using TypeScript
Building End to-End Web Apps Using TypeScript
Gil Fink
 
It's all about behaviour, also in php - phpspec
It's all about behaviour, also in php - phpspec
Giulio De Donato
 
Android clean architecture workshop 3h edition
Android clean architecture workshop 3h edition
Jorge Ortiz
 
BDD in PHP - Behat
BDD in PHP - Behat
Łukasz Kużyński
 
What can possibly go wrong if i dont e2 e test my packages?
What can possibly go wrong if i dont e2 e test my packages?
Juan Picado
 
Php[tek] 2016 - BDD with Behat for Beginners
Php[tek] 2016 - BDD with Behat for Beginners
Adam Englander
 
Bootiful Reactive Testing with Mario Gray
Bootiful Reactive Testing with Mario Gray
VMware Tanzu
 
React native introduction (Mobile Warsaw)
React native introduction (Mobile Warsaw)
Jarek Potiuk
 
45 Tools to Boost Your Front-End
45 Tools to Boost Your Front-End
Nicolas PENNEC
 
2310 b xb
2310 b xb
Krazy Koder
 
Hidden Dragons of CGO
Hidden Dragons of CGO
All Things Open
 
Why don't you Groovy?
Why don't you Groovy?
Orest Ivasiv
 
Easy form creation and validation with Formjack
Easy form creation and validation with Formjack
slicejack
 
.NET compiler platform codename Roslyn
.NET compiler platform codename Roslyn
Piotr Benetkiewicz
 
Building Better AngularJS 1.X Apps With TypeScript
Building Better AngularJS 1.X Apps With TypeScript
ColdFusionConference
 
Daniel Steigerwald - Este.js - konec velkého Schizma
Daniel Steigerwald - Este.js - konec velkého Schizma
Develcz
 
Integration of automation framework with ci tools
Integration of automation framework with ci tools
vodQA
 
The state of Jenkins pipelines or do I still need freestyle jobs
The state of Jenkins pipelines or do I still need freestyle jobs
Andrey Devyatkin
 
Building End to-End Web Apps Using TypeScript
Building End to-End Web Apps Using TypeScript
Gil Fink
 
It's all about behaviour, also in php - phpspec
It's all about behaviour, also in php - phpspec
Giulio De Donato
 
Android clean architecture workshop 3h edition
Android clean architecture workshop 3h edition
Jorge Ortiz
 
What can possibly go wrong if i dont e2 e test my packages?
What can possibly go wrong if i dont e2 e test my packages?
Juan Picado
 
Php[tek] 2016 - BDD with Behat for Beginners
Php[tek] 2016 - BDD with Behat for Beginners
Adam Englander
 
Bootiful Reactive Testing with Mario Gray
Bootiful Reactive Testing with Mario Gray
VMware Tanzu
 
React native introduction (Mobile Warsaw)
React native introduction (Mobile Warsaw)
Jarek Potiuk
 
45 Tools to Boost Your Front-End
45 Tools to Boost Your Front-End
Nicolas PENNEC
 
Why don't you Groovy?
Why don't you Groovy?
Orest Ivasiv
 
Easy form creation and validation with Formjack
Easy form creation and validation with Formjack
slicejack
 
.NET compiler platform codename Roslyn
.NET compiler platform codename Roslyn
Piotr Benetkiewicz
 
Building Better AngularJS 1.X Apps With TypeScript
Building Better AngularJS 1.X Apps With TypeScript
ColdFusionConference
 
Daniel Steigerwald - Este.js - konec velkého Schizma
Daniel Steigerwald - Este.js - konec velkého Schizma
Develcz
 

Similar to Angular Vienna - Use React tools for better Angular apps (20)

Use React tools for better Angular apps
Use React tools for better Angular apps
Martin Hochel
 
Frontend training
Frontend training
Adrian Caetano
 
Angular Application Testing
Angular Application Testing
Troy Miles
 
Das Frontend richtig Testen – mit Jest @Developer Week 2018
Das Frontend richtig Testen – mit Jest @Developer Week 2018
Holger Grosse-Plankermann
 
An Introduction to the World of Testing for Front-End Developers
An Introduction to the World of Testing for Front-End Developers
FITC
 
FITC Web Unleashed 2017 - Introduction to the World of Testing for Front-End ...
FITC Web Unleashed 2017 - Introduction to the World of Testing for Front-End ...
Haris Mahmood
 
Quick introduction to Angular 4 for AngularJS 1.5 developers
Quick introduction to Angular 4 for AngularJS 1.5 developers
Paweł Żurowski
 
Jest: Frontend Testing leicht gemacht @EnterJS2018
Jest: Frontend Testing leicht gemacht @EnterJS2018
Holger Grosse-Plankermann
 
Full Stack Unit Testing
Full Stack Unit Testing
GlobalLogic Ukraine
 
Jest: Frontend Testing richtig gemacht @WebworkerNRW
Jest: Frontend Testing richtig gemacht @WebworkerNRW
Holger Grosse-Plankermann
 
Testing React Applications
Testing React Applications
stbaechler
 
The Many Ways to Test Your React App
The Many Ways to Test Your React App
All Things Open
 
Testing in FrontEnd World by Nikita Galkin
Testing in FrontEnd World by Nikita Galkin
Sigma Software
 
Dive into Angular, part 5: Experience
Dive into Angular, part 5: Experience
Oleksii Prohonnyi
 
Using REST and UI Testing to Test Ajax Web Applications
Using REST and UI Testing to Test Ajax Web Applications
Adam Sandman
 
Javascript Unit Testing Tools
Javascript Unit Testing Tools
PixelCrayons
 
Intro to front-end testing
Intro to front-end testing
Juriy Zaytsev
 
Никита Галкин "Testing in Frontend World"
Никита Галкин "Testing in Frontend World"
Fwdays
 
Testing Strategies for Node.pdf
Testing Strategies for Node.pdf
infowindtech
 
Collaborating with Developers: How-to Guide for Test Engineers - By Gil Tayar
Collaborating with Developers: How-to Guide for Test Engineers - By Gil Tayar
Applitools
 
Use React tools for better Angular apps
Use React tools for better Angular apps
Martin Hochel
 
Angular Application Testing
Angular Application Testing
Troy Miles
 
Das Frontend richtig Testen – mit Jest @Developer Week 2018
Das Frontend richtig Testen – mit Jest @Developer Week 2018
Holger Grosse-Plankermann
 
An Introduction to the World of Testing for Front-End Developers
An Introduction to the World of Testing for Front-End Developers
FITC
 
FITC Web Unleashed 2017 - Introduction to the World of Testing for Front-End ...
FITC Web Unleashed 2017 - Introduction to the World of Testing for Front-End ...
Haris Mahmood
 
Quick introduction to Angular 4 for AngularJS 1.5 developers
Quick introduction to Angular 4 for AngularJS 1.5 developers
Paweł Żurowski
 
Jest: Frontend Testing leicht gemacht @EnterJS2018
Jest: Frontend Testing leicht gemacht @EnterJS2018
Holger Grosse-Plankermann
 
Jest: Frontend Testing richtig gemacht @WebworkerNRW
Jest: Frontend Testing richtig gemacht @WebworkerNRW
Holger Grosse-Plankermann
 
Testing React Applications
Testing React Applications
stbaechler
 
The Many Ways to Test Your React App
The Many Ways to Test Your React App
All Things Open
 
Testing in FrontEnd World by Nikita Galkin
Testing in FrontEnd World by Nikita Galkin
Sigma Software
 
Dive into Angular, part 5: Experience
Dive into Angular, part 5: Experience
Oleksii Prohonnyi
 
Using REST and UI Testing to Test Ajax Web Applications
Using REST and UI Testing to Test Ajax Web Applications
Adam Sandman
 
Javascript Unit Testing Tools
Javascript Unit Testing Tools
PixelCrayons
 
Intro to front-end testing
Intro to front-end testing
Juriy Zaytsev
 
Никита Галкин "Testing in Frontend World"
Никита Галкин "Testing in Frontend World"
Fwdays
 
Testing Strategies for Node.pdf
Testing Strategies for Node.pdf
infowindtech
 
Collaborating with Developers: How-to Guide for Test Engineers - By Gil Tayar
Collaborating with Developers: How-to Guide for Test Engineers - By Gil Tayar
Applitools
 
Ad

Recently uploaded (20)

SAP PM Module Level-IV Training Complete.ppt
SAP PM Module Level-IV Training Complete.ppt
MuhammadShaheryar36
 
Async-ronizing Success at Wix - Patterns for Seamless Microservices - Devoxx ...
Async-ronizing Success at Wix - Patterns for Seamless Microservices - Devoxx ...
Natan Silnitsky
 
Reimagining Software Development and DevOps with Agentic AI
Reimagining Software Development and DevOps with Agentic AI
Maxim Salnikov
 
Zoneranker’s Digital marketing solutions
Zoneranker’s Digital marketing solutions
reenashriee
 
Milwaukee Marketo User Group June 2025 - Optimize and Enhance Efficiency - Sm...
Milwaukee Marketo User Group June 2025 - Optimize and Enhance Efficiency - Sm...
BradBedford3
 
DevOps for AI: running LLMs in production with Kubernetes and KubeFlow
DevOps for AI: running LLMs in production with Kubernetes and KubeFlow
Aarno Aukia
 
Porting Qt 5 QML Modules to Qt 6 Webinar
Porting Qt 5 QML Modules to Qt 6 Webinar
ICS
 
Migrating to Azure Cosmos DB the Right Way
Migrating to Azure Cosmos DB the Right Way
Alexander (Alex) Komyagin
 
Decipher SEO Solutions for your startup needs.
Decipher SEO Solutions for your startup needs.
mathai2
 
Step by step guide to install Flutter and Dart
Step by step guide to install Flutter and Dart
S Pranav (Deepu)
 
OpenTelemetry 101 Cloud Native Barcelona
OpenTelemetry 101 Cloud Native Barcelona
Imma Valls Bernaus
 
Advanced Token Development - Decentralized Innovation
Advanced Token Development - Decentralized Innovation
arohisinghas720
 
Application Modernization with Choreo - The AI-Native Internal Developer Plat...
Application Modernization with Choreo - The AI-Native Internal Developer Plat...
WSO2
 
Download Adobe Illustrator Crack free for Windows 2025?
Download Adobe Illustrator Crack free for Windows 2025?
grete1122g
 
How the US Navy Approaches DevSecOps with Raise 2.0
How the US Navy Approaches DevSecOps with Raise 2.0
Anchore
 
GDG Douglas - Google AI Agents: Your Next Intern?
GDG Douglas - Google AI Agents: Your Next Intern?
felipeceotto
 
wAIred_RabobankIgniteSession_12062025.pptx
wAIred_RabobankIgniteSession_12062025.pptx
SimonedeGijt
 
Women in Tech: Marketo Engage User Group - June 2025 - AJO with AWS
Women in Tech: Marketo Engage User Group - June 2025 - AJO with AWS
BradBedford3
 
Emvigo Capability Deck 2025: Accelerating Innovation Through Intelligent Soft...
Emvigo Capability Deck 2025: Accelerating Innovation Through Intelligent Soft...
Emvigo Technologies
 
Code and No-Code Journeys: The Coverage Overlook
Code and No-Code Journeys: The Coverage Overlook
Applitools
 
SAP PM Module Level-IV Training Complete.ppt
SAP PM Module Level-IV Training Complete.ppt
MuhammadShaheryar36
 
Async-ronizing Success at Wix - Patterns for Seamless Microservices - Devoxx ...
Async-ronizing Success at Wix - Patterns for Seamless Microservices - Devoxx ...
Natan Silnitsky
 
Reimagining Software Development and DevOps with Agentic AI
Reimagining Software Development and DevOps with Agentic AI
Maxim Salnikov
 
Zoneranker’s Digital marketing solutions
Zoneranker’s Digital marketing solutions
reenashriee
 
Milwaukee Marketo User Group June 2025 - Optimize and Enhance Efficiency - Sm...
Milwaukee Marketo User Group June 2025 - Optimize and Enhance Efficiency - Sm...
BradBedford3
 
DevOps for AI: running LLMs in production with Kubernetes and KubeFlow
DevOps for AI: running LLMs in production with Kubernetes and KubeFlow
Aarno Aukia
 
Porting Qt 5 QML Modules to Qt 6 Webinar
Porting Qt 5 QML Modules to Qt 6 Webinar
ICS
 
Decipher SEO Solutions for your startup needs.
Decipher SEO Solutions for your startup needs.
mathai2
 
Step by step guide to install Flutter and Dart
Step by step guide to install Flutter and Dart
S Pranav (Deepu)
 
OpenTelemetry 101 Cloud Native Barcelona
OpenTelemetry 101 Cloud Native Barcelona
Imma Valls Bernaus
 
Advanced Token Development - Decentralized Innovation
Advanced Token Development - Decentralized Innovation
arohisinghas720
 
Application Modernization with Choreo - The AI-Native Internal Developer Plat...
Application Modernization with Choreo - The AI-Native Internal Developer Plat...
WSO2
 
Download Adobe Illustrator Crack free for Windows 2025?
Download Adobe Illustrator Crack free for Windows 2025?
grete1122g
 
How the US Navy Approaches DevSecOps with Raise 2.0
How the US Navy Approaches DevSecOps with Raise 2.0
Anchore
 
GDG Douglas - Google AI Agents: Your Next Intern?
GDG Douglas - Google AI Agents: Your Next Intern?
felipeceotto
 
wAIred_RabobankIgniteSession_12062025.pptx
wAIred_RabobankIgniteSession_12062025.pptx
SimonedeGijt
 
Women in Tech: Marketo Engage User Group - June 2025 - AJO with AWS
Women in Tech: Marketo Engage User Group - June 2025 - AJO with AWS
BradBedford3
 
Emvigo Capability Deck 2025: Accelerating Innovation Through Intelligent Soft...
Emvigo Capability Deck 2025: Accelerating Innovation Through Intelligent Soft...
Emvigo Technologies
 
Code and No-Code Journeys: The Coverage Overlook
Code and No-Code Journeys: The Coverage Overlook
Applitools
 
Ad

Angular Vienna - Use React tools for better Angular apps