SlideShare una empresa de Scribd logo
1 de 168
Descargar para leer sin conexión
REACT NATIVE
REACT NATIVE
Workshop
Fellipe Chagas
@chagasaway
Ajudamos grandes empresas e
startups a focarem em seu negócio
entregando tecnologia
DESENVOLVIMENTO
NATIVO
DESENVOLVIMENTO NATIVO
DESENVOLVIMENTO NATIVO
DESENVOLVIMENTO NATIVO
DESENVOLVIMENTO NATIVO
DESENVOLVIMENTO
HÍBRIDO
DESENVOLVIMENTO HÍBRIDO
DESENVOLVIMENTO HÍBRIDO
DESENVOLVIMENTO HÍBRIDO
DESENVOLVIMENTO HÍBRIDO
DESENVOLVIMENTO HÍBRIDO
DESENVOLVIMENTO HÍBRIDO
DESENVOLVIMENTO HÍBRIDO
DESENVOLVIMENTO HÍBRIDO
FRAMEWORKS
FRAMEWORKS
FRAMEWORKS
FRAMEWORKS
FRAMEWORKS
FRAMEWORKS
FRAMEWORKS
35.350 stars
897 contribuidores

e crescendo…
REACT
REACT
REACT
REACT
REACT
e milhares de outros…
REACT
COMPONENTES
REACT
COMPONENTES
TUDO PODE SER JAVASCRIPT
REACT
VIRTUAL DOM
COMPONENTES
TUDO PODE SER JAVASCRIPT
COMPONENTES
APP
COMPONENTES
HEADER
TABS
CARD
CARD
COMPONENTES
HEADER
TABS
CARD
CARD IMAGE
USER
AVATAR
CARD TEXT
CARD IMAGE
USER
AVATAR
CARD TEXT
COMPONENTES
HEADER
TABS
CARD
CARD IMAGE
USER
AVATAR
CARD TEXT
CARD IMAGE
USER
AVATAR
CARD TEXT
HEADER
TABS
ACCOUNT INFO
USER
AVATAR
ACCOUNT SETTINGS
CARD TEXT
CARD IMAGE
USER

AVATAR
COMPONENTES
CARD TEXT
CARD IMAGE
USER

AVATAR
COMPONENTES
import React, {
Component, StyleSheet, PropTypes, Image,
} from 'react-native'
export default class Avatar extends Component {
constructor(props) {
super(props)
}
render() {
return (
<Image source={this.props.image} style={styles.image} />
)
}
}
Avatar.propTypes = {
image: PropTypes.object.isRequired,
}
const styles = StyleSheet.create({
image: {
width: 30,
height: 30,
borderRadius: 15
},
})
CARD IMAGE
USER

AVATAR
CARD TEXT
COMPONENTES
COMPONENTES
componentWillMount
COMPONENTES
componentWillMount
componentDidMount
COMPONENTES
componentWillMount
componentDidMount
componentWillReceiveProps
COMPONENTES
componentWillMount
componentDidMount
componentWillReceiveProps
shouldComponentUpdate
COMPONENTES
componentWillMount
componentDidMount
componentWillReceiveProps
shouldComponentUpdate
componentWillUpdate
COMPONENTES
componentWillMount
componentDidMount
componentWillReceiveProps
shouldComponentUpdate
componentWillUpdate
componentDidUpdate
COMPONENTES
componentWillMount
componentDidMount
componentWillReceiveProps
shouldComponentUpdate
componentWillUpdate
componentDidUpdate
componentWillUnmount
COMPONENTES
componentWillMount
componentDidMount
componentWillReceiveProps
shouldComponentUpdate
componentWillUpdate
componentDidUpdate
componentWillUnmount
Props
COMPONENTES
componentWillMount
componentDidMount
componentWillReceiveProps
shouldComponentUpdate
componentWillUpdate
componentDidUpdate
componentWillUnmount
Props &

