Experiences building apps with React Native @UtrechtJS May 2016

26
REACT NATIVE UtrechtJS, May 2016, Adrian Philipp

Transcript of Experiences building apps with React Native @UtrechtJS May 2016

Page 1: Experiences building apps with React Native @UtrechtJS May 2016

REACT NATIVEUtrechtJS, May 2016, Adrian Philipp

Page 2: Experiences building apps with React Native @UtrechtJS May 2016

1. Web developers can make apps

2. Know and use tooling to be more productive

3. Learn platform concepts and dev tricks

REACT NATIVE

Page 4: Experiences building apps with React Native @UtrechtJS May 2016

QAPP Question and Answer iOS app - beta Developed at

Page 5: Experiences building apps with React Native @UtrechtJS May 2016

• Made by Facebook, efficiency across platforms

• “Learn once, write anywhere” vs “cross platform”

• High traction: 31k stars, releases every 2-3 weeks

• Not mature yet

REACT NATIVE

Page 6: Experiences building apps with React Native @UtrechtJS May 2016

UI Explorer React Native Example See README on github how to build

and run the app

Page 7: Experiences building apps with React Native @UtrechtJS May 2016

REACT NATIVE

• Easy way for web developers to get started on mobile

• Styling is similar to CSS

• Flexbox layout model

• Feels like React (web)

Page 8: Experiences building apps with React Native @UtrechtJS May 2016

NOT MATUREProduct Pains

But production ready

Page 9: Experiences building apps with React Native @UtrechtJS May 2016

Show me code…

hackernews search app made by algolia

REACT NATIVE

Page 10: Experiences building apps with React Native @UtrechtJS May 2016

BASICS

Page 11: Experiences building apps with React Native @UtrechtJS May 2016

CODE

Page 12: Experiences building apps with React Native @UtrechtJS May 2016

APP

Page 13: Experiences building apps with React Native @UtrechtJS May 2016

1. Web developers can make apps

2. Know and use tooling to be more productive

3. Learn platform concepts and dev tricks

REACT NATIVE

Page 14: Experiences building apps with React Native @UtrechtJS May 2016

• Inspector

• Hot reloading

• Profiling using systrace

• Debugger

• Editor integration

TOOLING

Page 15: Experiences building apps with React Native @UtrechtJS May 2016

INSPECTOR

Page 16: Experiences building apps with React Native @UtrechtJS May 2016

HOT RELOADING

Page 17: Experiences building apps with React Native @UtrechtJS May 2016

PROFILING

Page 18: Experiences building apps with React Native @UtrechtJS May 2016

DEBUGGER

Page 19: Experiences building apps with React Native @UtrechtJS May 2016

EDITOR INTEGRATION

• WebStorm/PHPStorm: JS/JSX/ES6 support

• Microsoft VSCode, Nuclide

• Clickable stack trace:REACT_EDITOR=pstorm npm start

Page 20: Experiences building apps with React Native @UtrechtJS May 2016

EDITOR INTEGRATION

Page 21: Experiences building apps with React Native @UtrechtJS May 2016

1. Web developers can make apps

2. Know and use tooling to be more productive

3. Learn platform concepts and dev tricks

REACT NATIVE

Page 22: Experiences building apps with React Native @UtrechtJS May 2016

• Learn how mobile platforms work and look

• Split smart and dumb components from the start

• Use redux when the app gets more complex

PLATFORM / ARCHITECTURE

Page 23: Experiences building apps with React Native @UtrechtJS May 2016

• Components: JS.coach

• Store-ip script

• React Native Playground rnplay

• ESLint style from airbnb

• NPM script to build "build-ios": "$NVM_BIN/react-native bundle --platform=ios --entry-file=index.ios.js --bundle-output=ios/main.jsbundle --assets-dest=ios/assets --dev false",

DEV TRICKS

Page 24: Experiences building apps with React Native @UtrechtJS May 2016

1. Web developers can make apps

2. Know and use tooling to be more productive

3. Learn platform concepts and dev tricks

REACT NATIVE

Page 25: Experiences building apps with React Native @UtrechtJS May 2016

Twitter: @adrian_philipp

Github: adri

Website: adrian-philipp.com

Mail: [email protected]

THANK YOU

Page 26: Experiences building apps with React Native @UtrechtJS May 2016

• Redux DevTools

• Inspect state changes

• Replay actions

• Synchronise app states across simulators

• Redux Storage: offline storage

BONUS