SlideShare a Scribd company logo
1 of 61
Download to read offline
@Xebiconfr #Xebicon18 @aginiers
Build the future
La web app d'aujourd'hui et de demain : état de l'art et bleeding edge
Anthony Giniers
1
@Xebiconfr #Xebicon18 @aginiers
Qui suis-je ?
Anthony Giniers
Software Engineer
@aginiers
2
@Xebiconfr #Xebicon18 @aginiers
Sommaire
● Single-Page Applications (SPA)
● Progressive Web Apps (PWA)
● Server-Side Rendering (SSR)
● Code splitting
● Precaching
● Service Workers
● Push notifications (bonus)
3
@Xebiconfr #Xebicon18 @aginiers
Sommaire
Ca ne sera pas :
● Une guerre des frameworks
4
@Xebiconfr #Xebicon18 @aginiers 5
@Xebiconfr #Xebicon18 @aginiers
SPA
(Single-Page Application)
6
@Xebiconfr #Xebicon18 @aginiers
SPA
7
Home.html
P1.html
Sessions
@Xebiconfr #Xebicon18 @aginiers
SPA
8
/article
GET /comments
State
JSON
@Xebiconfr #Xebicon18 @aginiers
SPA
VS rendu serveur :
9
➔ Premier rendu lent
➔ SEO
➔ Taille du javascript beaucoup plus grande
...Et on reste loin d’une expérience native
@Xebiconfr #Xebicon18 @aginiers
Progressive Web Apps
(PWA)
10
@Xebiconfr #Xebicon18 @aginiers
Progressive Web Apps
➔ Rapide
➔ Fiable
◆ mode offline
➔ Engageante
◆ ajout au Home Screen
◆ expérience fullscreen
◆ splash screen customisé
◆ notifications
◆ ….
11
@Xebiconfr #Xebicon18 @aginiers
SSR
(Server-Side Rendering)
Les prémisses
12
@Xebiconfr #Xebicon18 @aginiers
SSR
Mélanger SPA et SSR, ça voulait dire ...
13
@Xebiconfr #Xebicon18 @aginiers
SSR
Méthode 1
14
.jsp
Rerender
@Xebiconfr #Xebicon18 @aginiers
SSR
Méthode 2 (prerender)
15
/
/articles
/search
home.html
articles.html
search.html
@Xebiconfr #Xebicon18 @aginiers
Universal JavaScript
16
@Xebiconfr #Xebicon18 @aginiers
SSR (Universal JavaScript)
17
@Xebiconfr #Xebicon18 @aginiers
SSR (Universal JavaScript)
18
Contexte
(url, user…)
State
<html>
...
</html>
@Xebiconfr #Xebicon18 @aginiers
SSR (Universal JavaScript)
19
<script>
window.__MY_APP_STATE__ = state;
</script>
@Xebiconfr #Xebicon18 @aginiers
SSR (Universal JavaScript)
20
<html>
...
</html>
State+
hydratation
@Xebiconfr #Xebicon18 @aginiers
SSR (Universal JavaScript)
21
@Xebiconfr #Xebicon18 @aginiers
SSR (Universal JavaScript)
22
@Xebiconfr #Xebicon18 @aginiers
Code Splitting
23
@Xebiconfr #Xebicon18 @aginiers
Code Splitting
24
/home
/articles/1 Article.js
Home.js
SPA classique
@Xebiconfr #Xebicon18 @aginiers
Code Splitting
25
Article.js
Home.js
App.js
chunk1.js
chunk2.js
chunk3.js
@Xebiconfr #Xebicon18 @aginiers
Code Splitting
26
@Xebiconfr #Xebicon18 @aginiers
Prefetching/Precaching
27
@Xebiconfr #Xebicon18 @aginiers
Precaching
prefetch et preload :
28
<link rel="prefetch" href="chunk1.js">
<link rel="preload" href="chunk2.js">
@Xebiconfr #Xebicon18 @aginiers
Precaching
Mode offline ?
29
@Xebiconfr #Xebicon18 @aginiers
Service Workers
30
@Xebiconfr #Xebicon18 @aginiers
main
Service Workers
31
sw1.js
sw2.js
@Xebiconfr #Xebicon18 @aginiers
Service Workers
32
sw
fetch /chunk1.js
cache
chunk1.js
@Xebiconfr #Xebicon18 @aginiers
Service Workers
Offline + Code Splitting ?
33
@Xebiconfr #Xebicon18 @aginiers
Service Workers
34
sw
cache
@Xebiconfr #Xebicon18 @aginiers
Service Workers
sw-precache
github.com/GoogleChromeLabs/sw-precache
35
@Xebiconfr #Xebicon18 @aginiers
Service Workers
36
@Xebiconfr #Xebicon18 @aginiers
Service Workers
37
@Xebiconfr #Xebicon18 @aginiers
Service Workers
Offline + SSR ?
(dynamique)
38
@Xebiconfr #Xebicon18 @aginiers
App Shell Model
39
@Xebiconfr #Xebicon18 @aginiers
App Shell Model
40
@Xebiconfr #Xebicon18 @aginiers
App Shell Model
41
/home
sw
/shell
@Xebiconfr #Xebicon18 @aginiers
App Shell Model
42
/home
sw
@Xebiconfr #Xebicon18 @aginiers 43
@Xebiconfr #Xebicon18 @aginiers
Progressive Web Apps
44
Expérience native :
- Ajout au Home Screen
- Splash Screen
- Cacher l’url
- Changer la couleur de la status bar et de la toolbar
- Notifications
- ...
@Xebiconfr #Xebicon18 @aginiers
Progressive Web Apps
45
{
"short_name": "MyApp",
"name": "My App",
"icons": [
{
"src": "/static/favicon-96x96.png",
"sizes": "96x96 72x72 64x64 48x48 16x16",
"type": "image/png"
}
],
"start_url": "/",
"display": "standalone",
"theme_color": "#4169E1",
"background_color": "#ffffff"
}
manifest.json
@Xebiconfr #Xebicon18 @aginiers
Progressive Web Apps
46
{
"short_name": "MyApp",
"name": "My App",
"icons": [
{
"src": "/static/favicon-96x96.png",
"sizes": "96x96 72x72 64x64 48x48 16x16",
"type": "image/png"
}
],
"start_url": "/",
"display": "standalone",
"theme_color": "#4169E1",
"background_color": "#ffffff"
}
manifest.json
Nom de
l’application
@Xebiconfr #Xebicon18 @aginiers
Progressive Web Apps
47
{
"short_name": "MyApp",
"name": "My App",
"icons": [
{
"src": "/static/favicon-96x96.png",
"sizes": "96x96 72x72 64x64 48x48 16x16",
"type": "image/png"
}
],
"start_url": "/",
"display": "standalone",
"theme_color": "#4169E1",
"background_color": "#ffffff"
}
manifest.json
Icônes
@Xebiconfr #Xebicon18 @aginiers
Progressive Web Apps
48
{
"short_name": "MyApp",
"name": "My App",
"icons": [
{
"src": "/static/favicon-96x96.png",
"sizes": "96x96 72x72 64x64 48x48 16x16",
"type": "image/png"
}
],
"start_url": "/",
"display": "standalone",
"theme_color": "#4169E1",
"background_color": "#ffffff"
}
manifest.json
Cacher l’url
@Xebiconfr #Xebicon18 @aginiers
Progressive Web Apps
49
{
"short_name": "MyApp",
"name": "My App",
"icons": [
{
"src": "/static/favicon-96x96.png",
"sizes": "96x96 72x72 64x64 48x48 16x16",
"type": "image/png"
}
],
"start_url": "/",
"display": "standalone",
"theme_color": "#4169E1",
"background_color": "#ffffff"
}
manifest.json
Couleur de
la status bar
@Xebiconfr #Xebicon18 @aginiers 50
@Xebiconfr #Xebicon18 @aginiers
Push notifications
51
@Xebiconfr #Xebicon18 @aginiers
Push notifications
52
URL + Message
Message
/URL
Push Service
@Xebiconfr #Xebicon18 @aginiers
Push notifications
53
sw
@Xebiconfr #Xebicon18 @aginiers
Push notifications
54
@Xebiconfr #Xebicon18 @aginiers
Merci
Questions ?
55
@Xebiconfr #Xebicon18 @aginiers
SSR
56
@Xebiconfr #Xebicon18 @aginiers
React ? Vue.js ? Angular ?
57
@Xebiconfr #Xebicon18 @aginiers
React ? Vue.js ? Angular ?
58
@Xebiconfr #Xebicon18 @aginiers
React ? Vue.js ? Angular ?
● React : 94%
● Vue : 91%
● Angular : 66%
59
@Xebiconfr #Xebicon18 @aginiers
SSR (Universal JavaScript)
60
{
"timeline": [
{...tweet1},
{...tweet2},
{...tweet3}
]
}
@Xebiconfr #Xebicon18 @aginiers
SSR (Universal JavaScript)
61
???

