React Native na globo.com

53
React Native

Transcript of React Native na globo.com

Page 1: React Native na globo.com

React Native

Page 2: React Native na globo.com

[email protected]

Desenvolvedor desde 2005 / iOS 2014

Quase 2 anos na globo.com

Backstage Native

Emiliano Barbosa

Page 3: React Native na globo.com

agenda

• O que é React Native?

• Módulos Nativos

• React Native na globo.com

Page 4: React Native na globo.com

Que diabos é

React Native?

Page 5: React Native na globo.com

react native o que é?• “Rapid cross-platform mobile development”

Page 6: React Native na globo.com

react native

• “A React Native App is a Real Mobile App”

Page 7: React Native na globo.com

react native outros

Page 8: React Native na globo.com

Uai, é web ou não é?

Page 9: React Native na globo.com

• “A Javascript library for building user interfaces”

reactjs

https://facebook.github.io/react/

Page 10: React Native na globo.com

arquitetura

Page 11: React Native na globo.com

Posso usar?

Page 12: React Native na globo.com

https://www.thoughtworks.com/pt/radar/languages-and-frameworks

technology Radar Nov'16 thoughtWorks

Page 13: React Native na globo.com

57 Apps

react native showcase

https://facebook.github.io/ react-native/showcase.html

Page 14: React Native na globo.com

E eu com isso?

Page 15: React Native na globo.com

react native módulos nativos

http://moduscreate.com/leverage-existing-ios-views-react-native-app/

• “Real native code to access access to the full power of platform”

Page 16: React Native na globo.com

#import "React/RCTBridgeModule.h"

@interface OutputVolume : NSObject<RCTBridgeModule> @end

@implementation OutputVolume

RCT_EXPORT_MODULE()

@end

módulo nativo bridge module

Page 17: React Native na globo.com

RCT_EXPORT_METHOD(get) { float v = [AVAudioSession sharedInstance].outputVolume; RCTLogInfo(@"Volume level: %f", v); }

import { NativeModules } from 'react-native'; const OV = NativeModules.OutputVolume; OV.get();

módulo nativo método

Page 18: React Native na globo.com

módulo nativo macros

• Métodos com argumentos

• Métodos com callback

• Métodos com Promises

• Threading (GCD)

• Injeção de Dependências

• Envio de Eventos (eventDispatcher)

Page 19: React Native na globo.com

Eu posso fazer isso!

Page 20: React Native na globo.com

React Native na globo.com

Page 21: React Native na globo.com

equipe de produtos

equipe de plataformas

globo.com

Page 22: React Native na globo.com

globo.com app como plataforma

Page 23: React Native na globo.com

globo.com app como plataforma

Cabeçalho (NavBar)

Page 24: React Native na globo.com

globo.com app como plataforma

Régua (TabBar)

Page 25: React Native na globo.com

globo.com app como plataforma

Webview

Page 26: React Native na globo.com

globo.com app como plataforma

Cabeçalho (NavBar)

Webview

Régua (TabBar)

Page 27: React Native na globo.com

globo.com ponto de partida

http://www.slideshare.net/sbmadhav/creating-native-cross-platform-apps

Page 28: React Native na globo.com

globo.com ponto de partida

http://www.slideshare.net/sbmadhav/creating-native-cross-platform-apps

Page 29: React Native na globo.com

globo.com ponto de partida

http://www.slideshare.net/sbmadhav/creating-native-cross-platform-apps

Page 30: React Native na globo.com

globo.com provas de conceito

Page 31: React Native na globo.com

• Tentativa de melhoria da versão browser

globo.com provas de conceito

Page 32: React Native na globo.com

• Tentativa de melhoria da versão browser

• Desenvolvimento de uma versão nativa

globo.com provas de conceito

Page 33: React Native na globo.com

• Tentativa de melhoria da versão browser

• Desenvolvimento de uma versão nativa

• Desenvolvimento de uma versão multi-plataforma

globo.com provas de conceito

Page 34: React Native na globo.com

Spoiler

Page 35: React Native na globo.com

• Experiência do Usuário (App Nativa)

globo.com solução multi plataforma

Page 36: React Native na globo.com

• Experiência do Usuário (App Nativa)

• Conhecimento de Javascript dos times

globo.com solução multi plataforma

Page 37: React Native na globo.com

• Experiência do Usuário (App Nativa)

• Conhecimento de Javascript dos times

• Opensource (O Facebook está empenhado tanto no ReactJs quanto no ReactNative)

globo.com solução multi plataforma

Page 38: React Native na globo.com

• Experiência do Usuário (App Nativa)

• Conhecimento de Javascript dos times

• Opensource (O Facebook está empenhado tanto no ReactJs quanto no ReactNative)

• Reaproveitamento de código

globo.com solução multi plataforma

Page 39: React Native na globo.com

392 × 690392 × 690

globo.com resultado(wip)

React Native Browser

Page 40: React Native na globo.com

ReactNative Code Push: https://github.com/Microsoft/react-native-code-push

npm install -g code-push-cli code-push register code-push app add <appName> code-push release-react <appName> <platform>

stack code push

Page 41: React Native na globo.com

• Xcode

• Linter (Eslint airbnb)

• Flow (vs Typescript)

• MobX (vs Redux)

• RN Router Flux/ Mobx Router

• Webview Bridge

• AndroidStudio

• Urban Airship

• ES6 fetch

• Code Push

• Fabric/Firebase

• Jest

globo.com stack, editores e ide's

Page 42: React Native na globo.com

E a parte ruim?

Page 43: React Native na globo.com

• Depender de projetos open source experimentais (0.40)

react native desvantagens

Page 44: React Native na globo.com

• Depender de projetos open source experimentais

• Erros que a sua especialidade não está acostumada

react native desvantagens

Page 45: React Native na globo.com

• Depender de projetos open source experimentais

• Erros que a sua especialidade não está acostumada

• Atualizações constantes e quebras de contrato

react native desvantagens

Page 46: React Native na globo.com

• Depender de projetos open source experimentais

• Erros que a sua especialidade não está acostumada

• Atualizações constantes e quebras de contrato

• Ler muito código e estudar muito (relativamente pouca documentação)

react native desvantagens

Page 47: React Native na globo.com

• Depender de projetos open source experimentais

• Erros que a sua especialidade não está acostumada

• Atualizações constantes e quebras de contrato

• Ler muito código e estudar muito (relativamente pouca documentação)

• Estigma.

react native desvantagens

Page 48: React Native na globo.com

react native demo

Page 49: React Native na globo.com

npm install -g react-native react-native-cli react-native init cocoaHeadsApp

cd cocoaHeadsApp react-native run-ios

React Native na globo.com

Page 51: React Native na globo.com

globo.com

Pessoas talentosas criam as suas próprias oportunidades e essa é a sua chance de ser quem você é. Sabemos que você nasceu pra isso!

http://talentos.globo.com

Page 52: React Native na globo.com

• React Native - Desenvolvendo aplicações nativas com JavaScript

• ReactNative Player

• Who's using React Native?

• How to Create a React Native iOS Native Module

• Is React Native next choice for mobile apps?

• Dive into React Native performance

links referências

Page 53: React Native na globo.com

• Tadeu Zagallo: React Native Architecture Overview

• React.js Conf 2015 Keynote - Introducing React Native

• React.js Conf 2015 Keynote 2 - A Deep Dive into React Native

• react native training

• Technology Radar - Languages & Frameworks

• TIOBE Index for January 2017

links referências