SlideShare a Scribd company logo
REACT NATIVE
NATIVE DEVELOPMENT SUCKS
SLOW DEVELOPMENT CYCLE
SLOW DEPLOYMENT CYCLE
DIFFERENT APIS TO CODE SAME THINGS
SEPARATE PLATFORM TEAMS
X-PLATFORM TOOLS SUCK
POOR PERFORMANCE
NON-NATIVE FEEL
LIMITED FEATURE SUPPORT
HARD TO DEBUG / POOR TOOLING
COMMON TO BOTH
STATEFUL, MUTABLE UI
HARD TO MANAGE COMPLEXITY
HARD TO VERIFY CORRECTNESS
HARD TO MAINTAIN/RE-USE
ENTER: REACT NATIVE
SLOW DEVELOPMENT CYCLE
INSTANT RELOAD
SLOW DEPLOYMENT CYCLE
DOWNLOAD UPDATES OTA WITHOUT
RESUBMISSION*
*APPLE SAYS IT'S OK
DIFFERENT APIS TO CODE SAME THINGS
CONSISTENT TOOLING & COMMON APIS FOR
EVERY PLATFORM
SEPARATE PLATFORM TEAMS
SHARED SKILLSET*
*UP TO 90% CODE RE-USE BETWEEN IOS AND ANDROID
POOR PERFORMANCE
VIRTUAL DOM
NON-NATIVE FEEL
BACKED BY STANDARD NATIVE VIEWS
LIMITED FEATURE SUPPORT
EXTENSIBLE PLUGIN-BASED ARCHITECTURE
HARD TO DEBUG / POOR TOOLING
BREAKPOINTS AND SINGLE-STEP DEBUGGING
WITH BROWSER-BASED DEV TOOLS
STATEFUL, MUTABLE UI
IMMUTABLE VIEWS, PURE RENDER
FUNCTIONS, ONE-WAY DATA FLOW
REACT NATIVE IS
FUNCTIONAL UI
VIRTUAL DOM
FLEXBOX LAYOUT
JAVASCRIPT FRONT-END
NATIVE BACK-END
FUNCTIONAL UI
DEFINING STATES, NOT TRANSITIONS
IMPERATIVE UI: DEFINE TRANSITIONS
FUNCTIONAL UI: DEFINE STATES
IMPERATIVE UI: DEFINE TRANSITIONS
IMPERATIVE UI: DEFINE TRANSITIONS
IMPERATIVE UI: DEFINE TRANSITIONS
IMPERATIVE UI: DEFINE TRANSITIONS
IMPERATIVE UI: DEFINE TRANSITIONS
3 STATES
9 TRANSITIONS
O(N2
)
if (count > 99) { // branch 1
if (!hasFire()) { // branch 2
addFire();
}
} else {
if (hasFire()) { // branch 3
removeFire();
}
}
if (count === 0) { // branch 4
if (hasBadge()) { // branch 5
removeBadge();
}
return;
}
if (!hasBadge()) { // branch 6
addBadge();
}
var countText = count > 99 ? '99+' : count.toString(); // branch 7
getBadge().setText(countText);
FUNCTIONAL UI: DEFINE STATES
if (count === 0) { // state 1
return <Bell/>;
}
FUNCTIONAL UI: DEFINE STATES
if (count === 0) { // state 1
return <Bell/>;
} else if(count <= 99) { // state 2
return (
<Bell>
<Badge count={count} />
</Bell>
);
}
FUNCTIONAL UI: DEFINE STATES
if (count === 0) { // state 1
return <Bell/>;
} else if(count <= 99) { // state 2
return (
<Bell>
<Badge count={count} />
</Bell>
);
} else { // state 3
return (
<Bell style={styles.onFire}>
<Badge count=“99+” />
</Bell>
);
}
VIEW IS RECREATED EACH TIME
BUT ISN'T THAT SLOW?
VIRTUAL DOM*
*DOCUMENT OBJECT MODEL
(AKA VIEW HIERARCHY)
REACT CALCULATES CHANGESET ON THE JS SIDE
AUTORESIZING VS AUTOLAYOUT
AUTORESIZING VS AUTOLAYOUT
FLEXBOX LAYOUT
FLEXBOX API
EXPLICT AND INFERRED POSITIONING
CONTAINERS SPECIFY LAYOUT FOR CHILDREN
DIVIDES CONTENT INTO ROWS & COLUMNS
BASED ON CSS STANDARDS
FLEX DIRECTION
flexDirection: 'row' | 'column' (default)
This defines the main axis along which subviews are stacked.
JUSTIFY CONTENT
justifyContent: 'flex-start' (default) | 'center' | 'flex-end' |
'space-between' | 'space-around'
This defines how views align along the main axis.
ALIGN ITEMS
alignItems: 'flex-start' (default) | 'center' | 'flex-end'
This defines how views align along the cross axis.
FLEX
flex: (number)
A flex value > 0 indicates that a view should scale to fill its container.
Flex values > 1 control the relative size of views inside their parent.
FLEX WRAP
flexWrap: 'nowrap' (default) | 'wrap'
With the flexWrap style, subviews that overflow the bounds of their
container can be set to automatically wrap onto the next line.
JAVASCRIPT FRONT-END
JAVASCRIPT!?
WHY JAVASCRIPT?
ALREADY SUPPORTED X-PLATFORM
REACT ALREADY USES IT
ONLY OPTION FOR OTA UPDATES
3.3.2 An Application may not download or install executable code.
Interpreted code may only be used in an Application if all scripts,
code and interpreters are packaged in the Application and not
downloaded. The only exception to the foregoing is scripts and
code downloaded and run by Apple's built-in WebKit framework,
provided that such scripts and code do not change the primary
purpose of the Application by providing features or functionality
that are inconsistent with the intended and advertised purpose of
the Application as submitted to the App Store.
BUT... JAVASCRIPT SUCKS
WEAKLY TYPED
GARBAGE COLLECTED
INTERPRETED
IF ONLY JAVASCRIPT
function foo(fn, x) {
return fn(x);
}
IF ONLY JAVASCRIPT
function foo(fn, x) {
return fn(x);
}
WAS MORE LIKE SWIFT
function foo<X, Y>(fn: F<X, Y>, x: X): Y {
return fn(x);
}
FLOW
STATIC ANALYSIS, STRONG TYPING AND
TYPE INFERENCE FOR JAVASCRIPT
TYPE ALIASES TRUE CLASSES MAYBE TYPES
UNIONS ENUMS GENERICS TUPLES MIXINS
ARROW FUNCTIONS DESTRUCTURING
GARBAGE COLLECTION
INTERPRETED CODE
GARBAGE COLLECTION
INTERPRETED CODE
ASYNC EXECUTION**JS RUNS ON A DEDICATED THREAD - DOESN'T BLOCK UI
EXAMPLE
var React = require('react-native');
var { AppRegistry, StyleSheet, Text, View } = React;
class HelloWorld extends React.Component {
render() {
return (
React.createElement(View, {style: styles.container},
React.createElement(Text, null, "Hello World!")
)
);
},
});
var styles = StyleSheet.create({
container: {
flex: 1, justifyContent: 'center', alignItems: 'center',
}
});
AppRegistry.registerComponent('HelloWorld', () => HelloWorld);
JSX (JAVASCRIPT + XML)
var React = require('react-native');
var { AppRegistry, StyleSheet, Text, View } = React;
class HelloWorld extends React.Component {
render() {
return (
<View style={styles.container}>
<Text>Hello World</Text>
</View>
);
},
});
var styles = StyleSheet.create({
container: {
flex: 1, justifyContent: 'center', alignItems: 'center',
}
});
AppRegistry.registerComponent('HelloWorld', () => HelloWorld);
NATIVE BACK-END
INTEGRATION
NSURL *src = [NSURL URLWithString:@"http://localhost:8081/index.ios.bundle"];
NSString *moduleName = @"MyApp";
// Option 1
RCTRootView *rootView = [[RCTRootView alloc] initWithBundleURL:src
moduleName:moduleName
launchOptions:nil];
// Option 2
RCTBridge *bridge = [[RCTBridge alloc] initWithBundleURL:src
moduleProvider:nil
launchOptions:nil];
RCTRootView *rootView = [[RCTRootView alloc] initWithBridge:bridge
moduleName:moduleName];
PLUGIN ARCHITECTURE
BRIDGE MODULES
VIEW MANAGERS
(MORE IN FUTURE)
BRIDGE MODULES
// CalendarManager.m
@interface CalendarManager : NSObject <RCTBridgeModule>
@end
@implementation CalendarManager
RCT_EXPORT_MODULE()
RCT_EXPORT_METHOD(addEvent:(NSString *)name location:(NSString *)location)
{
RCTLogInfo(@"Pretending to create an event %@ at %@", name, location);
}
@end
// CalendarManager.js
var CalendarManager = require('NativeModules').CalendarManager;
CalendarManager.addEvent('Birthday Party', '4 Privet Drive, Surrey');
TYPE CONVERSION
// CalendarManager.m
@implementation CalendarManager
RCT_EXPORT_MODULE()
RCT_EXPORT_METHOD(addEvent:(NSString *)name date:(NSDate *)date)
{
RCTLogInfo(@"Pretending to create an event %@ on %@", name, date);
}
@end
// CalendarManager.js
CalendarManager.addEvent(
'Birthday Party',
date.toTime() // returns time in seconds since unix epoch
);
CALLBACKS
// CalendarManager.m
@implementation CalendarManager
...
RCT_EXPORT_METHOD(findEvents:(RCTResponseSenderBlock)callback)
{
NSArray *events = ...
callback(@[[NSNull null], events]);
}
@end
// CalendarManager.js
CalendarManager.findEvents((error, events) => {
if (error) {
console.error(error);
} else {
// do something with events
}
})
VIEW MANAGERS
// MapManager.m
@interface MapManager : RCTViewManager <MKMapViewDelegate>
@end
@implementation MapManager
RCT_EXPORT_MODULE()
- (UIView *)view
{
return [[MKMapView alloc] init];
}
@end
// MapView.js
var React = require('react-native');
var { requireNativeComponent } = React;
module.exports = requireNativeComponent('Map', null);
PROPERTY BINDING
// MapManager.m
@implementation MapManager
...
RCT_EXPORT_VIEW_PROPERTY(pitchEnabled, BOOL)
@end
// MapView.js
var React = require('react-native');
var { requireNativeComponent } = React;
class MapView extends React.Component {
render() {
return <Map {...this.props} />;
}
}
MapView.propTypes = {
pitchEnabled: React.PropTypes.bool,
};
var Map = requireNativeComponent('Map', MapView);
module.exports = MapView;
EVENTS
// MapManager.m
@implementation MapManager
RCT_EXPORT_MODULE()
- (UIView *)view
{
MKMapView *map = [[MKMapView alloc] init];
map.delegate = self;
return map;
}
#pragma mark MKMapViewDelegate
- (void)mapView:(MKMapView *)mapView regionDidChangeAnimated:(BOOL)animated
{
MKCoordinateRegion region = mapView.region;
NSDictionary *event = @{ @"lat": @(region.center.latitude), @"long": @(region.center.longitude) };
[self.bridge.eventDispatcher sendInputEventWithName:@"topChange" body:event];
}
@end
EVENTS
// MapView.js
class MapView extends React.Component {
constructor() {
this._onChange = this._onChange.bind(this);
}
_onChange(event: Event) {
if (!this.props.onRegionChange) {
return;
}
this.props.onRegionChange(event.nativeEvent.region);
}
render() {
return <Map {...this.props} onChange={this._onChange} />;
}
}
MapView.propTypes = {
pitchEnabled: React.PropTypes.bool,
onRegionChange: React.PropTypes.func,
};
WHAT ABOUT SWIFT?
// CalendarManagerBridge.m
#import "RCTBridgeModule.h"
@interface RCT_EXTERN_MODULE(CalendarManager, NSObject)
RCT_EXTERN_METHOD(addEvent:(NSString *)name location:(NSString *)location date:(NSDate *)date)
@end
// CalendarManager.swift
@objc(CalendarManager)
class CalendarManager: NSObject {
@objc func addEvent(name: String, location: String, date: NSDate) -> Void {
// Date is ready to use!
}
}
LINKS
React Native on Github
https://facebook.github.io/react-native/
Colin Eberhardt's RayWenderlich.com Tutorial
http://tinyurl.com/rw-react-tutorial
Christopher Chedeau’s ReactJS Conf Keynote
https://www.youtube.com/watch?v=7rDsRXj9-cU
Q&A

