SlideShare uma empresa Scribd logo
1 de 63
Do front-end legado
à web mobile
Pequenos passos para uma
transição sem traumas

domingo, 20 de outubro de 13
Desenvolvedor e instrutor na Caelum.
Também graduado em psicologia. Hoje
com grande foco em front-end.

Instrutor e desenvolvedor na Caelum.
Atualmente trabalha com desenvolvimento
front-end, com foco em web mobile.

domingo, 20 de outubro de 13
Sem traumas
???

domingo, 20 de outubro de 13
Legado
Aquilo que alguém TRANSMITE a
outrem, que uma GERAÇÃO,
escola literária, etc., transmite à
POSTERIDADE, etc.
- Dicionário Aurélio

domingo, 20 de outubro de 13
Front-end legado?
Não esqueça que
a WEB É ÚNICA!

domingo, 20 de outubro de 13
Front-end
Legado
Conjunto anacrônico herdado de
práticas e tecnologias front-end
que não leva em conta a web
única. Geralmente com foco em
Desktop.
domingo, 20 de outubro de 13
Front-end
Legado
Conjunto anacrônico herdado de
práticas e tecnologias front-end
que não leva em conta a web
única. Geralmente com foco em
Desktop.
domingo, 20 de outubro de 13
Possíveis Soluções
Começar do ZERO?
Apenas em NOVOS projetos?
Não fazer NADA?

domingo, 20 de outubro de 13
Foque PRIMEIRO em tudo
aquilo que FRUSTRA seus
USUÁRIOS ...

e que já possa ser
implementado
RAPIDAMENTE.
domingo, 20 de outubro de 13
PARTE I
Fazendo MÁGICA
com POUCO

domingo, 20 de outubro de 13
ENTRADA DE DADOS

domingo, 20 de outubro de 13
NOVOS ELEMENTOS
DO HTML 5

domingo, 20 de outubro de 13
<input type="date">
<input type="email">
<input type="number">
<input type="tel">
<input type="range">
domingo, 20 de outubro de 13
<input type="date">
<input type="email">
Não esqueça!

<input type="number">

<!DOCTYPE html>

<input type="tel">
<input type="range">
domingo, 20 de outubro de 13
GEOLOCALIZAÇÃO

domingo, 20 de outubro de 13
GEOLOCALIZAÇÃO

