SlideShare uma empresa Scribd logo
1 de 106
Baixar para ler offline
PROGRESSIVE
WEB APPS
O MELHOR DA WEB,
APPFICADA
@sergio_caelum
sergiolopes.org
WEB vs APP
PROGRESSIVE
WEB APPS
PROGRESSIVE
WEB APPS
HTML
semântico
<!doctype html>
<html lang="pt-br">
<head>
<title>Shopping</title>
</head>
<body>
<main class="home">
<h1>O Shopping</h1>
<div class="collection">
<a href="lojas.html">
Lojas &amp; Restaurantes
</a>
<a href="pagar.html">
Pagar estacionamento
</a>
</div>
</main>
</body>
</html>
URIs
<!doctype html>
<html lang="pt-br">
<head>
<title>Shopping</title>
</head>
<body>
<main class="home">
<h1>O Shopping</h1>
<div class="collection">
<a href="lojas.html">
Lojas &amp; Restaurantes
</a>
<a href="pagar.html">
Pagar estacionamento
</a>
</div>
</main>
</body>
</html>
URIs
https://sergiolopes.github.io/shopping/
URIs
https://sergiolopes.github.io/shopping/
https://sergiolopes.github.io/shopping/lojas.html
URIs
https://sergiolopes.github.io/shopping/
https://sergiolopes.github.io/shopping/lojas.html
https://sergiolopes.github.io/shopping/pagar-estacionamento.
URIs
https://sergiolopes.github.io/shopping/
https://sergiolopes.github.io/shopping/lojas.html
https://sergiolopes.github.io/shopping/pagar-estacionamento.
https://sergiolopes.github.io/shopping/loja-adidas.html
URIs
https://sergiolopes.github.io/shopping/
https://sergiolopes.github.io/shopping/lojas.html
https://sergiolopes.github.io/shopping/pagar-estacionamento.
https://sergiolopes.github.io/shopping/loja-adidas.html
https://sergiolopes.github.io/shopping/loja-tip-top.html
URIs
https://sergiolopes.github.io/shopping/
https://sergiolopes.github.io/shopping/lojas.html
https://sergiolopes.github.io/shopping/pagar-estacionamento.
https://sergiolopes.github.io/shopping/loja-adidas.html
https://sergiolopes.github.io/shopping/loja-tip-top.html
...
URIs
https://sergiolopes.github.io/shopping/
https://sergiolopes.github.io/shopping/lojas.html
https://sergiolopes.github.io/shopping/pagar-estacionamento.
https://sergiolopes.github.io/shopping/loja-adidas.html
https://sergiolopes.github.io/shopping/loja-tip-top.html
...
URIs
https://sergiolopes.github.io/shopping/
https://sergiolopes.github.io/shopping/lojas.html
https://sergiolopes.github.io/shopping/pagar-estacionamento.
https://sergiolopes.github.io/shopping/loja-adidas.html
https://sergiolopes.github.io/shopping/loja-tip-top.html
...
HTTPS
PROGRESSIVE
WEB APPS
PROGRESSIVE
WEB APPS
VISUAL
APPFICADO
v
VISUAL
APPFICADO
v
VISUAL
APPFICADO
v
VISUAL
APPFICADO
v
VISUAL
APPFICADO
v
SPA
AJAX
SPA
AJAX
SPA
AJAX
SPA
AJAX
SPA
AJAX
$('body').on('click', 'a', function(event){
SPA
AJAX
$('body').on('click', 'a', function(event){
$('.container').load(this.href + ' .conteudo');
SPA
AJAX
$('body').on('click', 'a', function(event){
$('.container').load(this.href + ' .conteudo');
event.preventDefault();
SPA
AJAX
$('body').on('click', 'a', function(event){
$('.container').load(this.href + ' .conteudo');
event.preventDefault();
});
SPA
AJAX
$('body').on('click', 'a', function(event){
$('.container').load(this.href + ' .conteudo');
event.preventDefault();
});
SPA
AJAX
$('body').on('click', 'a', function(event){
$('.container').load(this.href + ' .conteudo');
event.preventDefault();
});
transform: translate3d(-100%,0,0);
transition: transform 600ms ease-out;
SPA
AJAX
$('body').on('click', 'a', function(event){
$('.container').load(this.href + ' .conteudo');
event.preventDefault();
});
transform: translate3d(-100%,0,0);
transition: transform 600ms ease-out;
transform: scale(0);
transition: transform 500ms;
HIST
ORY
HIST
ORY
HIST
ORY
HIST
ORY
$('body').on('click', 'a', function(event){
$('.container').load(this.href + ' .conteudo');
event.preventDefault();
});
HIST
ORY
$('body').on('click', 'a', function(event){
window.history.pushState({}, '', this.href);
$('.container').load(this.href + ' .conteudo');
event.preventDefault();
});
HIST
ORY
$('body').on('click', 'a', function(event){
window.history.pushState({}, '', this.href);
$('.container').load(this.href + ' .conteudo');
event.preventDefault();
});
window.onpopstate = function(event) {
$('.container').load(location.href + ' .conteudo');
};
OFF
LINE
OFF
LINE
OFF
LINE
OFF
LINE
<html manifest="appcache.manifest">
OFF
LINE
CACHE MANIFEST
CACHE:
index.html
lojas.html
css/main.css
img/entrada.jpg
js/main.js
js/vendor/jquery.min.js
loja-adidas.html
NETWORK:
*
<html manifest="appcache.manifest">
HW
HW QuaggaJS
HW
Quagga.init({
inputStream : {
name : "Live",
type : "LiveStream"
},
decoder : {
readers : ["code_128_reader"]
}
}, function() {
Quagga.start();
});
Quagga.onDetected(function(result) {
var code = result.codeResult.code;
alert('Código: ' + code);
});
QuaggaJS
HW
HW
THEME
COLOR
THEME
COLOR
<meta name="theme-color"
content="#F77F00">
PROGRESSIVE
WEB APPS
<!DOCTYPE html>
<html>
<head>
<script>
navigator.serviceWorker.register('worker.js');
</script>
</head>
<body>
<h1>Página offline</h1>
</body>
</html>
SERVICE
WORKERS
this.onfetch = function(event) {
console.log(event.request.url);
};
SERVICE
WORKERS
this.onfetch = function(event) {
event.respondWith(
new Response("<h1>Página offline!</h1>")
);
};
SERVICE
WORKERS
this.onfetch = function(event) {
event.respondWith(
new Response("<h1>Página offline!</h1>")
);
};
SERVICE
WORKERS
this.oninstall = function(event) {
console.log('instalou');
};
caches.open('aplicacao').then(function(cache) {
return cache.addAll([
'/index.html',
'/style.css',
'/logo.png',
'/lojas.html'
]);
})
SERVICE
WORKERS
this.oninstall = function(event){
event.waitUntil(
caches.open('aplicacao').then(function(cache) {
return cache.addAll([
'/index.html',
'/style.css',
'/logo.png',
'/lojas.html'
]);
})
);
};
SERVICE
WORKERS
this.onfetch = function(event) {
event.respondWith(
caches.match(event.request)
);
};
SERVICE
WORKERS
progressive
enhancement
if ('serviceWorker' in navigator) {
}
SERVICE
WORKERS
INSTALÁVEL iOS
<meta name="apple-mobile-web-app-capable" content="yes">
INSTALÁVEL iOS
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-title" content="Shopping">
INSTALÁVEL iOS
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-title" content="Shopping">
<link rel="apple-touch-icon-precomposed" href="img/icon.png">
INSTALÁVEL iOS
INSTALÁVEL iOS
INSTALÁVEL iOS
<link rel="manifest" href="manifest.json">
INSTALÁVEL Web Manifest
INSTALÁVEL Web Manifest
{
"short_name": "Shopping",
"name": "O Shopping",
}
INSTALÁVEL Web Manifest
{
"short_name": "Shopping",
"name": "O Shopping",
"icons": [
{
"src": "img/icon.png",
"sizes": "192x192",
"type": "image/png"
}
],
}
INSTALÁVEL Web Manifest
{
"short_name": "Shopping",
"name": "O Shopping",
"icons": [
{
"src": "img/icon.png",
"sizes": "192x192",
"type": "image/png"
}
],
"start_url": "index.html",
}
INSTALÁVEL Web Manifest
{
"short_name": "Shopping",
"name": "O Shopping",
"icons": [
{
"src": "img/icon.png",
"sizes": "192x192",
"type": "image/png"
}
],
"start_url": "index.html",
"orientation": "portrait",
}
INSTALÁVEL Web Manifest
{
"short_name": "Shopping",
"name": "O Shopping",
"icons": [
{
"src": "img/icon.png",
"sizes": "192x192",
"type": "image/png"
}
],
"start_url": "index.html",
"orientation": "portrait",
"display": "standalone",
}
INSTALÁVEL Web Manifest
{
"short_name": "Shopping",
"name": "O Shopping",
"icons": [
{
"src": "img/icon.png",
"sizes": "192x192",
"type": "image/png"
}
],
"start_url": "index.html",
"orientation": "portrait",
"display": "standalone",
"theme_color": "#F77F00",
"background_color": "#FFB400"
}
INSTALÁVEL Web Manifest
INSTALÁVEL Web Manifest
INSTALL
BANNERS
PROGRESSIVE
WEB APPS
NOTIFICATIONS
Notification.requestPermission(function(){
new Notification('Pagamento confirmado', {
icon: 'img/icon.png',
body: 'Saída liberada até 15h45'
});
});
NOTIFICATIONS
Notification.requestPermission(function(){
navigator.serviceWorker.ready.then(function(registration){
registration.showNotification('Pagamento confirmado', {
icon: 'img/icon.png',
body: 'Saída liberada até 15h45'
});
});
});
NOTIFICATIONS
NOTIFICATIONS
Notification.requestPermission(function(){
navigator.serviceWorker.ready.then(function(registration){
registration.showNotification('Pagamento confirmado', {
icon: 'img/icon.png',
body: 'Saída liberada até 15h45'
});
});
});
self.addEventListener('notificationclick', function(event) {
clients.openWindow('/timer.html');
});
PUSH NOTIFICATIONS
navigator.serviceWorker.ready.then(function(reg) {
reg.pushManager.subscribe({userVisibleOnly: true})
.then(function(subscription) {
// descobre servidor Push
});
PUSH NOTIFICATIONS
navigator.serviceWorker.ready.then(function(reg) {
reg.pushManager.subscribe({userVisibleOnly: true})
.then(function(subscription) {
// descobre servidor Push
});
self.addEventListener('push', function(event) {
event.waitUntil(
self.registration.showNotification(...)
);
});
BACKGROUND SYNC
BACKGROUND SYNC
GEOFENCING
BACKGROUND SYNC
GEOFENCING
ALARMES TEMPORAIS
GEOLOCALIZAÇÃO
GEOLOCALIZAÇÃO
VIBRAÇÃO
GEOLOCALIZAÇÃO
VIBRAÇÃO
CÂMERA
GEOLOCALIZAÇÃO
VIBRAÇÃO
CÂMERA
MICROFONE
GEOLOCALIZAÇÃO
VIBRAÇÃO
CÂMERA
MICROFONE
BATERIA
GEOLOCALIZAÇÃO
VIBRAÇÃO
CÂMERA
MICROFONE
BATERIA
NET INFO
GEOLOCALIZAÇÃO
VIBRAÇÃO
CÂMERA
MICROFONE
BATERIA
NET INFO
AUTOCOMPLETE
LINKÁVEL
LINKÁVEL
RESPONSIVA
LINKÁVEL
RESPONSIVA
SEGURA
LINKÁVEL
RESPONSIVA
SEGURA
OFFLINE
LINKÁVEL
RESPONSIVA
SEGURA
OFFLINE
APPY
LINKÁVEL
RESPONSIVA
SEGURA
OFFLINE
APPY
ENGAJÁVEL
LINKÁVEL
RESPONSIVA
SEGURA
OFFLINE
APPY
ENGAJÁVEL
INSTALÁVEL
PROGRESSIVE
WEB APPS
OBRIGADO!
sergiolopes.org
@sergio_caelum
https://sergiolopes.github.io/shopping/

Mais conteúdo relacionado

Mais procurados

Angular vs React for Web Application Development
Angular vs React for Web Application DevelopmentAngular vs React for Web Application Development
Angular vs React for Web Application Development
FITC
 
Web 2.0 Expo: Even Faster Web Sites
Web 2.0 Expo: Even Faster Web SitesWeb 2.0 Expo: Even Faster Web Sites
Web 2.0 Expo: Even Faster Web Sites
Steve Souders
 
@media - Even Faster Web Sites
@media - Even Faster Web Sites@media - Even Faster Web Sites
@media - Even Faster Web Sites
Steve Souders
 
Djangoアプリのデプロイに関するプラクティス / Deploy django application
Djangoアプリのデプロイに関するプラクティス / Deploy django applicationDjangoアプリのデプロイに関するプラクティス / Deploy django application
Djangoアプリのデプロイに関するプラクティス / Deploy django application
Masashi Shibata
 

Mais procurados (20)

HTML5 workshop, part 1
HTML5 workshop, part 1HTML5 workshop, part 1
HTML5 workshop, part 1
 
The web - What it has, what it lacks and where it must go - Bulgaria Web Summ...
The web - What it has, what it lacks and where it must go - Bulgaria Web Summ...The web - What it has, what it lacks and where it must go - Bulgaria Web Summ...
The web - What it has, what it lacks and where it must go - Bulgaria Web Summ...
 
Angular vs React for Web Application Development
Angular vs React for Web Application DevelopmentAngular vs React for Web Application Development
Angular vs React for Web Application Development
 
Web 2.0 Expo: Even Faster Web Sites
Web 2.0 Expo: Even Faster Web SitesWeb 2.0 Expo: Even Faster Web Sites
Web 2.0 Expo: Even Faster Web Sites
 
@media - Even Faster Web Sites
@media - Even Faster Web Sites@media - Even Faster Web Sites
@media - Even Faster Web Sites
 
Oscon 20080724
Oscon 20080724Oscon 20080724
Oscon 20080724
 
High Performance Web Components
High Performance Web ComponentsHigh Performance Web Components
High Performance Web Components
 
The Future of the Web - Cold Front conference 2016
The Future of the Web - Cold Front conference 2016The Future of the Web - Cold Front conference 2016
The Future of the Web - Cold Front conference 2016
 
Djangoアプリのデプロイに関するプラクティス / Deploy django application
Djangoアプリのデプロイに関するプラクティス / Deploy django applicationDjangoアプリのデプロイに関するプラクティス / Deploy django application
Djangoアプリのデプロイに関するプラクティス / Deploy django application
 
Web20expo 20080425
Web20expo 20080425Web20expo 20080425
Web20expo 20080425
 
JavaScript Performance (at SFJS)
JavaScript Performance (at SFJS)JavaScript Performance (at SFJS)
JavaScript Performance (at SFJS)
 
Html 5 pres
Html 5 presHtml 5 pres
Html 5 pres
 
Streamlining Your Applications with Web Frameworks
Streamlining Your Applications with Web FrameworksStreamlining Your Applications with Web Frameworks
Streamlining Your Applications with Web Frameworks
 
Responsive design
Responsive designResponsive design
Responsive design
 
Introduction aux progressive web apps
Introduction aux progressive web appsIntroduction aux progressive web apps
Introduction aux progressive web apps
 
Introduction to Progressive Web Applications
Introduction to Progressive Web ApplicationsIntroduction to Progressive Web Applications
Introduction to Progressive Web Applications
 
Taking Web Applications Offline
Taking Web Applications OfflineTaking Web Applications Offline
Taking Web Applications Offline
 
Django の認証処理実装パターン / Django Authentication Patterns
Django の認証処理実装パターン / Django Authentication PatternsDjango の認証処理実装パターン / Django Authentication Patterns
Django の認証処理実装パターン / Django Authentication Patterns
 
SEO for Angular - BrightonSEO 2018
SEO for Angular - BrightonSEO 2018SEO for Angular - BrightonSEO 2018
SEO for Angular - BrightonSEO 2018
 
Web Performance Optimierung - DWX13
Web Performance Optimierung - DWX13Web Performance Optimierung - DWX13
Web Performance Optimierung - DWX13
 

Semelhante a Progressive Web Apps: o melhor da Web appficada

HTML5 and the dawn of rich mobile web applications pt 2
HTML5 and the dawn of rich mobile web applications pt 2HTML5 and the dawn of rich mobile web applications pt 2
HTML5 and the dawn of rich mobile web applications pt 2
James Pearce
 
Introduction to angular js july 6th 2014
Introduction to angular js   july 6th 2014Introduction to angular js   july 6th 2014
Introduction to angular js july 6th 2014
Simona Clapan
 
HTML5, The Open Web, and what it means for you - Altran
HTML5, The Open Web, and what it means for you - AltranHTML5, The Open Web, and what it means for you - Altran
HTML5, The Open Web, and what it means for you - Altran
Robert Nyman
 
Desenvolvimento web com Ruby on Rails (parte 2)
Desenvolvimento web com Ruby on Rails (parte 2)Desenvolvimento web com Ruby on Rails (parte 2)
Desenvolvimento web com Ruby on Rails (parte 2)
Joao Lucas Santana
 

Semelhante a Progressive Web Apps: o melhor da Web appficada (20)

Course CodeSchool - Shaping up with Angular.js
Course CodeSchool - Shaping up with Angular.jsCourse CodeSchool - Shaping up with Angular.js
Course CodeSchool - Shaping up with Angular.js
 
243329387 angular-docs
243329387 angular-docs243329387 angular-docs
243329387 angular-docs
 
关于 Html5 那点事
关于 Html5 那点事关于 Html5 那点事
关于 Html5 那点事
 
Once Source to Rule Them All
Once Source to Rule Them AllOnce Source to Rule Them All
Once Source to Rule Them All
 
HTML5 and the dawn of rich mobile web applications pt 2
HTML5 and the dawn of rich mobile web applications pt 2HTML5 and the dawn of rich mobile web applications pt 2
HTML5 and the dawn of rich mobile web applications pt 2
 
Introduction to angular js july 6th 2014
Introduction to angular js   july 6th 2014Introduction to angular js   july 6th 2014
Introduction to angular js july 6th 2014
 
Taking your Web App for a walk
Taking your Web App for a walkTaking your Web App for a walk
Taking your Web App for a walk
 
HTML5, The Open Web, and what it means for you - Altran
HTML5, The Open Web, and what it means for you - AltranHTML5, The Open Web, and what it means for you - Altran
HTML5, The Open Web, and what it means for you - Altran
 
AngularJS Mobile Warsaw 20-10-2014
AngularJS Mobile Warsaw 20-10-2014AngularJS Mobile Warsaw 20-10-2014
AngularJS Mobile Warsaw 20-10-2014
 
Desenvolvimento web com Ruby on Rails (parte 2)
Desenvolvimento web com Ruby on Rails (parte 2)Desenvolvimento web com Ruby on Rails (parte 2)
Desenvolvimento web com Ruby on Rails (parte 2)
 
AMP for JavaScripters
AMP for JavaScriptersAMP for JavaScripters
AMP for JavaScripters
 
Angular directive filter and routing
Angular directive filter and routingAngular directive filter and routing
Angular directive filter and routing
 
Controller in AngularJS
Controller in AngularJSController in AngularJS
Controller in AngularJS
 
2013 - Nate Abele: HTTP ALL THE THINGS: Simplificando aplicaciones respetando...
2013 - Nate Abele: HTTP ALL THE THINGS: Simplificando aplicaciones respetando...2013 - Nate Abele: HTTP ALL THE THINGS: Simplificando aplicaciones respetando...
2013 - Nate Abele: HTTP ALL THE THINGS: Simplificando aplicaciones respetando...
 
Shopify Partner Social
Shopify Partner SocialShopify Partner Social
Shopify Partner Social
 
Desenvolvimento web com jQuery Mobile
Desenvolvimento web com jQuery MobileDesenvolvimento web com jQuery Mobile
Desenvolvimento web com jQuery Mobile
 
Enjoy the vue.js
Enjoy the vue.jsEnjoy the vue.js
Enjoy the vue.js
 
Angular js
Angular jsAngular js
Angular js
 
Xxx
XxxXxx
Xxx
 
The bayzat company culture manifesto v3
The bayzat company culture manifesto   v3The bayzat company culture manifesto   v3
The bayzat company culture manifesto v3
 

Mais de Caelum

Por trás dos frameworks e além do reflection
Por trás dos frameworks e além do reflectionPor trás dos frameworks e além do reflection
Por trás dos frameworks e além do reflection
Caelum
 
Introducao a inteligencia artificial na educacao
Introducao a inteligencia artificial na educacaoIntroducao a inteligencia artificial na educacao
Introducao a inteligencia artificial na educacao
Caelum
 
Wsrest 2013
Wsrest 2013Wsrest 2013
Wsrest 2013
Caelum
 
[FrontInBH 2012] Por uma web mais rápida: técnicas de otimizações de sites - ...
[FrontInBH 2012] Por uma web mais rápida: técnicas de otimizações de sites - ...[FrontInBH 2012] Por uma web mais rápida: técnicas de otimizações de sites - ...
[FrontInBH 2012] Por uma web mais rápida: técnicas de otimizações de sites - ...
Caelum
 

Mais de Caelum (20)

Performance Web além do carregamento
Performance Web além do carregamentoPerformance Web além do carregamento
Performance Web além do carregamento
 
Desafios de Performance Web - BrazilJS
Desafios de Performance Web - BrazilJSDesafios de Performance Web - BrazilJS
Desafios de Performance Web - BrazilJS
 
Performance na web: o modelo RAIL e outras novidades
Performance na web: o modelo RAIL e outras novidadesPerformance na web: o modelo RAIL e outras novidades
Performance na web: o modelo RAIL e outras novidades
 
Tudo que você precisa saber sobre picture e srcset
Tudo que você precisa saber sobre picture e srcsetTudo que você precisa saber sobre picture e srcset
Tudo que você precisa saber sobre picture e srcset
 
Como o HTTP/2 vai mudar sua vida
Como o HTTP/2 vai mudar sua vidaComo o HTTP/2 vai mudar sua vida
Como o HTTP/2 vai mudar sua vida
 
Métricas e a automatização do controle de qualidade
Métricas e a automatização do controle de qualidadeMétricas e a automatização do controle de qualidade
Métricas e a automatização do controle de qualidade
 
HTTP/2, SPDY e Otimizações Web - Front In Maceió 2014 - Sérgio Lopes
HTTP/2, SPDY e Otimizações Web - Front In Maceió 2014 - Sérgio LopesHTTP/2, SPDY e Otimizações Web - Front In Maceió 2014 - Sérgio Lopes
HTTP/2, SPDY e Otimizações Web - Front In Maceió 2014 - Sérgio Lopes
 
Offline Web com Service Workers - Sérgio Lopes
Offline Web com Service Workers - Sérgio LopesOffline Web com Service Workers - Sérgio Lopes
Offline Web com Service Workers - Sérgio Lopes
 
Design Responsivo - MobCamp 2014
Design Responsivo - MobCamp 2014Design Responsivo - MobCamp 2014
Design Responsivo - MobCamp 2014
 
Além do responsive design: a mudança de paradigma do design adaptativo e os m...
Além do responsive design: a mudança de paradigma do design adaptativo e os m...Além do responsive design: a mudança de paradigma do design adaptativo e os m...
Além do responsive design: a mudança de paradigma do design adaptativo e os m...
 
Por trás dos frameworks e além do reflection
Por trás dos frameworks e além do reflectionPor trás dos frameworks e além do reflection
Por trás dos frameworks e além do reflection
 
Otimizações de Performance Web: Desafios do Mundo Mobile
Otimizações de Performance Web: Desafios do Mundo MobileOtimizações de Performance Web: Desafios do Mundo Mobile
Otimizações de Performance Web: Desafios do Mundo Mobile
 
Introducao a inteligencia artificial na educacao
Introducao a inteligencia artificial na educacaoIntroducao a inteligencia artificial na educacao
Introducao a inteligencia artificial na educacao
 
Otimizando o time to market - do zero a produção em poucas iterações
Otimizando o time to market - do zero a produção em poucas iteraçõesOtimizando o time to market - do zero a produção em poucas iterações
Otimizando o time to market - do zero a produção em poucas iterações
 
Wsrest 2013
Wsrest 2013Wsrest 2013
Wsrest 2013
 
Design Responsivo por uma Web única
Design Responsivo por uma Web únicaDesign Responsivo por uma Web única
Design Responsivo por uma Web única
 
Os Caminhos de uma Estratégia Mobile
Os Caminhos de uma Estratégia MobileOs Caminhos de uma Estratégia Mobile
Os Caminhos de uma Estratégia Mobile
 
Porque você deveria usar CDI nos seus projetos Java! - JavaOne LA 2012 - Sérg...
Porque você deveria usar CDI nos seus projetos Java! - JavaOne LA 2012 - Sérg...Porque você deveria usar CDI nos seus projetos Java! - JavaOne LA 2012 - Sérg...
Porque você deveria usar CDI nos seus projetos Java! - JavaOne LA 2012 - Sérg...
 
[FrontInBH 2012] Por uma web mais rápida: técnicas de otimizações de sites - ...
[FrontInBH 2012] Por uma web mais rápida: técnicas de otimizações de sites - ...[FrontInBH 2012] Por uma web mais rápida: técnicas de otimizações de sites - ...
[FrontInBH 2012] Por uma web mais rápida: técnicas de otimizações de sites - ...
 
Plataforma java: detalhes da JVM
Plataforma java: detalhes da JVMPlataforma java: detalhes da JVM
Plataforma java: detalhes da JVM
 

Último

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 

Último (20)

Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
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...
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
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
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
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...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
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
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
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
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 

Progressive Web Apps: o melhor da Web appficada