More Related Content

What's hot

ReactJs presentation
ReactJs presentationReactJs presentation
ReactJs presentation
nishasowdri
 
Rethinking Best Practices
Rethinking Best PracticesRethinking Best Practices
Rethinking Best Practices
floydophone
 
How to React Native
How to React NativeHow to React Native
How to React Native
Dmitry Ulyanov
 
React JS and Redux
React JS and ReduxReact JS and Redux
React JS and Redux
Glib Kechyn
 
Getting Started with React-Nathan Smith
Getting Started with React-Nathan SmithGetting Started with React-Nathan Smith
Getting Started with React-Nathan Smith
TandemSeven
 
React and redux
React and reduxReact and redux
React and redux
Mystic Coders, LLC
 
Introduction to React JS for beginners
Introduction to React JS for beginners Introduction to React JS for beginners
Introduction to React JS for beginners
Varun Raj
 
AngularJS for Java Developers
AngularJS for Java DevelopersAngularJS for Java Developers
AngularJS for Java Developers
Loc Nguyen
 
An Overview of the React Ecosystem
An Overview of the React EcosystemAn Overview of the React Ecosystem
An Overview of the React Ecosystem
FITC
 
React on es6+
React on es6+React on es6+
React on es6+
Nikolaus Graf
 
React / Redux Architectures
React / Redux ArchitecturesReact / Redux Architectures
React / Redux Architectures
Vinícius Ribeiro
 
