Why React Native is Different

May 6, 2015

I gave this talk at a local JavaScript meetup in Richmond, VA on May 5th and recorded it using screencasting software. The sound quality is poor, but it's still very watchable. Check this out if you want a good explanation for why React Native will change how you write native mobile apps, and how the web can learn from it. To the women readers/watchers: I apologize for saying "guys" in a few places referring to groups of people ("Facebook guys"), it's a habit I'm still trying to break.

This post is actually my slides as well, so you can scroll through all of them below if you don't want to watch the video.

Why React is Different

React is a Library for Building User Interfaces

Separation of Concerns = MVC

... Really?


state.post.title = "...";

Change the UI??

  • Object.observe(state.post)
  • state.post.author.name = "James";
  • UH OH

render :: state -> UI

DOM (and Virtual DOM) is an implementation detail

Getting Started

  • $ npm install -g react-native-cli
  • $ react-native init my-project

  • $ mkdir react-native-cli
  • $ cd react-native-cli
  • $ npm install react-native
  • Creates basic Xcode iOS project that builds and links with React Native's code

  • View
  • Text
  • ListView
  • ScrollView
  • TextInput
  • NavigatorIOS
  • (many others)


HTML APIs: fetch


Incredible Debugging

The iOS<->JS Bridge and 60 FPS Interfaces

// CalendarManager.m
@implementation CalendarManager



RCT_EXPORT_METHOD(addEvent:(NSString *)name
                  location:(NSString *)location)
  RCTLogInfo(@"Pretending to create an event");

var CalendarManager =

  'Birthday Party',
  '4 Privet Drive, Surrey'

A Better Web?

May the Cinco Be With You