SlideShare uma empresa Scribd logo
1 de 34
Baixar para ler offline
Bridges no React Native
Lucas Santos Silva
@santoslucas
www.linkedin.com/in/lucassantossilva
Como o React Native funciona?
• Threads Nativas - main thread, lida com gestos e
views, modules, shadow node
• Thread JS - roda a engine JS em separado
Como o React Native funciona?
Como as threads interagem?
Como as threads interagem?
Bridge
• Fazem a comunicação entre o nativo e o JS
• As bridges são o core do React Native
• Assíncronas
• Mensagens serializadas
Exemplo
Bridge
Bridge
• React Native já oferece diversos componentes e
APIs
• Mas e se for necessário alguma SDK ou feature
nativa não disponível no RN?
Como implementar uma Bridge?
Como implementar uma Bridge?
• Android - Java ou Kotlin
• iOS - Objective-C ou Swift
• Dois tipos:
- Native module
- Native UI
Native Module
• Expões funções nativas para o Javascript
• Não retorna valores
- Usa-se callbacks ou promisses
- Também é possível usar EventEmitter
ToastAndroid
https://facebook.github.io/react-native/docs/
toastandroid.html
Toast Module (Android) - Java
Toast Module (Android) - Java
Toast Module (Android) - JS
AlertIOS
https://facebook.github.io/react-native/docs/
alertios.html
AlertIOS (iOS) - Objective-C
AlertIOS (iOS) - Objective-C
AlertIOS (iOS) - Objective-C
AlertIOS (iOS) - JS
Native UI
• Expões views nativas para serem usadas como
Componentes
• Recebe props do React Native
Native UI - ImageView
Native UI - ImageView
Native UI - JS
Native UI - JS
Gráfico no G1
• Não havia forma eficaz de
implementar gráficos no RN
• Libs só com Webview
• https://github.com/wuxudong/
react-native-charts-wrapper
• Android - MPAndroidChart
• iOS - charts
Gráfico no G1
Algumas dicas
• Avalie bem se você realmente precisa criar uma bridge
• Muitas dependências de projeto Android deixam o build
mais lento
Algumas dicas
• https://github.com/frostney/react-native-create-library
• https://github.com/peggyrayzis/react-native-create-bridge
Talks interessantes
• https://www.youtube.com/watch?v=GiUo88TGebs
• https://www.youtube.com/watch?v=NkbO-Vhqbl0
• https://www.youtube.com/watch?v=hDviGU-57lU
Artigos
• https://wetalkit.xyz/react-native-what-it-is-and-how-it-
works-e2182d008f5e
• https://www.logicroom.co/react-native-architecture-
explained/
• https://tadeuzagallo.com/blog/react-native-bridge/
Documentação do RN
• https://facebook.github.io/react-native/docs/native-modules-
ios.html
• https://facebook.github.io/react-native/docs/native-
components-ios.html
• https://facebook.github.io/react-native/docs/native-modules-
android.html
• https://facebook.github.io/react-native/docs/native-
components-android.html
Obrigado

Mais conteúdo relacionado

Semelhante a Bridges no React Native - Lucas Silva

TDC2015 Porto Alegre - Interfaces ricas com Rails e React.JS
TDC2015  Porto Alegre - Interfaces ricas com Rails e React.JSTDC2015  Porto Alegre - Interfaces ricas com Rails e React.JS
TDC2015 Porto Alegre - Interfaces ricas com Rails e React.JSRodrigo Urubatan
 
NodeJS - Tutorial de forma simples e pratica.
NodeJS - Tutorial de forma simples e pratica.NodeJS - Tutorial de forma simples e pratica.
NodeJS - Tutorial de forma simples e pratica.Filipe Morelli
 
Real time com java e Node.Js
Real time com java e Node.JsReal time com java e Node.Js
Real time com java e Node.JsFabiano Modos
 
Netbeans 6.7: a única IDE que você precisa!
Netbeans 6.7: a única IDE que você precisa!Netbeans 6.7: a única IDE que você precisa!
Netbeans 6.7: a única IDE que você precisa!João Longo
 
Desenvolvimento em .Net - Introducao A Framework
Desenvolvimento em .Net - Introducao A FrameworkDesenvolvimento em .Net - Introducao A Framework
Desenvolvimento em .Net - Introducao A FrameworkVitor Silva
 
Spring: Overview do framework mais popular para desenvolvimento em Java
Spring: Overview do framework mais popular para desenvolvimento em JavaSpring: Overview do framework mais popular para desenvolvimento em Java
Spring: Overview do framework mais popular para desenvolvimento em JavaMariana de Azevedo Santos
 