JavaScript, React Native and Performance at react-europe 2016
JavaScript, React Native and Performance at react-europe 2016JavaScript, React Native and Performance at react-europe 2016
JavaScript, React Native and Performance at react-europe 2016
Tadeu Zagallo
 
Better web apps with React and Redux
Better web apps with React and ReduxBetter web apps with React and Redux
Better web apps with React and Redux
Ali Sa'o
 
Reactjs
Reactjs Reactjs
Reactjs
Neha Sharma
 
React js
React jsReact js
React.js
React.jsReact.js
An Introduction to ReactJS
An Introduction to ReactJSAn Introduction to ReactJS
An Introduction to ReactJS
All Things Open
 
React state managmenet with Redux
React state managmenet with ReduxReact state managmenet with Redux
React state managmenet with Redux
Vedran Blaženka
 
Academy PRO: React JS. Redux & Tooling
Academy PRO: React JS. Redux & ToolingAcademy PRO: React JS. Redux & Tooling
Academy PRO: React JS. Redux & Tooling
Binary Studio
 
7 Redux challenges
7 Redux challenges7 Redux challenges
7 Redux challenges
reactima
 

What's hot (20)

ReactJs presentation
ReactJs presentationReactJs presentation
ReactJs presentation
 
Rethinking Best Practices
Rethinking Best PracticesRethinking Best Practices
Rethinking Best Practices
 