More Related Content

Similar to XebiCon'18 - La Web App d'aujourd'hui et de demain : état de l'art et bleeding edge

Similar to XebiCon'18 - La Web App d'aujourd'hui et de demain : état de l'art et bleeding edge (20)

Don't turn on/off your Photoshop yet
Don't turn on/off your Photoshop yetDon't turn on/off your Photoshop yet
Don't turn on/off your Photoshop yet
 
Pc54
Pc54Pc54
Pc54
 
Single Page Applications – Know The Ecosystem system
Single Page Applications – Know The Ecosystem systemSingle Page Applications – Know The Ecosystem system
Single Page Applications – Know The Ecosystem system
 
XebiCon'18 - Passage à l'échelle de mes applications Kafka-Streams
XebiCon'18 - Passage à l'échelle de mes applications Kafka-StreamsXebiCon'18 - Passage à l'échelle de mes applications Kafka-Streams
XebiCon'18 - Passage à l'échelle de mes applications Kafka-Streams
 
XebiCon'18 - Modern Infrastructure
XebiCon'18 - Modern InfrastructureXebiCon'18 - Modern Infrastructure
XebiCon'18 - Modern Infrastructure
 
Web and App Performance: Top Problems to avoid to keep you out of the News
Web and App Performance: Top Problems to avoid to keep you out of the NewsWeb and App Performance: Top Problems to avoid to keep you out of the News
Web and App Performance: Top Problems to avoid to keep you out of the News
 