State
Props
REACT
VIRTUAL DOM
COMPONENTES
TUDO PODE SER JAVASCRIPT
TUDO PODE SER JAVASCRIPT
TUDO PODE SER JAVASCRIPT
HTML
import React, {
Component, StyleSheet, PropTypes, Image,
} from 'react-native'
export default class Avatar extends Component {
constructor(props) {
super(props)
}
render() {
return (
<Image source={this.props.image} style={styles.image} />
)
}
}
Avatar.propTypes = {
image: PropTypes.object.isRequired,
}
const styles = StyleSheet.create({
image: {
width: 30,
height: 30,
borderRadius: 15,
},
})
import React, {
Component, StyleSheet, PropTypes, Image,
} from 'react-native'
export default class Avatar extends Component {
constructor(props) {
super(props)
}
render() {
return (
<Image source={this.props.image} style={styles.image} />
)
}
}
Avatar.propTypes = {
image: PropTypes.object.isRequired,
}
const styles = StyleSheet.create({
image: {
width: 30,
height: 30,
borderRadius: 15,
},
})
TUDO PODE SER JAVASCRIPT
<Image source={this.props.image}
style={styles.image}
/>
TUDO PODE SER JAVASCRIPT
<Image source={this.props.image}
style={styles.image}
/>
JSX
TUDO PODE SER JAVASCRIPT
<Image source={this.props.image}
style={styles.image}
/>
JSX
let image = React.createElement(
Image,
{ source: this.props.image,
style: styles.image })
TUDO PODE SER JAVASCRIPT
<Image source={this.props.image}
style={styles.image}
/>
JSX
<img src=‘imagem.png’
style=‘border-radius: 5px’
/>
HTML
CSS
import React, {
Component, StyleSheet, PropTypes, Image,
} from 'react-native'
export default class Avatar extends Component {
constructor(props) {
super(props)
}
render() {
return (
<Image source={this.props.image} style={styles.image} />
)
}
}
Avatar.propTypes = {
image: PropTypes.object.isRequired,
}
const styles = StyleSheet.create({
image: {
width: 30,
height: 30,
borderRadius: 15,
},
})
import React, {
Component, StyleSheet, PropTypes, Image,
} from 'react-native'
export default class Avatar extends Component {
constructor(props) {
super(props)
}
render() {
return (
<Image source={this.props.image} style={styles.image} />
)
}
}
Avatar.propTypes = {
image: PropTypes.object.isRequired,
}
const styles = StyleSheet.create({
image: {
width: 30,
height: 30,
borderRadius: 15,
},
})
TUDO PODE SER JAVASCRIPT
StyleSheet.create({
image: {
width: 30,
height: 30,
borderRadius: 15,
},
})
TUDO PODE SER JAVASCRIPT
StyleSheet.create({
image: {
width: 30,
height: 30,
borderRadius: 15,
},
})
StyleSheet
TUDO PODE SER JAVASCRIPT
StyleSheet.create({
image: {
width: 30,
height: 30,
borderRadius: 15,
},
})
StyleSheet
.image {
width: 30px,
height: 30px,
borderRadius: 15px
}
CSS
REACT
VIRTUAL DOM
COMPONENTES
TUDO PODE SER JAVASCRIPT
VIRTUAL DOM
HTML DOM
VIRTUAL DOM
HTML DOM
JAVASCRIPT
VIRTUAL DOM
HTML DOM
JAVASCRIPT
VIRTUAL DOM
VIRTUAL DOM
VIRTUAL DOM
ANDROID
DOM
iOS
DOM
HTML
DOM
VIRTUAL DOM
ANDROID
DOM
iOS
DOM
HTML
DOM
SONY
DOM
SAMSUNG
DOM
WINDOWS
DOM
BRASTEMP
DOM
LG
DOM
PHILIPS
DOM
REACT NATIVE
COMPONENTES
View Image Text
Activity
Indicator
Modal Navigator
Refresh
Control
ScrollView
StatusBar Switch ListView TextInput
WebView MapView
ProgressBar
Android
…
APIs
Alert Animated AppState BackAndroid
CameraRoll Clipboard
DatePicker
Android
Dimensions
Geolocation Linking NetInfo ToastAndroid
PixelRatio
PushNotification
IOS
Vibration +++
COMUNIDADE
COMUNIDADE
COMUNIDADE
BIBLIOTECAS
NATIVAS
BIBLIOTECAS NATIVAS
BIBLIOTECA NATIVA
REACT NATIVE
BIBLIOTECAS NATIVAS
BIBLIOTECA NATIVA
REACT NATIVE
BIBLIOTECAS NATIVAS
BIBLIOTECA NATIVA
REACT NATIVE
BIBLIOTECAS NATIVAS
BIBLIOTECA NATIVA
REACT NATIVE
REACT NATIVE BRIDGE
'use strict';
var {PayPal} = require('react-native').NativeModules;
var constants = {};
var constantNames = Object.keys(PayPal).filter(p => p == p.toUpperCase());
constantNames.forEach(c => constants[c] = PayPal[c]);
var functions = {
paymentRequest(payPalParameters) {
return new Promise(function(resolve, reject) {
PayPal.paymentRequest(payPalParameters, resolve, reject);
});
}
};
var exported = {};
Object.assign(exported, constants, functions);
module.exports = exported;
'use strict';
var {PayPal} = require('react-native').NativeModules;
var constants = {};
var constantNames = Object.keys(PayPal).filter(p => p == p.toUpperCase());
constantNames.forEach(c => constants[c] = PayPal[c]);
var functions = {
paymentRequest(payPalParameters) {
return new Promise(function(resolve, reject) {
PayPal.paymentRequest(payPalParameters, resolve, reject);
});
}
};
var exported = {};
Object.assign(exported, constants, functions);
module.exports = exported;
public class PayPal extends ReactContextBaseJavaModule {
@ReactMethod
public void paymentRequest(
final ReadableMap payPalParameters,
final Callback successCallback, final Callback errorCallback
) {
final String environment = payPalParameters.getString("environment");
final String clientId = payPalParameters.getString("clientId");
final String price = payPalParameters.getString("price");
final String currency = payPalParameters.getString("currency");
final String description = payPalParameters.getString("description");
PayPalConfiguration config =
new PayPalConfiguration().environment(environment).clientId(clientId);
startPayPalService(config);
PayPalPayment thingToBuy = new PayPalPayment(
new BigDecimal(price), currency, description,
PayPalPayment.PAYMENT_INTENT_SALE);
Intent intent = new Intent(activityContext, PaymentActivity.class)
.putExtra(PayPalService.EXTRA_PAYPAL_CONFIGURATION, config)
.putExtra(PaymentActivity.EXTRA_PAYMENT, thingToBuy);
currentActivity.startActivityForResult(intent, paymentIntentRequestCode);
}
}
public class PayPal extends ReactContextBaseJavaModule {
@ReactMethod
public void paymentRequest(
final ReadableMap payPalParameters,
final Callback successCallback, final Callback errorCallback
) {
final String environment = payPalParameters.getString("environment");
final String clientId = payPalParameters.getString("clientId");
final String price = payPalParameters.getString("price");
final String currency = payPalParameters.getString("currency");
final String description = payPalParameters.getString("description");
PayPalConfiguration config =
new PayPalConfiguration().environment(environment).clientId(clientId);
startPayPalService(config);
PayPalPayment thingToBuy = new PayPalPayment(
new BigDecimal(price), currency, description,
PayPalPayment.PAYMENT_INTENT_SALE);
Intent intent = new Intent(activityContext, PaymentActivity.class)
.putExtra(PayPalService.EXTRA_PAYPAL_CONFIGURATION, config)
.putExtra(PaymentActivity.EXTRA_PAYMENT, thingToBuy);
currentActivity.startActivityForResult(intent, paymentIntentRequestCode);
}
}
public class PayPal extends ReactContextBaseJavaModule {
@ReactMethod
public void paymentRequest(
final ReadableMap payPalParameters,
final Callback successCallback, final Callback errorCallback
) {
final String environment = payPalParameters.getString("environment");
final String clientId = payPalParameters.getString("clientId");
final String price = payPalParameters.getString("price");
final String currency = payPalParameters.getString("currency");
final String description = payPalParameters.getString("description");
PayPalConfiguration config =
new PayPalConfiguration().environment(environment).clientId(clientId);
startPayPalService(config);
PayPalPayment thingToBuy = new PayPalPayment(
new BigDecimal(price), currency, description,
PayPalPayment.PAYMENT_INTENT_SALE);
Intent intent = new Intent(activityContext, PaymentActivity.class)
.putExtra(PayPalService.EXTRA_PAYPAL_CONFIGURATION, config)
.putExtra(PaymentActivity.EXTRA_PAYMENT, thingToBuy);
currentActivity.startActivityForResult(intent, paymentIntentRequestCode);
}
}
PLATAFORMAS
PLATAFORMAS
PLATAFORMAS
=
PLATAFORMAS
=
PLATAFORMAS
=
PLATAFORMAS
const Loader = Platform.select({
ios: () => require('LoaderIOS'),
android: () => require('LoaderAndroid'),
})()
render () {
...
<Loader />
...
}
PLATAFORMAS
import Loader from './Loader'
render () {
...
<Loader />
...
}
- Loader.ios.js