How to React Native
How to React NativeHow to React Native
How to React Native
 
React JS and Redux
React JS and ReduxReact JS and Redux
React JS and Redux
 
Getting Started with React-Nathan Smith
Getting Started with React-Nathan SmithGetting Started with React-Nathan Smith
Getting Started with React-Nathan Smith
 
React and redux
React and reduxReact and redux
React and redux
 
Introduction to React JS for beginners
Introduction to React JS for beginners Introduction to React JS for beginners
Introduction to React JS for beginners
 
AngularJS for Java Developers
AngularJS for Java DevelopersAngularJS for Java Developers
AngularJS for Java Developers
 
An Overview of the React Ecosystem
An Overview of the React EcosystemAn Overview of the React Ecosystem
An Overview of the React Ecosystem
 
React on es6+
React on es6+React on es6+
React on es6+
 
React / Redux Architectures
React / Redux ArchitecturesReact / Redux Architectures
React / Redux Architectures
 
JavaScript, React Native and Performance at react-europe 2016
JavaScript, React Native and Performance at react-europe 2016JavaScript, React Native and Performance at react-europe 2016
JavaScript, React Native and Performance at react-europe 2016
 
Better web apps with React and Redux
Better web apps with React and ReduxBetter web apps with React and Redux
Better web apps with React and Redux
 