Surviving a Plane Crash, a NU.nl case-study
Surviving a Plane Crash, a NU.nl case-studySurviving a Plane Crash, a NU.nl case-study
Surviving a Plane Crash, a NU.nl case-study
 
Chrome Dev Summit Summary 2013 part 1 - what’s hot ?
Chrome Dev Summit Summary 2013 part 1 - what’s hot ?Chrome Dev Summit Summary 2013 part 1 - what’s hot ?
Chrome Dev Summit Summary 2013 part 1 - what’s hot ?
 
[DevConf.US 2019]Quarkus Brings Serverless to Java Developers
[DevConf.US 2019]Quarkus Brings Serverless to Java Developers[DevConf.US 2019]Quarkus Brings Serverless to Java Developers
[DevConf.US 2019]Quarkus Brings Serverless to Java Developers
 
Titanium Desktop Intro
Titanium Desktop IntroTitanium Desktop Intro
Titanium Desktop Intro
 
Play framework 2 : Peter Hilton
Play framework 2 : Peter HiltonPlay framework 2 : Peter Hilton
Play framework 2 : Peter Hilton
 
Hacking for salone: drone races
Hacking for salone: drone racesHacking for salone: drone races
Hacking for salone: drone races
 
Angular v2 et plus : le futur du développement d'applications en entreprise
Angular v2 et plus : le futur du développement d'applications en entrepriseAngular v2 et plus : le futur du développement d'applications en entreprise
Angular v2 et plus : le futur du développement d'applications en entreprise
 
DevOps Pipelines and Metrics Driven Feedback Loops
DevOps Pipelines and Metrics Driven Feedback LoopsDevOps Pipelines and Metrics Driven Feedback Loops
DevOps Pipelines and Metrics Driven Feedback Loops
 
Hacking for Salone: Drone Races - Di Saverio; Lippolis - Codemotion Milan 2016
Hacking for Salone: Drone Races - Di Saverio; Lippolis - Codemotion Milan 2016Hacking for Salone: Drone Races - Di Saverio; Lippolis - Codemotion Milan 2016
Hacking for Salone: Drone Races - Di Saverio; Lippolis - Codemotion Milan 2016
 
Expressjs from-zero-to-hero
Expressjs from-zero-to-heroExpressjs from-zero-to-hero
Expressjs from-zero-to-hero
 
Mobile Vue.js – From PWA to Native
Mobile Vue.js – From PWA to NativeMobile Vue.js – From PWA to Native
Mobile Vue.js – From PWA to Native
 
Front-end God Mode with Reagent and Figwheel
Front-end God Mode with Reagent and FigwheelFront-end God Mode with Reagent and Figwheel
Front-end God Mode with Reagent and Figwheel
 
Nodeconf AR 18 Decomposition of the Main thread in Node.js to increase throug...
Nodeconf AR 18 Decomposition of the Main thread in Node.js to increase throug...Nodeconf AR 18 Decomposition of the Main thread in Node.js to increase throug...
Nodeconf AR 18 Decomposition of the Main thread in Node.js to increase throug...
 