- Loader.android.js
REACT NATIVE
TOOLS
REACT NATIVE TOOLS
REACT NATIVE TOOLS
Não precisa compilar
Desenvolvimento dinâmico
Monitor de performance
REACT NATIVE TOOLS
$ react-native logs-ios

$ react-native logs-android
REACT NATIVE TOOLS
$ react-native logs-ios

$ react-native logs-android
Debug on Chrome
CODE PUSH
CODE PUSH
CODE PUSH
CODE PUSH
npm i —save react-native-code-push@latest
CODE PUSH
npm i —save react-native-code-push@latest
import codePush from ‘react-native-code-push'
...
componentDidMount() {
codePush.sync()
}
CODE PUSH
npm i —save react-native-code-push@latest
import codePush from ‘react-native-code-push'
...
componentDidMount() {
codePush.sync()
}
code-push release-react SampleApp ios
CODE PUSH
code-push release-react SampleApp
-- rollout 25%
-- targetBinaryVersion “~1.1.0”
CODE PUSH
code-push rollback
RNPM
RNPM
RNPM
RNPM
RNPM
RNPM
RNPM
npm i rnpm -g
RNPM
npm i rnpm -g
npm i react-native-module --save

rnpm link react-native-module
RNPM
npm i rnpm -g
rnpm install react-native-module
BOAS PRÁTICAS
BOAS PRÁTICAS
ESTRUTURA DO SEU PROJETO
FLUXO DE DADOS
TESTANDO SEUS COMPONENTES
FLUXO DE DADOS
COMPONENT
FLUXO DE DADOS
COMPONENT
API
FLUXO DE DADOS
COMPONENT
API
class SampleComponent extends Component {
...
componentDidMount() {
fetch(‘http://api.com/data‘).then((res) => {
this.setState({ data: res })
})
}
...
}
FLUXO DE DADOS
COMPONENT
API
COMPONENT
API
COMPONENT
API
COMPONENT
API
COMPONENT
API
FLUXO DE DADOS
COMPONENT
API
COMPONENT
API
COMPONENT
API
COMPONENT
API
COMPONENT
API
FLUXO DE DADOS
FLUXO DE DADOS
REDUX
COMPONENT
API
ACTION
CREATORS
REDUX
COMPONENTAPI
ACTION
CREATORS
REDUCERS
REDUX
COMPONENTAPI
ACTION
CREATORS
STORE
REDUCERS
REDUX
COMPONENTAPI
ACTION
CREATORS
STORE
REDUCERS
REDUX
COMPONENTAPI
ACTION
CREATORS
componentDidMounted
STORE
REDUCERS
REDUX
COMPONENTAPI
ACTION
CREATORS
componentDidMounted
fetchData STORE
REDUCERS
REDUX
COMPONENTAPI
ACTION
CREATORS
componentDidMounted
fetchDataHTTP STORE
REDUCERS
REDUX
COMPONENTAPI
ACTION
CREATORS
componentDidMounted
fetchDataHTTP JSON STORE
REDUCERS
REDUX
COMPONENTAPI
ACTION
CREATORS
STORE
REDUCERS
componentDidMounted
fetchDataHTTP JSON
Data
REDUX
COMPONENTAPI
ACTION
CREATORS
STORE
REDUCERS
componentDidMounted
fetchDataHTTP JSON
Data
New State
REDUX
COMPONENTAPI
ACTION
CREATORS
STORE
REDUCERS
componentDidMounted
fetchDataHTTP JSON
Data
New State
State
BOAS PRÁTICAS
ESTRUTURA DO SEU PROJETO
FLUXO DE DADOS
TESTANDO SEUS COMPONENTES
TESTANDO SEUS COMPONENTES
TESTANDO SEUS COMPONENTES
TESTANDO SEUS COMPONENTES
TESTANDO SEUS COMPONENTES
COMPONENT
ACTION
CREATORS
STOREREDUCERS
TESTANDO SEUS COMPONENTES
COMPONENT
ACTION
CREATORS
STOREREDUCERS
TESTANDO SEUS COMPONENTES
COMPONENT
ACTION
CREATORS
STOREREDUCERS
TESTANDO SEUS COMPONENTES
COMPONENT
ACTION
CREATORS
REDUCERS
TESTANDO SEUS COMPONENTES
ACTION
CREATORS
describe('actions', () => {
it('should create an action to load items', () =>
{
// given
const loading = true
const expectedAction = {
type: 'START_LOADER',
loading: loading
}
// when
let action = actions.loadItems()
// then
expect(action).toEqual(expectedAction)
}
})
TESTANDO SEUS COMPONENTES
COMPONENT
ACTION
CREATORS
REDUCERS
REDUCERS
TESTANDO SEUS COMPONENTES
describe('items reducer', () => {
it('should handle START_LOADER', () => {
// given
const initialState = {
loading: false,
items: []
}
const expectedState = {
loading: true,
items: []
}
const action = {
type: 'START_LOADER',
loading: true
}
// when
let state = reducer(initialState, action)
// then
expect(state).toEqual(expectedState)
}
})
TESTANDO SEUS COMPONENTES
COMPONENT
ACTION
CREATORS
REDUCERS
COMPONENT
TESTANDO SEUS COMPONENTES
class ItemList extends Component {
constructor(props) {
super(props)
}
_handleLoader() {
if (this.props.loading) {
return <Loader />
}
}
render() {
let loader = this._handleLoader()
return (
<View>
{loader}
</View>
)
}
}
COMPONENT
TESTANDO SEUS COMPONENTES
describe(‘ItemList Component', () => {
it('should render a view without loader', () => {
// given
const props = {
loading: false,
}
// when
let renderer = TestUtils.createRenderer()
renderer.render(<ItemList {...props} />)
let output = renderer.getRenderOutput()
// then
expect(output.type).toBe(View)
expect(output.props.children).toEqual(undefined)
}
})
TESTANDO SEUS COMPONENTES
COMPONENT
ACTION
CREATORS
REDUCERS
TESTANDO SEUS COMPONENTES
COMPONENT
ACTION
CREATORS
REDUCERS
SERVER
TESTANDO SEUS COMPONENTES
COMPONENT
ACTION
CREATORS
REDUCERS
SERVER
BOAS PRÁTICAS
ESTRUTURA DO SEU PROJETO
FLUXO DE DADOS
TESTANDO SEUS COMPONENTES
ESTRUTURA DO SEU PROJETO
your-project/
android/
ios/
- index.android.js

- index.ios.js
ESTRUTURA DO SEU PROJETO
your-project/
android/
ios/
src/
- index.android.js

- index.ios.js
ESTRUTURA DO SEU PROJETO
your-project/
android/
ios/
src/
actions/
components/
containers/
reducers/
store/
- index.android.js

- index.ios.js
ESTRUTURA DO SEU PROJETO
src/
actions/
- Posts.js
- Posts.spec.js
components/
containers/
reducers/
store/
ESTRUTURA DO SEU PROJETO
src/
actions/
components/
- Loader.js
- Loader.spec.js
- Post.js
- Post.spec.js
containers/
reducers/
store/
ESTRUTURA DO SEU PROJETO
src/
actions/
components/
base/
- Loader.js
- Loader.spec.js
post/
- Post.js
- Post.spec.js
- PostActions.js
- PostActions.spec.js
account/
- AccountSettings.js
- AccountSettings.spec.js
containers/
reducers/
store/
ESTRUTURA DO SEU PROJETO
src/
actions/
components/
containers/
- Root.js
- Root.spec.js
- Timeline.js
- Timeline.spec.js
- Account.js
- Account.spec.js
reducers/
store/
ESTRUTURA DO SEU PROJETO
src/
actions/
components/
containers/
reducers/
- Root.js
- Root.spec.js
- Posts.js
- Posts.spec.js
- Account.js
- Account.spec.js
store/
ESTRUTURA DO SEU PROJETO
src/
actions/
components/
containers/
reducers/
store/
- ConfigureStore.js
SAMPLE APP
SAMPLE APP
https://github.com/Vizir/ReactNativeWorkshop
Obrigado
chagas@vizir.com.br

github.com/chagasaway

Más contenido relacionado

La actualidad más candente

ReactJS presentation
ReactJS presentationReactJS presentation
ReactJS presentationThanh Tuong
 
Laravel 8 export data as excel file with example
Laravel 8 export data as excel file with exampleLaravel 8 export data as excel file with example
Laravel 8 export data as excel file with exampleKaty Slemon
 
React native app with type script tutorial
React native app with type script tutorialReact native app with type script tutorial
React native app with type script tutorialKaty Slemon
 
Dsc Charusat Learning React Part 1
Dsc Charusat Learning React Part 1 Dsc Charusat Learning React Part 1
Dsc Charusat Learning React Part 1 JainamMehta19
 
Angular2 Development for Java developers
Angular2 Development for Java developersAngular2 Development for Java developers
Angular2 Development for Java developersYakov Fain
 
Workshop 26: React Native - The Native Side
Workshop 26: React Native - The Native SideWorkshop 26: React Native - The Native Side
Workshop 26: React Native - The Native SideVisual Engineering
 
Mobile Open Day: React Native: Crossplatform fast dive
Mobile Open Day: React Native: Crossplatform fast diveMobile Open Day: React Native: Crossplatform fast dive
Mobile Open Day: React Native: Crossplatform fast diveepamspb
 
Seven Versions of One Web Application
Seven Versions of One Web ApplicationSeven Versions of One Web Application
Seven Versions of One Web ApplicationYakov Fain
 
Developing Modern Java Web Applications with Java EE 7 and AngularJS
Developing Modern Java Web Applications with Java EE 7 and AngularJSDeveloping Modern Java Web Applications with Java EE 7 and AngularJS
Developing Modern Java Web Applications with Java EE 7 and AngularJSShekhar Gulati
 
Getting Started with React-Nathan Smith
Getting Started with React-Nathan SmithGetting Started with React-Nathan Smith
Getting Started with React-Nathan SmithTandemSeven
 
Modern JavaScript, without giving up on Rails
Modern JavaScript, without giving up on RailsModern JavaScript, without giving up on Rails
Modern JavaScript, without giving up on RailsJonathan Johnson
 
20171108 PDN HOL React Basics
20171108 PDN HOL React Basics20171108 PDN HOL React Basics
20171108 PDN HOL React BasicsRich Ross
 
Finally, Professional Frontend Dev with ReactJS, WebPack & Symfony (Symfony C...
Finally, Professional Frontend Dev with ReactJS, WebPack & Symfony (Symfony C...Finally, Professional Frontend Dev with ReactJS, WebPack & Symfony (Symfony C...
Finally, Professional Frontend Dev with ReactJS, WebPack & Symfony (Symfony C...Ryan Weaver
 
React Native Introduction: Making Real iOS and Android Mobile App By JavaScript
React Native Introduction: Making Real iOS and Android Mobile App By JavaScriptReact Native Introduction: Making Real iOS and Android Mobile App By JavaScript
React Native Introduction: Making Real iOS and Android Mobile App By JavaScriptKobkrit Viriyayudhakorn
 
Building Modern Web Applications using React and Redux
 Building Modern Web Applications using React and Redux Building Modern Web Applications using React and Redux
Building Modern Web Applications using React and ReduxMaxime Najim
 

La actualidad más candente (20)

ReactJS presentation
ReactJS presentationReactJS presentation
ReactJS presentation
 
Laravel 8 export data as excel file with example
Laravel 8 export data as excel file with exampleLaravel 8 export data as excel file with example
Laravel 8 export data as excel file with example
 
React js basics
React js basicsReact js basics
React js basics
 
React native app with type script tutorial
React native app with type script tutorialReact native app with type script tutorial
React native app with type script tutorial
 
Dsc Charusat Learning React Part 1
Dsc Charusat Learning React Part 1 Dsc Charusat Learning React Part 1
Dsc Charusat Learning React Part 1
 
Angular2 Development for Java developers
Angular2 Development for Java developersAngular2 Development for Java developers
Angular2 Development for Java developers
 
Workshop 26: React Native - The Native Side
Workshop 26: React Native - The Native SideWorkshop 26: React Native - The Native Side
Workshop 26: React Native - The Native Side
 
Learn react-js
Learn react-jsLearn react-js
Learn react-js
 
Mobile Open Day: React Native: Crossplatform fast dive
Mobile Open Day: React Native: Crossplatform fast diveMobile Open Day: React Native: Crossplatform fast dive
Mobile Open Day: React Native: Crossplatform fast dive
 
Intro to ReactJS
Intro to ReactJSIntro to ReactJS
Intro to ReactJS
 
Seven Versions of One Web Application
Seven Versions of One Web ApplicationSeven Versions of One Web Application
Seven Versions of One Web Application
 
Developing Modern Java Web Applications with Java EE 7 and AngularJS
Developing Modern Java Web Applications with Java EE 7 and AngularJSDeveloping Modern Java Web Applications with Java EE 7 and AngularJS
Developing Modern Java Web Applications with Java EE 7 and AngularJS
 
Getting Started with React-Nathan Smith
Getting Started with React-Nathan SmithGetting Started with React-Nathan Smith
Getting Started with React-Nathan Smith
 
Modern JavaScript, without giving up on Rails
Modern JavaScript, without giving up on RailsModern JavaScript, without giving up on Rails
Modern JavaScript, without giving up on Rails
 
20171108 PDN HOL React Basics
20171108 PDN HOL React Basics20171108 PDN HOL React Basics
20171108 PDN HOL React Basics
 
React on es6+
React on es6+React on es6+
React on es6+
 
Finally, Professional Frontend Dev with ReactJS, WebPack & Symfony (Symfony C...
Finally, Professional Frontend Dev with ReactJS, WebPack & Symfony (Symfony C...Finally, Professional Frontend Dev with ReactJS, WebPack & Symfony (Symfony C...
Finally, Professional Frontend Dev with ReactJS, WebPack & Symfony (Symfony C...
 
JOSA TechTalks - Better Web Apps with React and Redux
JOSA TechTalks - Better Web Apps with React and ReduxJOSA TechTalks - Better Web Apps with React and Redux
JOSA TechTalks - Better Web Apps with React and Redux
 
React Native Introduction: Making Real iOS and Android Mobile App By JavaScript
React Native Introduction: Making Real iOS and Android Mobile App By JavaScriptReact Native Introduction: Making Real iOS and Android Mobile App By JavaScript
React Native Introduction: Making Real iOS and Android Mobile App By JavaScript
 
Building Modern Web Applications using React and Redux
 Building Modern Web Applications using React and Redux Building Modern Web Applications using React and Redux
Building Modern Web Applications using React and Redux
 

Destacado

Introduction to React Native
Introduction to React NativeIntroduction to React Native
Introduction to React NativeRami Sayar
 
Amar_Ranjan_Das_Resume
Amar_Ranjan_Das_ResumeAmar_Ranjan_Das_Resume
Amar_Ranjan_Das_ResumeAmarRanjan Das
 
Moody - International - Aid and Development
Moody - International - Aid and DevelopmentMoody - International - Aid and Development
Moody - International - Aid and DevelopmentChris Moody
 
Carolina villacis
Carolina villacisCarolina villacis
Carolina villacis0604937011
 
Cformato celdas
Cformato celdasCformato celdas
Cformato celdas0604937011
 
Tooling manufacturing check list
Tooling manufacturing check list Tooling manufacturing check list
Tooling manufacturing check list Huang Simon
 
Synchronizing application state using Virtual DOM trees
Synchronizing application state using Virtual DOM treesSynchronizing application state using Virtual DOM trees
Synchronizing application state using Virtual DOM treesJari Voutilainen
 
Intro to Web Map APIs
Intro to Web Map APIsIntro to Web Map APIs
Intro to Web Map APIsYos Riady
 
Introduction to React
Introduction to ReactIntroduction to React
Introduction to ReactYos Riady
 
Kdan Mobile - Growth Hack 產品運營與實作
Kdan Mobile - Growth Hack 產品運營與實作Kdan Mobile - Growth Hack 產品運營與實作
Kdan Mobile - Growth Hack 產品運營與實作Kdan Mobile
 
Digitaalisesti vaikuttavaksi. @HelsinkiUniUX -projektin tarina
Digitaalisesti vaikuttavaksi. @HelsinkiUniUX  -projektin tarina Digitaalisesti vaikuttavaksi. @HelsinkiUniUX  -projektin tarina
Digitaalisesti vaikuttavaksi. @HelsinkiUniUX -projektin tarina University of Helsinki
 
React Native: Developing an app similar to Uber in JavaScript
React Native: Developing an app similar to Uber in JavaScriptReact Native: Developing an app similar to Uber in JavaScript
React Native: Developing an app similar to Uber in JavaScriptCaio Ariede
 
Creating books app with react native
Creating books app with react nativeCreating books app with react native
Creating books app with react nativeAli Sa'o
 
Why and How to Use Virtual DOM
Why and How to Use Virtual DOMWhy and How to Use Virtual DOM
Why and How to Use Virtual DOMDaiwei Lu
 

Destacado (20)

Introduction to React Native
Introduction to React NativeIntroduction to React Native
Introduction to React Native
 
Amar_Ranjan_Das_Resume
Amar_Ranjan_Das_ResumeAmar_Ranjan_Das_Resume
Amar_Ranjan_Das_Resume
 
Moody - International - Aid and Development
Moody - International - Aid and DevelopmentMoody - International - Aid and Development
Moody - International - Aid and Development
 
Carolina villacis
Carolina villacisCarolina villacis
Carolina villacis
 
Defence Force
Defence ForceDefence Force
Defence Force
 
Cformato celdas
Cformato celdasCformato celdas
Cformato celdas
 
Tooling manufacturing check list
Tooling manufacturing check list Tooling manufacturing check list
Tooling manufacturing check list
 
Kad hiasan bacaan
Kad hiasan bacaanKad hiasan bacaan
Kad hiasan bacaan
 
Repaint & reflow
Repaint & reflowRepaint & reflow
Repaint & reflow
 
React entry
React entryReact entry
React entry
 
Synchronizing application state using Virtual DOM trees
Synchronizing application state using Virtual DOM treesSynchronizing application state using Virtual DOM trees
Synchronizing application state using Virtual DOM trees
 
Intro to Web Map APIs
Intro to Web Map APIsIntro to Web Map APIs
Intro to Web Map APIs
 
Introduction to React
Introduction to ReactIntroduction to React
Introduction to React
 
Kdan Mobile - Growth Hack 產品運營與實作
Kdan Mobile - Growth Hack 產品運營與實作Kdan Mobile - Growth Hack 產品運營與實作
Kdan Mobile - Growth Hack 產品運營與實作
 
Introduction to React
Introduction to ReactIntroduction to React
Introduction to React
 
Digitaalisesti vaikuttavaksi. @HelsinkiUniUX -projektin tarina
Digitaalisesti vaikuttavaksi. @HelsinkiUniUX  -projektin tarina Digitaalisesti vaikuttavaksi. @HelsinkiUniUX  -projektin tarina
Digitaalisesti vaikuttavaksi. @HelsinkiUniUX -projektin tarina
 
Carnaval ppt 2017
Carnaval ppt 2017Carnaval ppt 2017
Carnaval ppt 2017
 
React Native: Developing an app similar to Uber in JavaScript
React Native: Developing an app similar to Uber in JavaScriptReact Native: Developing an app similar to Uber in JavaScript
React Native: Developing an app similar to Uber in JavaScript
 
Creating books app with react native
Creating books app with react nativeCreating books app with react native
Creating books app with react native
 
Why and How to Use Virtual DOM
Why and How to Use Virtual DOMWhy and How to Use Virtual DOM
Why and How to Use Virtual DOM
 

Similar a React Native - Workshop

JSLab. Алексей Волков. "React на практике"
JSLab. Алексей Волков. "React на практике"JSLab. Алексей Волков. "React на практике"
JSLab. Алексей Волков. "React на практике"GeeksLab Odessa
 
CiklumJavaSat_15112011:Alex Kruk VMForce
CiklumJavaSat_15112011:Alex Kruk VMForceCiklumJavaSat_15112011:Alex Kruk VMForce
CiklumJavaSat_15112011:Alex Kruk VMForceCiklum Ukraine
 
React table tutorial project setup, use table, and usefilter
React table tutorial project setup, use table, and usefilterReact table tutorial project setup, use table, and usefilter
React table tutorial project setup, use table, and usefilterKaty Slemon
 
Python Code Camp for Professionals 1/4
Python Code Camp for Professionals 1/4Python Code Camp for Professionals 1/4
Python Code Camp for Professionals 1/4DEVCON
 
Aplicacoes dinamicas Rails com Backbone
Aplicacoes dinamicas Rails com BackboneAplicacoes dinamicas Rails com Backbone
Aplicacoes dinamicas Rails com BackboneRafael Felix da Silva
 
Connect.js - Exploring React.Native
Connect.js - Exploring React.NativeConnect.js - Exploring React.Native
Connect.js - Exploring React.Nativejoshcjensen
 
Reactive programming every day
Reactive programming every dayReactive programming every day
Reactive programming every dayVadym Khondar
 
Boost delivery stream with code discipline engineering
Boost delivery stream with code discipline engineeringBoost delivery stream with code discipline engineering
Boost delivery stream with code discipline engineeringMiro Wengner
 
Single Page Web Applications with CoffeeScript, Backbone and Jasmine
Single Page Web Applications with CoffeeScript, Backbone and JasmineSingle Page Web Applications with CoffeeScript, Backbone and Jasmine
Single Page Web Applications with CoffeeScript, Backbone and JasminePaulo Ragonha
 
jQuery & 10,000 Global Functions: Working with Legacy JavaScript
jQuery & 10,000 Global Functions: Working with Legacy JavaScriptjQuery & 10,000 Global Functions: Working with Legacy JavaScript
jQuery & 10,000 Global Functions: Working with Legacy JavaScriptGuy Royse
 
Recompacting your react application
Recompacting your react applicationRecompacting your react application
Recompacting your react applicationGreg Bergé
 
Relay Modern: architecture and workflow
Relay Modern: architecture and workflowRelay Modern: architecture and workflow
Relay Modern: architecture and workflowAlex Alexeev
 
Rails 6 frontend frameworks
Rails 6 frontend frameworksRails 6 frontend frameworks
Rails 6 frontend frameworksEric Guo
 
N Things You Don't Want to Repeat in React Native
N Things You Don't Want to Repeat in React NativeN Things You Don't Want to Repeat in React Native
N Things You Don't Want to Repeat in React NativeAnton Kulyk
 
Apollo. The client we deserve
Apollo. The client we deserveApollo. The client we deserve
Apollo. The client we deserveYuri Nezdemkovski
 
JS Fest 2019. Glenn Reyes. With great power comes great React hooks!
JS Fest 2019. Glenn Reyes. With great power comes great React hooks!JS Fest 2019. Glenn Reyes. With great power comes great React hooks!
JS Fest 2019. Glenn Reyes. With great power comes great React hooks!JSFestUA
 
Jarv.us Showcase — SenchaCon 2011
Jarv.us Showcase — SenchaCon 2011Jarv.us Showcase — SenchaCon 2011
Jarv.us Showcase — SenchaCon 2011Chris Alfano
 

Similar a React Native - Workshop (20)

JSLab. Алексей Волков. "React на практике"
JSLab. Алексей Волков. "React на практике"JSLab. Алексей Волков. "React на практике"
JSLab. Алексей Волков. "React на практике"
 
CiklumJavaSat_15112011:Alex Kruk VMForce
CiklumJavaSat_15112011:Alex Kruk VMForceCiklumJavaSat_15112011:Alex Kruk VMForce
CiklumJavaSat_15112011:Alex Kruk VMForce
 
React table tutorial project setup, use table, and usefilter
React table tutorial project setup, use table, and usefilterReact table tutorial project setup, use table, and usefilter
React table tutorial project setup, use table, and usefilter
 
Python Code Camp for Professionals 1/4
Python Code Camp for Professionals 1/4Python Code Camp for Professionals 1/4
Python Code Camp for Professionals 1/4
 
Aplicacoes dinamicas Rails com Backbone
Aplicacoes dinamicas Rails com BackboneAplicacoes dinamicas Rails com Backbone
Aplicacoes dinamicas Rails com Backbone
 
React lecture
React lectureReact lecture
React lecture
 
Connect.js - Exploring React.Native
Connect.js - Exploring React.NativeConnect.js - Exploring React.Native
Connect.js - Exploring React.Native
 
Reactive programming every day
Reactive programming every dayReactive programming every day
Reactive programming every day
 
Full Stack Scala
Full Stack ScalaFull Stack Scala
Full Stack Scala
 
Boost delivery stream with code discipline engineering
Boost delivery stream with code discipline engineeringBoost delivery stream with code discipline engineering
Boost delivery stream with code discipline engineering
 
Single Page Web Applications with CoffeeScript, Backbone and Jasmine
Single Page Web Applications with CoffeeScript, Backbone and JasmineSingle Page Web Applications with CoffeeScript, Backbone and Jasmine
Single Page Web Applications with CoffeeScript, Backbone and Jasmine
 
jQuery & 10,000 Global Functions: Working with Legacy JavaScript
jQuery & 10,000 Global Functions: Working with Legacy JavaScriptjQuery & 10,000 Global Functions: Working with Legacy JavaScript
jQuery & 10,000 Global Functions: Working with Legacy JavaScript
 
Recompacting your react application
Recompacting your react applicationRecompacting your react application
Recompacting your react application
 
Relay Modern: architecture and workflow
Relay Modern: architecture and workflowRelay Modern: architecture and workflow
Relay Modern: architecture and workflow
 
Introduction to Redux
Introduction to ReduxIntroduction to Redux
Introduction to Redux
 
Rails 6 frontend frameworks
Rails 6 frontend frameworksRails 6 frontend frameworks
Rails 6 frontend frameworks
 
N Things You Don't Want to Repeat in React Native
N Things You Don't Want to Repeat in React NativeN Things You Don't Want to Repeat in React Native
N Things You Don't Want to Repeat in React Native
 
Apollo. The client we deserve
Apollo. The client we deserveApollo. The client we deserve
Apollo. The client we deserve
 
JS Fest 2019. Glenn Reyes. With great power comes great React hooks!
JS Fest 2019. Glenn Reyes. With great power comes great React hooks!JS Fest 2019. Glenn Reyes. With great power comes great React hooks!
JS Fest 2019. Glenn Reyes. With great power comes great React hooks!
 
Jarv.us Showcase — SenchaCon 2011
Jarv.us Showcase — SenchaCon 2011Jarv.us Showcase — SenchaCon 2011
Jarv.us Showcase — SenchaCon 2011
 

Último

Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...kalichargn70th171
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfproinshot.com
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesVictorSzoltysek
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnAmarnathKambale
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplatePresentation.STUDIO
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech studentsHimanshiGarg82
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdfPearlKirahMaeRagusta1
 
How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...software pro Development
 

Último (20)

Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdf
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 

React Native - Workshop