Reactjs
Reactjs Reactjs
Reactjs
 
React js
React jsReact js
React js
 
React.js
React.jsReact.js
React.js
 
An Introduction to ReactJS
An Introduction to ReactJSAn Introduction to ReactJS
An Introduction to ReactJS
 
React state managmenet with Redux
React state managmenet with ReduxReact state managmenet with Redux
React state managmenet with Redux
 
Academy PRO: React JS. Redux & Tooling
Academy PRO: React JS. Redux & ToolingAcademy PRO: React JS. Redux & Tooling
Academy PRO: React JS. Redux & Tooling
 
7 Redux challenges
7 Redux challenges7 Redux challenges
7 Redux challenges
 

Viewers also liked

Intro To React Native
Intro To React NativeIntro To React Native
Intro To React Native
FITC
 
Understanding Native, Hybrid, and Web Mobile Architectures
Understanding Native, Hybrid, and Web Mobile ArchitecturesUnderstanding Native, Hybrid, and Web Mobile Architectures
Understanding Native, Hybrid, and Web Mobile Architectures
Salesforce Developers
 
Introduction to React Native
Introduction to React NativeIntroduction to React Native
Introduction to React Native
Polidea
 
React Native
React NativeReact Native
React Native
Artyom Trityak
 
A tour of React Native
A tour of React NativeA tour of React Native
A tour of React Native
Tadeu Zagallo
 
Intro to react native
Intro to react nativeIntro to react native
Intro to react native
ModusJesus
 
Алексей Волков "Введение в React Native"
Алексей Волков "Введение в React Native"Алексей Волков "Введение в React Native"
Алексей Волков "Введение в React Native"
Fwdays
 
React Native - Introductory Tutorial
React Native  - Introductory TutorialReact Native  - Introductory Tutorial
React Native - Introductory Tutorial
scottcrespo
 
React Native for ReactJS Devs
React Native for ReactJS DevsReact Native for ReactJS Devs
React Native for ReactJS Devs
Barak Cohen
 
Успешный кейс использования React Native в продакшне, Евгений Федоров (LOOKBUCK)
Успешный кейс использования React Native в продакшне, Евгений Федоров (LOOKBUCK)Успешный кейс использования React Native в продакшне, Евгений Федоров (LOOKBUCK)
Успешный кейс использования React Native в продакшне, Евгений Федоров (LOOKBUCK)
Ontico
 
Redux with React Native
Redux with React NativeRedux with React Native
Redux with React Native
Dan Jensen
 
Cross platform mobile development in c#
Cross platform mobile development in c#Cross platform mobile development in c#
Cross platform mobile development in c#danhermes
 
