— JavaScript • Use UI library that you already know — React • Develop cross-platform applications • Interactive development, because JavaScript is dynamic language • Send instant updates to your users, no need to submit to App Store
• 2 main threads ◦ Main thread — create and position views ◦ JavaScript thread — your code • Dispatch queues (more efficient at executing tasks) ◦ Shadow queue — layout calculation ◦ + one queue for every native module • React Native Architecture Overview
• Cross-platform zIndex, kind of • There’s no cross-platform shadows, only for iOS • Dimensions are set in points, use StyleSheet.hairlineWidth to get size of 1px in points
data fetching from UI • Use Flux / Redux / Relay • Use cross-platform native modules • Use ios and android suffixes in filenames (button.ios.js, button.android.js)
use pure JavaScript module if there’s a native one • Native modules works faster and they can do more • Use RNPM to install native modules • If there’s something missing you can always expose it to JavaScript
of routes • Runs transition animation between screens • Imperative API • Use NavigationExperimental • When starting a new project think about how you would implement navigation
React Native performance • React Native Integration Tests • Performance Limitations of React Native and How to Overcome Them • Using React Native: One Year Later • Routing and Navigation in React Native • js.coach/react-native • facebook.github.io/react-native • jondot/awesome-react-native • react-native-code-push <Questions? /> @roman01la