[D2 campus seminar]웹브라우저 엔진
[D2 campus seminar]웹브라우저 엔진[D2 campus seminar]웹브라우저 엔진
[D2 campus seminar]웹브라우저 엔진
 

More from Publicis Sapient Engineering

XebiCon'18 - Data Science Done Wrong
XebiCon'18 - Data Science Done WrongXebiCon'18 - Data Science Done Wrong
XebiCon'18 - Data Science Done Wrong
Publicis Sapient Engineering
 

More from Publicis Sapient Engineering (20)

XebiCon'18 - L'algorithme de reconnaissance de formes par le cerveau humain
XebiCon'18 - L'algorithme de reconnaissance de formes par le cerveau humainXebiCon'18 - L'algorithme de reconnaissance de formes par le cerveau humain
XebiCon'18 - L'algorithme de reconnaissance de formes par le cerveau humain
 
Xebicon'18 - Spark in jail : conteneurisez vos traitements data sans serveur
Xebicon'18 - Spark in jail : conteneurisez vos traitements data sans serveurXebicon'18 - Spark in jail : conteneurisez vos traitements data sans serveur
Xebicon'18 - Spark in jail : conteneurisez vos traitements data sans serveur
 
XebiCon'18 - Event Sourcing et RGPD, incompatibles ?
XebiCon'18 - Event Sourcing et RGPD, incompatibles ?XebiCon'18 - Event Sourcing et RGPD, incompatibles ?
XebiCon'18 - Event Sourcing et RGPD, incompatibles ?
 
XebiCon'18 - Deno, le nouveau NodeJS qui inverse la tendance ?
XebiCon'18 - Deno, le nouveau NodeJS qui inverse la tendance ?XebiCon'18 - Deno, le nouveau NodeJS qui inverse la tendance ?
XebiCon'18 - Deno, le nouveau NodeJS qui inverse la tendance ?
 
XebiCon'18 - Comment j'ai développé un jeu vidéo avec des outils de développe...
XebiCon'18 - Comment j'ai développé un jeu vidéo avec des outils de développe...XebiCon'18 - Comment j'ai développé un jeu vidéo avec des outils de développe...
XebiCon'18 - Comment j'ai développé un jeu vidéo avec des outils de développe...
 
XebiCon'18 - Les utilisateurs finaux, les oubliés de nos produits !
XebiCon'18 - Les utilisateurs finaux, les oubliés de nos produits !XebiCon'18 - Les utilisateurs finaux, les oubliés de nos produits !
XebiCon'18 - Les utilisateurs finaux, les oubliés de nos produits !
 
XebiCon'18 - Comment fausser l'interprétation de vos résultats avec des dataviz
XebiCon'18 - Comment fausser l'interprétation de vos résultats avec des datavizXebiCon'18 - Comment fausser l'interprétation de vos résultats avec des dataviz
XebiCon'18 - Comment fausser l'interprétation de vos résultats avec des dataviz
 
XebiCon'18 - Le développeur dans la Pop Culture
XebiCon'18 - Le développeur dans la Pop Culture XebiCon'18 - Le développeur dans la Pop Culture
XebiCon'18 - Le développeur dans la Pop Culture
 
XebiCon'18 - Architecturer son application mobile pour la durabilité
XebiCon'18 - Architecturer son application mobile pour la durabilitéXebiCon'18 - Architecturer son application mobile pour la durabilité
XebiCon'18 - Architecturer son application mobile pour la durabilité
 
XebiCon'18 - Sécuriser son API avec OpenID Connect
XebiCon'18 - Sécuriser son API avec OpenID ConnectXebiCon'18 - Sécuriser son API avec OpenID Connect
XebiCon'18 - Sécuriser son API avec OpenID Connect
 
XebiCon'18 - Structuration du Temps et Dynamique de Groupes, Théorie organisa...
XebiCon'18 - Structuration du Temps et Dynamique de Groupes, Théorie organisa...XebiCon'18 - Structuration du Temps et Dynamique de Groupes, Théorie organisa...
XebiCon'18 - Structuration du Temps et Dynamique de Groupes, Théorie organisa...
 
XebiCon'18 - Spark NLP, un an après
XebiCon'18 - Spark NLP, un an aprèsXebiCon'18 - Spark NLP, un an après
XebiCon'18 - Spark NLP, un an après
 
XebiCon'18 - La sécurité, douce illusion même en 2018
XebiCon'18 - La sécurité, douce illusion même en 2018XebiCon'18 - La sécurité, douce illusion même en 2018
XebiCon'18 - La sécurité, douce illusion même en 2018
 