Xamarin Navigation Patterns
Xamarin Navigation PatternsXamarin Navigation Patterns
Xamarin Navigation Patterns
danhermes
 
AngularJS + React
AngularJS + ReactAngularJS + React
AngularJS + React
justvamp
 
Combining Angular and React Together
Combining Angular and React TogetherCombining Angular and React Together
Combining Angular and React Together
Sebastian Pederiva
 
Kế hoạch thi HK2 2015-2016
Kế hoạch thi HK2 2015-2016Kế hoạch thi HK2 2015-2016
Kế hoạch thi HK2 2015-2016
Mãi Mãi Yêu
 
React Redux React Native
React Redux React NativeReact Redux React Native
React Redux React Native
Leonardo YongUk Kim
 
Hybrid Smart phone application development analysis
Hybrid Smart phone application development analysisHybrid Smart phone application development analysis
Hybrid Smart phone application development analysis
Sandeep Krishna
 
Back to the future: Isomorphic javascript applications
Back to the future:  Isomorphic javascript applicationsBack to the future:  Isomorphic javascript applications
Back to the future: Isomorphic javascript applications
Luciano Colosio
 

Viewers also liked (20)

Intro To React Native
Intro To React NativeIntro To React Native
Intro To React Native
 
Understanding Native, Hybrid, and Web Mobile Architectures
Understanding Native, Hybrid, and Web Mobile ArchitecturesUnderstanding Native, Hybrid, and Web Mobile Architectures
Understanding Native, Hybrid, and Web Mobile Architectures
 
Introduction to React Native
Introduction to React NativeIntroduction to React Native
Introduction to React Native
 
React Native
React NativeReact Native
React Native
 
A tour of React Native
A tour of React NativeA tour of React Native
A tour of React Native
 
Intro to react native
Intro to react nativeIntro to react native
Intro to react native
 
Алексей Волков "Введение в React Native"
Алексей Волков "Введение в React Native"Алексей Волков "Введение в React Native"
Алексей Волков "Введение в React Native"
 
React Native - Introductory Tutorial
React Native  - Introductory TutorialReact Native  - Introductory Tutorial
React Native - Introductory Tutorial
 
React Native for ReactJS Devs
React Native for ReactJS DevsReact Native for ReactJS Devs
React Native for ReactJS Devs
 
Успешный кейс использования React Native в продакшне, Евгений Федоров (LOOKBUCK)
Успешный кейс использования React Native в продакшне, Евгений Федоров (LOOKBUCK)Успешный кейс использования React Native в продакшне, Евгений Федоров (LOOKBUCK)
Успешный кейс использования React Native в продакшне, Евгений Федоров (LOOKBUCK)
 
Redux with React Native
Redux with React NativeRedux with React Native
Redux with React Native
 
Cross platform mobile development in c#
Cross platform mobile development in c#Cross platform mobile development in c#
Cross platform mobile development in c#
 
Xamarin Navigation Patterns
Xamarin Navigation PatternsXamarin Navigation Patterns
Xamarin Navigation Patterns
 
AngularJS + React
AngularJS + ReactAngularJS + React
AngularJS + React
 
Combining Angular and React Together
Combining Angular and React TogetherCombining Angular and React Together
Combining Angular and React Together
 
Kế hoạch thi HK2 2015-2016
Kế hoạch thi HK2 2015-2016Kế hoạch thi HK2 2015-2016
Kế hoạch thi HK2 2015-2016
 
React Redux React Native
React Redux React NativeReact Redux React Native
React Redux React Native
 
Hybrid Smart phone application development analysis
Hybrid Smart phone application development analysisHybrid Smart phone application development analysis
Hybrid Smart phone application development analysis
 
Hybrid mobile apps
Hybrid mobile appsHybrid mobile apps
Hybrid mobile apps
 
Back to the future: Isomorphic javascript applications
Back to the future:  Isomorphic javascript applicationsBack to the future:  Isomorphic javascript applications
Back to the future: Isomorphic javascript applications
 

