devcommerce conference 2016: react para aplicações web e mobile como plataforma de interface

71
React Para aplicações web e mobile como plataforma de interface @breno_calazans VTEX

Upload: imasters

Post on 23-Jan-2018

198 views

Category:

Education


0 download

TRANSCRIPT

Page 1: DevCommerce Conference 2016: React para aplicações web e mobile como plataforma de interface

ReactPara aplicações web e mobilecomo plataforma de interface

@breno_calazansVTEX

Page 2: DevCommerce Conference 2016: React para aplicações web e mobile como plataforma de interface

Por que estou falando de React?

Page 3: DevCommerce Conference 2016: React para aplicações web e mobile como plataforma de interface

VTEX é uma plataforma SaaS de e-commerce

Page 4: DevCommerce Conference 2016: React para aplicações web e mobile como plataforma de interface
Page 5: DevCommerce Conference 2016: React para aplicações web e mobile como plataforma de interface

Visite nosso estande!Próximo ao restaurante

Page 6: DevCommerce Conference 2016: React para aplicações web e mobile como plataforma de interface

Como melhorar a construção de interface de lojas?

Page 7: DevCommerce Conference 2016: React para aplicações web e mobile como plataforma de interface

Tentamos o modo tradicional

Page 8: DevCommerce Conference 2016: React para aplicações web e mobile como plataforma de interface

Não é possível ter uma experiência ótima sem interações complexas

Page 9: DevCommerce Conference 2016: React para aplicações web e mobile como plataforma de interface

A VTEX está construindo uma nova plataforma para desenvolver lojas como aplicações web

Page 10: DevCommerce Conference 2016: React para aplicações web e mobile como plataforma de interface
Page 11: DevCommerce Conference 2016: React para aplicações web e mobile como plataforma de interface

Breve História das Aplicações Web

Page 12: DevCommerce Conference 2016: React para aplicações web e mobile como plataforma de interface

Javascript<div>

<h1 id="title"></h1>

</div>

<script>

var title = document.getElementById

('title');

title.innerHTML = 'Olá, mundo!';

</script>

Page 13: DevCommerce Conference 2016: React para aplicações web e mobile como plataforma de interface

jQuery<div>

<h1 id="title"></h1>

</div>

<script>

$('#title').text('Olá, mundo!');

</script>

Page 14: DevCommerce Conference 2016: React para aplicações web e mobile como plataforma de interface

Frameworkscom Data Bind

e TemplatesAngular, Ember, Knockout e

Backbone

<div data-bind="template: 'title-

template'">

</div>

<template id="title-template">

<h1 data-bind="text: $title"></h1>

</template>

<script>

var viewModel = { title: '' };

ko.applyBindings(viewModel);

viewModel.title('Olá, mundo!');

</script>

Page 15: DevCommerce Conference 2016: React para aplicações web e mobile como plataforma de interface

Problemas

Page 16: DevCommerce Conference 2016: React para aplicações web e mobile como plataforma de interface

Muitos conceitos!Filters, Directives, Services, Controllers,

Transclusion, Factory, Provider, etc…

Page 17: DevCommerce Conference 2016: React para aplicações web e mobile como plataforma de interface

SEOGoogle

Page 18: DevCommerce Conference 2016: React para aplicações web e mobile como plataforma de interface

Linguagem de Template

Page 19: DevCommerce Conference 2016: React para aplicações web e mobile como plataforma de interface

Código Imprevisível

Page 20: DevCommerce Conference 2016: React para aplicações web e mobile como plataforma de interface

“Na minha época era mais fácil…”

Page 21: DevCommerce Conference 2016: React para aplicações web e mobile como plataforma de interface

Request

Usuário abre uma página

Servidor Banco

Lê os dados do banco de dados

Servidor

Renderiza um template com os dados

Response

Página HTML

Request

Atende a requisição

Page 22: DevCommerce Conference 2016: React para aplicações web e mobile como plataforma de interface

(data) => page

Page 23: DevCommerce Conference 2016: React para aplicações web e mobile como plataforma de interface

O Facebook parou pararepensar as boas práticas

Page 24: DevCommerce Conference 2016: React para aplicações web e mobile como plataforma de interface

React

Page 25: DevCommerce Conference 2016: React para aplicações web e mobile como plataforma de interface

Biblioteca Javascript para construção de interfaces

Page 26: DevCommerce Conference 2016: React para aplicações web e mobile como plataforma de interface

Muitos conceitos

Page 27: DevCommerce Conference 2016: React para aplicações web e mobile como plataforma de interface

ComponentesMuitos conceitos

Page 28: DevCommerce Conference 2016: React para aplicações web e mobile como plataforma de interface

Código Imprevisível

Page 29: DevCommerce Conference 2016: React para aplicações web e mobile como plataforma de interface

(data) => HTMLCódigo Imprevisível

Page 30: DevCommerce Conference 2016: React para aplicações web e mobile como plataforma de interface

(data) => HTMLCódigo Imprevisível

Page 31: DevCommerce Conference 2016: React para aplicações web e mobile como plataforma de interface

Linguagem de Template

Page 32: DevCommerce Conference 2016: React para aplicações web e mobile como plataforma de interface

Tudo é JavascriptLinguagem de Template

Page 33: DevCommerce Conference 2016: React para aplicações web e mobile como plataforma de interface

Performance

Page 34: DevCommerce Conference 2016: React para aplicações web e mobile como plataforma de interface

Virtual DOMPerformance

Page 35: DevCommerce Conference 2016: React para aplicações web e mobile como plataforma de interface

SEO

Page 36: DevCommerce Conference 2016: React para aplicações web e mobile como plataforma de interface

Renderização Server-sideSEO