domingo, 20 de outubro de 13
GOOGLE MAPS
<script src="http://maps.google.com/
maps/api/js?sensor=true"></script>
window.navigator.geolocation
.getCurrentPosition(function(posicao) {
var geocoder = new google.maps.Geocoder();
geocoder.geocode(......);
});
domingo, 20 de outubro de 13
OPEN STREET MAPS
http://nominatim.openstreetmap.org/reverse?
format=json&json_callback=
preencherDados&lat=-23.5880894&lon=-46.6321
951
preencherDados({"place_id":"19543416","licence":"Data u00a9
OpenStreetMap contributors, ODbL 1.0. http://
www.openstreetmap.org/
copyright","osm_type":"node","osm_id":"1791819411","lat":"-23.588
3154","lon":"-46.6324003","display_name":"Santander, Rua
Vergueiro, Chu00e1cara Klabin, Vila Mariana, Su00e3o Paulo,
RMSP, Su00e3o Paulo, Regiu00e3o Sudeste, 04110-040,
Brasil","address":{"bank":"Santander","road":"Rua Vergueiro".....

domingo, 20 de outubro de 13
DRAG N’ DROP

domingo, 20 de outubro de 13
JQUERY UI

DRAG N’DROP NÃO ROLA

domingo, 20 de outubro de 13
TOUCH PUNCH
http://touchpunch.furf.com
<script src="jquery.ui.touch-punch.min.js">

domingo, 20 de outubro de 13
JQUERY MOBILE
http://jquerymobile.com/
$(‘.adiciona’).on(‘swipeleft’, funcao);

HAMMERJS
http://eightmedia.github.io/hammer.js/
Hammer(‘.adiciona’).on(‘swipeleft’, funcao);

domingo, 20 de outubro de 13
PARTE 2
UM POUCO MAIS DE
TRABALHO

domingo, 20 de outubro de 13
Velocidade

domingo, 20 de outubro de 13
MINIFICAÇÃO
CONCATENAÇÃO

BANDA
LATÊNCIA

Há BOAS PRÁTICAS
ainda IGNORADAS

domingo, 20 de outubro de 13
CONSIDERE usar GRUNT em seu
WORKFLOW

http://gruntjs.com
domingo, 20 de outubro de 13
CONSIDERE usar GRUNT em seu
WORKFLOW

http://gruntjs.com
domingo, 20 de outubro de 13
CONSIDERE...

“BUILDAR” seu JQUERY

grunt custom: -effects
Sorry, no CDN

domingo, 20 de outubro de 13
CONSIDERE...
migrar para JQUERY
usar

ZEPTO

2.0

Sorry, no IE!

usar AMBOS, MAS...

domingo, 20 de outubro de 13

Apenas IE 9+
IE 10
NO MORE

CONDITIONAL
COMMENTS

<!--[if IE]>
<script src=‘jquery.js’>
</script>
<![endif]-->

domingo, 20 de outubro de 13
IE 10
NO MORE

domingo, 20 de outubro de 13

CONDITIONAL
COMMENTS
IE 10
NO MORE

CONDITIONAL
COMMENTS

<script>
document.write('<script src='
+('__proto__' in {} ? 'zepto' : 'jquery') +'.js>
</script>');
</script>

domingo, 20 de outubro de 13
PARTE 3
MAIS TRABALHO
AINDA

domingo, 20 de outubro de 13
DESKTOP

MOBILE

QUEBROU!
QUEBROU!

domingo, 20 de outubro de 13
QUEBROU?
QUEBRAR = BREAK

domingo, 20 de outubro de 13
QUEBROU?
MEDIA QUERIES
QUEBRAR = BREAK

BREAKPOINT
domingo, 20 de outubro de 13
<meta name="viewport"
content="width=device-width">

@media screen and (max-width: 750px) {
}

domingo, 20 de outubro de 13
domingo, 20 de outubro de 13
domingo, 20 de outubro de 13
.menu-navegacao {
	

 float: left;
}
.artigo {
	

 float: left;
}
.painel-novidades {
	

 float: left;
}

domingo, 20 de outubro de 13
.menu-navegacao {
	

 float: left;
}
.artigo {
	

 float: left;
}
.painel-novidades {
	

 float: left;
}
@media screen and (max-width: 750px) {
	

	

	

	

	

}

domingo, 20 de outubro de 13

.menu-navegacao {
	

 float: none;
	

 display: inline;
}
domingo, 20 de outubro de 13
domingo, 20 de outubro de 13
domingo, 20 de outubro de 13
@media screen and (max-width: 547px) {
	

	

 .menu-navegacao {
	

 	

 width: 100%;
	

 	

 display: block;
	

 }
}

domingo, 20 de outubro de 13
@media screen and (max-width: 547px) {
	

	

 .painel-novidades {
	

 	

 position: fixed;
	

 	

 top: 0;
	

 	

 left: 70%;
	

 	

 width: 30%;
	

 }
}
domingo, 20 de outubro de 13
var menu = document.querySelector("#painel-novidades");
var ul = menu.querySelectorAll(".novidades")[0];
menu.addEventListener("click", function(ev) {
var width = document.documentElement.clientWidth;
if(width <= 547) {
ul.classList.toggle("dropdown");
}
});

domingo, 20 de outubro de 13

.dropdown {
display: inline-block;
}
Hammer(menu).on("tap", function(ev) {
var width = document.documentElement.clientWidth;
if(width <= 547) {
ul.classList.toggle("dropdown");
}
});

domingo, 20 de outubro de 13
Hammer(menu).on("tap", function(ev) {
var width = document.documentElement.clientWidth;
if(width <= 547) {
ul.classList.toggle("dropdown");
}
});

@media screen and (max-width: 547px) {
	

 .lista-novidades {
	

 	

 display: none;
	

 }
}
domingo, 20 de outubro de 13
E AS TABELAS?

domingo, 20 de outubro de 13
domingo, 20 de outubro de 13
@media screen and (max-width: 547px) {
	

	

 table, thead, tbody, th, td, tr {
	

 	

 display: block;
	

 }

	

	

	

	

}
domingo, 20 de outubro de 13

thead tr {
	

 position: absolute;
	

 left: -9999px;
}
@media screen and (max-width: 547px) {
	

	

 td {
	

 	

 text-align: right;
	

 }
}

domingo, 20 de outubro de 13
@media screen and (max-width: 547px) {
	

	

 td:nth-of-type(1):before {
	

 	

 content: "Nome";
	

 }

	

 td:nth-of-type(2):before {
	

 	

 content: "Sobrenome";
	

 }
	

 td:nth-of-type(3):before {
	

 	

 content: "Idade";
	

 }
	

	

	

}

domingo, 20 de outubro de 13

td:before {
	

 font-weight: bold;
}
@media screen and (max-width: 547px) {
	

	

 td {
	

 	

 position: relative;
	

 }

	

	

	

	

	

}

domingo, 20 de outubro de 13

td:before {
	

 position: absolute;
	

 left: 6px;
	

 top: 6px;
}
BACKGROUND-IMAGE
NO TITULO

domingo, 20 de outubro de 13
header h1 {
display: block;
width: 660px;
height: 170px;
text-indent: -9999px;
background-image: url(img/logo.png);
}

domingo, 20 de outubro de 13
header h1 {
display: block;
width: 660px;
height: 170px;
text-indent: -9999px;
background-image: url(img/logo.png);
}

domingo, 20 de outubro de 13
header h1 {
	

 display: block;
width: auto;
	

 height: 6em;
	

 text-indent: -9999px;
	

 background-image: url(img/logo.png);
	

	

	

}
domingo, 20 de outubro de 13
header h1 {
	

 display: block;
width: auto;
	

 height: 6em;
	

 text-indent: -9999px;
	

 background-image: url(img/logo.png);
	

 background-position: center;
	

 background-repeat: no-repeat;
	

 background-size: contain;
}
domingo, 20 de outubro de 13
header h1 {
	

 display: block;
width: auto;
	

 height: 6em;
	

 text-indent: -9999px;
	

 background-image: url(img/logo.png);
	

 background-position: center;
	

 background-repeat: no-repeat;
	

 background-size: contain;
}
domingo, 20 de outubro de 13
domingo, 20 de outubro de 13
OBRIGADO!
@flaviohalmeida
flavio.almeida@caelum.com.br
vitor.mattos@caelum.com.br

domingo, 20 de outubro de 13

Mais conteúdo relacionado

Semelhante a do front end legado a web mobile

Neto Marin - Next Level Apps
Neto Marin - Next Level AppsNeto Marin - Next Level Apps
Neto Marin - Next Level AppsiMasters
 
O fantástico mundo de Android
O fantástico mundo de AndroidO fantástico mundo de Android
O fantástico mundo de AndroidSuelen Carvalho
 
Android Dev Conference 2017 - Arquitetura para projetos Android
 Android Dev Conference 2017 - Arquitetura para projetos Android Android Dev Conference 2017 - Arquitetura para projetos Android
Android Dev Conference 2017 - Arquitetura para projetos AndroidiMasters
 
Design Responsivo com Sass
Design Responsivo com SassDesign Responsivo com Sass
Design Responsivo com SassVitor Garcia
 
Blog cozinha internacional da dona sinhá
Blog cozinha internacional da dona sinháBlog cozinha internacional da dona sinhá
Blog cozinha internacional da dona sinháAmebas
 
Compus Party - processing e arduino
Compus Party - processing e arduinoCompus Party - processing e arduino
Compus Party - processing e arduinoCampus Party Brasil
 
HTML5 - Seu navegador não é mais o mesmo
HTML5 - Seu navegador não é mais o mesmoHTML5 - Seu navegador não é mais o mesmo
HTML5 - Seu navegador não é mais o mesmoCaio Gondim
 
JavaScript ninja com jQuery
JavaScript ninja com jQueryJavaScript ninja com jQuery
JavaScript ninja com jQueryReinaldo Junior
 
AngularJS Abraçando o MVC Client-Side
AngularJS Abraçando o MVC Client-SideAngularJS Abraçando o MVC Client-Side
AngularJS Abraçando o MVC Client-SideSergio Azevedo
 
Acessibilidade na Web - Senac 2013
Acessibilidade na Web - Senac 2013Acessibilidade na Web - Senac 2013
Acessibilidade na Web - Senac 2013Reinaldo Ferraz
 
JQuery Alagoinhas Dev Day - UNEB
JQuery Alagoinhas Dev Day - UNEBJQuery Alagoinhas Dev Day - UNEB
JQuery Alagoinhas Dev Day - UNEBLuciano Borges
 
Chrome Apps e NodeWebkit: traga seu webapp para o Desktop - #outubrorosa
Chrome Apps e NodeWebkit: traga seu webapp para o Desktop - #outubrorosaChrome Apps e NodeWebkit: traga seu webapp para o Desktop - #outubrorosa
Chrome Apps e NodeWebkit: traga seu webapp para o Desktop - #outubrorosaJoselito Nascimento
 

Semelhante a do front end legado a web mobile (18)

Neto Marin - Next Level Apps
Neto Marin - Next Level AppsNeto Marin - Next Level Apps
Neto Marin - Next Level Apps
 
Aula android 04
Aula android 04Aula android 04
Aula android 04
 
O fantástico mundo de Android
O fantástico mundo de AndroidO fantástico mundo de Android
O fantástico mundo de Android
 
Android Dev Conference 2017 - Arquitetura para projetos Android
 Android Dev Conference 2017 - Arquitetura para projetos Android Android Dev Conference 2017 - Arquitetura para projetos Android
Android Dev Conference 2017 - Arquitetura para projetos Android
 
Design Responsivo com Sass
Design Responsivo com SassDesign Responsivo com Sass
Design Responsivo com Sass
 
Blog cozinha internacional da dona sinhá
Blog cozinha internacional da dona sinháBlog cozinha internacional da dona sinhá
Blog cozinha internacional da dona sinhá
 
Compus Party - processing e arduino
Compus Party - processing e arduinoCompus Party - processing e arduino
Compus Party - processing e arduino
 
Labs Javascript AIT #2
Labs Javascript AIT #2Labs Javascript AIT #2
Labs Javascript AIT #2
 
Android na Prática
Android na PráticaAndroid na Prática
Android na Prática
 
Fabric
FabricFabric
Fabric
 
HTML5 - Seu navegador não é mais o mesmo
HTML5 - Seu navegador não é mais o mesmoHTML5 - Seu navegador não é mais o mesmo
HTML5 - Seu navegador não é mais o mesmo
 
JavaScript ninja com jQuery
JavaScript ninja com jQueryJavaScript ninja com jQuery
JavaScript ninja com jQuery
 
AngularJS Abraçando o MVC Client-Side
AngularJS Abraçando o MVC Client-SideAngularJS Abraçando o MVC Client-Side
AngularJS Abraçando o MVC Client-Side
 
Acessibilidade na Web - Senac 2013
Acessibilidade na Web - Senac 2013Acessibilidade na Web - Senac 2013
Acessibilidade na Web - Senac 2013
 
JQuery Alagoinhas Dev Day - UNEB
JQuery Alagoinhas Dev Day - UNEBJQuery Alagoinhas Dev Day - UNEB
JQuery Alagoinhas Dev Day - UNEB
 
Agora é Android, Tá Safo?
Agora é Android, Tá Safo? Agora é Android, Tá Safo?
Agora é Android, Tá Safo?
 
Seu site voando
Seu site voandoSeu site voando
Seu site voando
 
Chrome Apps e NodeWebkit: traga seu webapp para o Desktop - #outubrorosa
Chrome Apps e NodeWebkit: traga seu webapp para o Desktop - #outubrorosaChrome Apps e NodeWebkit: traga seu webapp para o Desktop - #outubrorosa
Chrome Apps e NodeWebkit: traga seu webapp para o Desktop - #outubrorosa
 

do front end legado a web mobile