Similar to Pieter De Baets - An introduction to React Native

ReactiveCocoa Goodness - Part I of II
ReactiveCocoa Goodness - Part I of IIReactiveCocoa Goodness - Part I of II
ReactiveCocoa Goodness - Part I of II
manuelmaly
 
Intro to Sail.js
Intro to Sail.jsIntro to Sail.js
Intro to Sail.js
Nicholas McClay
 
Intro to KnockoutJS
Intro to KnockoutJSIntro to KnockoutJS
Intro to KnockoutJS
Kianosh Pourian
 
Building cross-platform mobile apps with React Native (Jfokus 2017)
Building cross-platform mobile apps with React Native (Jfokus 2017)Building cross-platform mobile apps with React Native (Jfokus 2017)
Building cross-platform mobile apps with React Native (Jfokus 2017)
Maarten Mulders
 
From Big to Massive – Scalability in AngularJS Applications
From Big to Massive – Scalability in AngularJS ApplicationsFrom Big to Massive – Scalability in AngularJS Applications
From Big to Massive – Scalability in AngularJS Applications
Sebastian Fröstl
 
Backbone.js — Introduction to client-side JavaScript MVC
Backbone.js — Introduction to client-side JavaScript MVCBackbone.js — Introduction to client-side JavaScript MVC
Backbone.js — Introduction to client-side JavaScript MVC
pootsbook
 
ITT 2014 - Peter Steinberger - Architecting Modular Codebases
ITT 2014 - Peter Steinberger - Architecting Modular CodebasesITT 2014 - Peter Steinberger - Architecting Modular Codebases
ITT 2014 - Peter Steinberger - Architecting Modular Codebases
Istanbul Tech Talks
 
Creating a modern web application using Symfony API Platform, ReactJS and Red...
Creating a modern web application using Symfony API Platform, ReactJS and Red...Creating a modern web application using Symfony API Platform, ReactJS and Red...
Creating a modern web application using Symfony API Platform, ReactJS and Red...
Jesus Manuel Olivas
 
Component level caching with react
Component level caching with reactComponent level caching with react
Component level caching with react
AnusheelSingh2
 
Flask and Angular: An approach to build robust platforms
Flask and Angular:  An approach to build robust platformsFlask and Angular:  An approach to build robust platforms
Flask and Angular: An approach to build robust platforms
Ayush Sharma
 
Maintaining sanity in a large redux app
Maintaining sanity in a large redux appMaintaining sanity in a large redux app
Maintaining sanity in a large redux app
Nitish Kumar
 
Going fullstack React(ive) - Paulo Lopes - Codemotion Amsterdam 2017
Going fullstack React(ive) - Paulo Lopes - Codemotion Amsterdam 2017Going fullstack React(ive) - Paulo Lopes - Codemotion Amsterdam 2017
Going fullstack React(ive) - Paulo Lopes - Codemotion Amsterdam 2017
Codemotion
 
WebNet Conference 2012 - Designing complex applications using html5 and knock...
WebNet Conference 2012 - Designing complex applications using html5 and knock...WebNet Conference 2012 - Designing complex applications using html5 and knock...
WebNet Conference 2012 - Designing complex applications using html5 and knock...Fabio Franzini
 
Play vs Rails
Play vs RailsPlay vs Rails
Play vs Rails
Daniel Cukier
 
Avinash Kundaliya: Javascript and WordPress
Avinash Kundaliya: Javascript and WordPressAvinash Kundaliya: Javascript and WordPress
Avinash Kundaliya: Javascript and WordPresswpnepal
 
Improving android experience for both users and developers
Improving android experience for both users and developersImproving android experience for both users and developers
Improving android experience for both users and developers
Pavel Lahoda
 
Droidcon2013 android experience lahoda
Droidcon2013 android experience lahodaDroidcon2013 android experience lahoda
Droidcon2013 android experience lahodaDroidcon Berlin
 