Java, NetBeans e Orientação a Objetos
Java, NetBeans e Orientação a ObjetosJava, NetBeans e Orientação a Objetos
Java, NetBeans e Orientação a ObjetosJoão Longo
 
Projeto Octopus - Database Sharding para ActiveRecord
Projeto Octopus - Database Sharding para ActiveRecordProjeto Octopus - Database Sharding para ActiveRecord
Projeto Octopus - Database Sharding para ActiveRecordtchandy
 
JHipster - Produtividade e Maturidade em suas mãos
JHipster - Produtividade e Maturidade em suas mãosJHipster - Produtividade e Maturidade em suas mãos
JHipster - Produtividade e Maturidade em suas mãosThiago Soares
 
Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013
Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013
Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013javamanrj
 
DevCommerce Conference 2016: React para aplicações web e mobile como platafor...
DevCommerce Conference 2016: React para aplicações web e mobile como platafor...DevCommerce Conference 2016: React para aplicações web e mobile como platafor...
DevCommerce Conference 2016: React para aplicações web e mobile como platafor...iMasters
 
Desenvolvimento RIA com Java
Desenvolvimento RIA com JavaDesenvolvimento RIA com Java
Desenvolvimento RIA com Javaarmeniocardoso
 

Semelhante a Bridges no React Native - Lucas Silva (20)

TDC2015 Porto Alegre - Interfaces ricas com Rails e React.JS
TDC2015  Porto Alegre - Interfaces ricas com Rails e React.JSTDC2015  Porto Alegre - Interfaces ricas com Rails e React.JS
TDC2015 Porto Alegre - Interfaces ricas com Rails e React.JS
 
NodeJS - Tutorial de forma simples e pratica.
NodeJS - Tutorial de forma simples e pratica.NodeJS - Tutorial de forma simples e pratica.
NodeJS - Tutorial de forma simples e pratica.
 
Real time com java e Node.Js
Real time com java e Node.JsReal time com java e Node.Js
Real time com java e Node.Js
 
React Native na globo.com
React Native na globo.comReact Native na globo.com
React Native na globo.com
 
Netbeans 6.7: a única IDE que você precisa!
Netbeans 6.7: a única IDE que você precisa!Netbeans 6.7: a única IDE que você precisa!
Netbeans 6.7: a única IDE que você precisa!
 
Desenvolvimento em .Net - Introducao A Framework
Desenvolvimento em .Net - Introducao A FrameworkDesenvolvimento em .Net - Introducao A Framework
Desenvolvimento em .Net - Introducao A Framework
 
Curso AngularJS - Parte 1
Curso AngularJS - Parte 1Curso AngularJS - Parte 1
Curso AngularJS - Parte 1
 
Spring: Overview do framework mais popular para desenvolvimento em Java
Spring: Overview do framework mais popular para desenvolvimento em JavaSpring: Overview do framework mais popular para desenvolvimento em Java
Spring: Overview do framework mais popular para desenvolvimento em Java
 
React Native - JSday
React Native - JSdayReact Native - JSday
React Native - JSday
 
Java, NetBeans e Orientação a Objetos
Java, NetBeans e Orientação a ObjetosJava, NetBeans e Orientação a Objetos
Java, NetBeans e Orientação a Objetos
 
Curso jsf
Curso jsfCurso jsf
Curso jsf
 
Projeto Octopus - Database Sharding para ActiveRecord
Projeto Octopus - Database Sharding para ActiveRecordProjeto Octopus - Database Sharding para ActiveRecord
Projeto Octopus - Database Sharding para ActiveRecord
 
JHipster - Produtividade e Maturidade em suas mãos
JHipster - Produtividade e Maturidade em suas mãosJHipster - Produtividade e Maturidade em suas mãos
JHipster - Produtividade e Maturidade em suas mãos
 
Node js - Javascript Server Side
Node js - Javascript Server SideNode js - Javascript Server Side
Node js - Javascript Server Side
 
Android fest
Android festAndroid fest
Android fest
 
Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013
Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013
Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013
 
DevCommerce Conference 2016: React para aplicações web e mobile como platafor...
DevCommerce Conference 2016: React para aplicações web e mobile como platafor...DevCommerce Conference 2016: React para aplicações web e mobile como platafor...
DevCommerce Conference 2016: React para aplicações web e mobile como platafor...
 
Desenvolvimento RIA com Java
Desenvolvimento RIA com JavaDesenvolvimento RIA com Java
Desenvolvimento RIA com Java
 
MC - Java Enterprise Edition 6 (Java EE)
MC - Java Enterprise Edition 6 (Java EE)MC - Java Enterprise Edition 6 (Java EE)
MC - Java Enterprise Edition 6 (Java EE)
 
Netbeans slides
Netbeans slidesNetbeans slides
Netbeans slides
 

Bridges no React Native - Lucas Silva