XebiCon'18 - Utiliser Hyperledger Fabric pour la création d'une blockchain pr...
XebiCon'18 - Utiliser Hyperledger Fabric pour la création d'une blockchain pr...XebiCon'18 - Utiliser Hyperledger Fabric pour la création d'une blockchain pr...
XebiCon'18 - Utiliser Hyperledger Fabric pour la création d'une blockchain pr...
 
XebiCon'18 - Ce que l'histoire du métro Parisien m'a enseigné sur la création...
XebiCon'18 - Ce que l'histoire du métro Parisien m'a enseigné sur la création...XebiCon'18 - Ce que l'histoire du métro Parisien m'a enseigné sur la création...
XebiCon'18 - Ce que l'histoire du métro Parisien m'a enseigné sur la création...
 
XebiCon'18 - La guerre des Frameworks n'aura pas lieu
XebiCon'18 - La guerre des Frameworks n'aura pas lieuXebiCon'18 - La guerre des Frameworks n'aura pas lieu
XebiCon'18 - La guerre des Frameworks n'aura pas lieu
 
XebiCon'18 - Orchestration : Conteneurs vs Musique
XebiCon'18 - Orchestration : Conteneurs vs MusiqueXebiCon'18 - Orchestration : Conteneurs vs Musique
XebiCon'18 - Orchestration : Conteneurs vs Musique
 
XebiCon'18 - Data Science Done Wrong
XebiCon'18 - Data Science Done WrongXebiCon'18 - Data Science Done Wrong
XebiCon'18 - Data Science Done Wrong
 
TEch4Exec - OUI.sncf propose des voyages moins chers grâce au Big Data et au ...
TEch4Exec - OUI.sncf propose des voyages moins chers grâce au Big Data et au ...TEch4Exec - OUI.sncf propose des voyages moins chers grâce au Big Data et au ...
TEch4Exec - OUI.sncf propose des voyages moins chers grâce au Big Data et au ...
 
Tech4Exec - Pourquoi faut-il gérer votre projet (Big) data comme une start-up...
Tech4Exec - Pourquoi faut-il gérer votre projet (Big) data comme une start-up...Tech4Exec - Pourquoi faut-il gérer votre projet (Big) data comme une start-up...
Tech4Exec - Pourquoi faut-il gérer votre projet (Big) data comme une start-up...
 

Recently uploaded

Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo DiehlFuture Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Peter Udo Diehl
 

Recently uploaded (20)

Enterprise Knowledge Graphs - Data Summit 2024
Enterprise Knowledge Graphs - Data Summit 2024Enterprise Knowledge Graphs - Data Summit 2024
Enterprise Knowledge Graphs - Data Summit 2024
 
Powerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara LaskowskaPowerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara Laskowska
 
Buy Epson EcoTank L3210 Colour Printer Online.pdf
Buy Epson EcoTank L3210 Colour Printer Online.pdfBuy Epson EcoTank L3210 Colour Printer Online.pdf
Buy Epson EcoTank L3210 Colour Printer Online.pdf
 
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo DiehlFuture Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
 
Connecting the Dots in Product Design at KAYAK
Connecting the Dots in Product Design at KAYAKConnecting the Dots in Product Design at KAYAK
Connecting the Dots in Product Design at KAYAK
 
The Metaverse: Are We There Yet?
The  Metaverse:    Are   We  There  Yet?The  Metaverse:    Are   We  There  Yet?
The Metaverse: Are We There Yet?
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
 
IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024
 
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdfSimplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
 
A Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System StrategyA Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System Strategy
 
Where to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdfWhere to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdf
 
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdfThe Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
 
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
 
Introduction to Open Source RAG and RAG Evaluation
Introduction to Open Source RAG and RAG EvaluationIntroduction to Open Source RAG and RAG Evaluation
Introduction to Open Source RAG and RAG Evaluation
 
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
 
AI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří KarpíšekAI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří Karpíšek
 
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
 
Intro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджераIntro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджера
 
AI presentation and introduction - Retrieval Augmented Generation RAG 101
AI presentation and introduction - Retrieval Augmented Generation RAG 101AI presentation and introduction - Retrieval Augmented Generation RAG 101
AI presentation and introduction - Retrieval Augmented Generation RAG 101
 
Top 10 Symfony Development Companies 2024
Top 10 Symfony Development Companies 2024Top 10 Symfony Development Companies 2024
Top 10 Symfony Development Companies 2024
 

XebiCon'18 - La Web App d'aujourd'hui et de demain : état de l'art et bleeding edge