Page 37: DevCommerce Conference 2016: React para aplicações web e mobile como plataforma de interface

“E os designers?”

Page 38: DevCommerce Conference 2016: React para aplicações web e mobile como plataforma de interface

JSXclass Hello extends React.Component {

render() {

return <h1>Olá Mundo!</h1>;

}

}

JSX

Page 39: DevCommerce Conference 2016: React para aplicações web e mobile como plataforma de interface

API DeclarativaSQL, Regex e Programação funcional

Page 40: DevCommerce Conference 2016: React para aplicações web e mobile como plataforma de interface

SELECT * FROM usersWHERE name=”Silva”;

var table = Database.use(‘users’); var users = table.getAll();

var result = filter(users, (user) => { return user.name == “Silva”;});

API Declarativa API Imperativa

Page 41: DevCommerce Conference 2016: React para aplicações web e mobile como plataforma de interface

Com React você não precisa lidar diretamente com o DOM

Page 42: DevCommerce Conference 2016: React para aplicações web e mobile como plataforma de interface

Facebook, Netflix, Dropbox, AirBnb, Reddit, PayPal, Khan Academy, Walmart,ESPN, Microsoft, Uber,NFL, Mozilla, Globo

Page 43: DevCommerce Conference 2016: React para aplicações web e mobile como plataforma de interface

Ressalvas!

Page 44: DevCommerce Conference 2016: React para aplicações web e mobile como plataforma de interface

React não é bala de prata

Page 45: DevCommerce Conference 2016: React para aplicações web e mobile como plataforma de interface

Caso você não queira lidar com renderização server-side, use

apenas em áreas logadas

Page 46: DevCommerce Conference 2016: React para aplicações web e mobile como plataforma de interface

Mobile Apps

Page 47: DevCommerce Conference 2016: React para aplicações web e mobile como plataforma de interface

Cordova & PhoneGap

Page 48: DevCommerce Conference 2016: React para aplicações web e mobile como plataforma de interface

Browser● Não tem sistema de gestos● Javascript não tem processos

paralelos● Não tem acesso a capacidades

nativas

Page 49: DevCommerce Conference 2016: React para aplicações web e mobile como plataforma de interface

O ambiente nativo é muito mais poderoso que o web

Page 50: DevCommerce Conference 2016: React para aplicações web e mobile como plataforma de interface

Mas tudo vem com um custo...

Page 51: DevCommerce Conference 2016: React para aplicações web e mobile como plataforma de interface

O ambiente nativo é mais hostil

Page 52: DevCommerce Conference 2016: React para aplicações web e mobile como plataforma de interface

iOS e AndroidEquipes, ferramentas, projetos e

códigos diferentes

Page 53: DevCommerce Conference 2016: React para aplicações web e mobile como plataforma de interface

API Imperativa

Page 54: DevCommerce Conference 2016: React para aplicações web e mobile como plataforma de interface

React?

Page 55: DevCommerce Conference 2016: React para aplicações web e mobile como plataforma de interface

React foi feito para construir qualquer sistema de interfaces

Page 56: DevCommerce Conference 2016: React para aplicações web e mobile como plataforma de interface

React Native

Page 57: DevCommerce Conference 2016: React para aplicações web e mobile como plataforma de interface

É um framework para construção de aplicativos nativos usando

Javascript e React.

Page 58: DevCommerce Conference 2016: React para aplicações web e mobile como plataforma de interface

Arquitetura multicore

Page 59: DevCommerce Conference 2016: React para aplicações web e mobile como plataforma de interface

API Declarativa

Page 60: DevCommerce Conference 2016: React para aplicações web e mobile como plataforma de interface

“Escreva uma vez, rode em qualquer lugar”

Page 61: DevCommerce Conference 2016: React para aplicações web e mobile como plataforma de interface

“Aprenda uma vez, desenvolva em qualquer lugar”

Page 62: DevCommerce Conference 2016: React para aplicações web e mobile como plataforma de interface

“Compartilhe quando possível,vá nativo quando necessário”

Page 63: DevCommerce Conference 2016: React para aplicações web e mobile como plataforma de interface

Compartilhe

● APIs● Ferramentas● Linguagem● Código

Nativo

Page 64: DevCommerce Conference 2016: React para aplicações web e mobile como plataforma de interface

Compartilhe

● APIs● Ferramentas● Linguagem● Código

Nativo

● Funcionalidades Proprietárias

● Performance● Investimentos

Existentes

Page 65: DevCommerce Conference 2016: React para aplicações web e mobile como plataforma de interface

Facebook Ads Manager● Experiência nativa● Feito pelo mesmo time● Compartilha 80-95% do código

Page 66: DevCommerce Conference 2016: React para aplicações web e mobile como plataforma de interface

Concluindo

Page 67: DevCommerce Conference 2016: React para aplicações web e mobile como plataforma de interface

React mudou a comunidade fundamentalmente

Page 68: DevCommerce Conference 2016: React para aplicações web e mobile como plataforma de interface

Popular

Github Stars

★ 43,131 React

★ 39,717 jQuery

★ 16,300 Ember

★ 12,540 Angular

Page 69: DevCommerce Conference 2016: React para aplicações web e mobile como plataforma de interface

Criou um ecossistema

Pacotes no npm

15,202 React

9,915 jQuery

3,682 Ember

7,589 Angular

Page 70: DevCommerce Conference 2016: React para aplicações web e mobile como plataforma de interface

React- Abstração simples- Fácil de testar- API Declarativa- Desenvolvedores confiantes- Facilita composição- Várias plataformas

Page 71: DevCommerce Conference 2016: React para aplicações web e mobile como plataforma de interface

Obrigado