SlideShare une entreprise Scribd logo
1  sur  61
Télécharger pour lire hors ligne
@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
???

Contenu connexe

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

Similaire à 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]웹브라우저 엔진
 

Plus de 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
 

Plus de 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...
 

Dernier

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Dernier (20)

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 

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