angular fundamentals.pdf
angular fundamentals.pdfangular fundamentals.pdf
angular fundamentals.pdf
NuttavutThongjor1
 

Similar to Pieter De Baets - An introduction to React Native (20)

ReactiveCocoa Goodness - Part I of II
ReactiveCocoa Goodness - Part I of IIReactiveCocoa Goodness - Part I of II
ReactiveCocoa Goodness - Part I of II
 
Intro to Sail.js
Intro to Sail.jsIntro to Sail.js
Intro to Sail.js
 
Intro to KnockoutJS
Intro to KnockoutJSIntro to KnockoutJS
Intro to KnockoutJS
 
Building cross-platform mobile apps with React Native (Jfokus 2017)
Building cross-platform mobile apps with React Native (Jfokus 2017)Building cross-platform mobile apps with React Native (Jfokus 2017)
Building cross-platform mobile apps with React Native (Jfokus 2017)
 
Play framework
Play frameworkPlay framework
Play framework
 
From Big to Massive – Scalability in AngularJS Applications
From Big to Massive – Scalability in AngularJS ApplicationsFrom Big to Massive – Scalability in AngularJS Applications
From Big to Massive – Scalability in AngularJS Applications
 
Backbone.js — Introduction to client-side JavaScript MVC
Backbone.js — Introduction to client-side JavaScript MVCBackbone.js — Introduction to client-side JavaScript MVC
Backbone.js — Introduction to client-side JavaScript MVC
 
ITT 2014 - Peter Steinberger - Architecting Modular Codebases
ITT 2014 - Peter Steinberger - Architecting Modular CodebasesITT 2014 - Peter Steinberger - Architecting Modular Codebases
ITT 2014 - Peter Steinberger - Architecting Modular Codebases
 
Creating a modern web application using Symfony API Platform, ReactJS and Red...
Creating a modern web application using Symfony API Platform, ReactJS and Red...Creating a modern web application using Symfony API Platform, ReactJS and Red...
Creating a modern web application using Symfony API Platform, ReactJS and Red...
 
Component level caching with react
Component level caching with reactComponent level caching with react
Component level caching with react
 
Flask and Angular: An approach to build robust platforms
Flask and Angular:  An approach to build robust platformsFlask and Angular:  An approach to build robust platforms
Flask and Angular: An approach to build robust platforms
 
Maintaining sanity in a large redux app
Maintaining sanity in a large redux appMaintaining sanity in a large redux app
Maintaining sanity in a large redux app
 
Going fullstack React(ive) - Paulo Lopes - Codemotion Amsterdam 2017
Going fullstack React(ive) - Paulo Lopes - Codemotion Amsterdam 2017Going fullstack React(ive) - Paulo Lopes - Codemotion Amsterdam 2017
Going fullstack React(ive) - Paulo Lopes - Codemotion Amsterdam 2017
 
WebNet Conference 2012 - Designing complex applications using html5 and knock...
WebNet Conference 2012 - Designing complex applications using html5 and knock...WebNet Conference 2012 - Designing complex applications using html5 and knock...
WebNet Conference 2012 - Designing complex applications using html5 and knock...
 
Play vs Rails
Play vs RailsPlay vs Rails
Play vs Rails
 
Avinash Kundaliya: Javascript and WordPress
Avinash Kundaliya: Javascript and WordPressAvinash Kundaliya: Javascript and WordPress
Avinash Kundaliya: Javascript and WordPress
 
Improving android experience for both users and developers
Improving android experience for both users and developersImproving android experience for both users and developers
Improving android experience for both users and developers
 
Droidcon2013 android experience lahoda
Droidcon2013 android experience lahodaDroidcon2013 android experience lahoda
Droidcon2013 android experience lahoda
 
Jsf intro
Jsf introJsf intro
Jsf intro
 
angular fundamentals.pdf
angular fundamentals.pdfangular fundamentals.pdf
angular fundamentals.pdf
 

Pieter De Baets - An introduction to React Native