28.09.2016
Fatih Şimşek - Software Infrastructure
React Native
React Native
Open source Javascript Library
React Native started as a Facebook's Hackathon project in the
summer of 2013
Facebook Ads Manager on IOS and Android share %85 of the
code
Who is using React Native?
Microsoft brings React Native to the Windows ecosystem
Samsung builds React Native for its hybrid platform (Tizen)
Facebook Groups & Ads Manager
500+ companies and developer who published apps to Apple’s
app store
200+ companies and developer who published apps to Google’s
Play store
https://facebook.github.io/react-native/showcase.html
Github
React Native
Learn once, write anywhere
Be able to bridge Native Code
Testable
Native experience
React Native
Better Developer experience
Work with Existing Apps
Architecture
React Architecture
State, Properties Update UI
React-Native Architecture
State, Properties Update UI
Architecture
Architecture
Flexbox
Flexbox
DEMO
react-native init ProjectName
cd AwesomeProject
react-native run-android / run-ios
* a common issue is that the packager is not started
automatically when you run react-native run-android. You can
start it manually using react-native start.
react-native bundle --platform android --dev false --entry-file
index.android.js --bundle-output
android/app/src/main/assets/index.android.bundle --assets-dest
android/app/src/main/res/
react-native bundle --platform ios --dev false --entry-file
index.ios.js --bundle-output ios/main.jsbundle --assets-dest ios
React Native

React Native

Editor's Notes

  • #3 https://code.facebook.com/posts/597378980427792/react-native-a-year-in-review/ The Facebook Ads Manager for iOS shipped in February 2015 F8 developer conference in March 2015, Open Source React Native for IOS The Facebook Ads Manager for Android shipped in June 2015 Android Open source in September 2015 (React Native version 0.11)
  • #4 http://developer.samsung.com/what-is-new/news/Facebook-s-React-Native-gets-backing-from-Microsoft-and-Samsung The React Native team has grown from around 10 to around 20 engineers in the past year and has strong representation in Menlo Park, London, and New York. The main focus areas of the React Native team since the Ads Manager launch have been the following: Improving performance such as startup time, responsiveness, and scroll performance. Integrating with UI and infrastructure of the main Facebook app, both on iOS and Android Building performance tooling such as CPU and memory profilers Building new features needed by product teams at Facebook Supporting product teams by answering questions and fixing bugs quickly Developer experience, such as integrating with internal developer tools and build systems Only IOS and Android are officially supported by Facebook. Outside projects are in developement for using React-Native to build: Windows Universal App Mac OSX desktop App Ubuntu desktop App Apple TV App Samsung Tizen SmartTV / SmartWatch App
  • #5 Contributors, Commits count bigger than React
  • #9 https://www.youtube.com/watch?v=0MlT74erp60
  • #11 http://www.slideshare.net/TadeuZagallo/javascript-react-native-and-performance-at-reacteurope-2016?qid=56ebb2fd-1d03-4521-9e0b-a78fb844f74a&v=&b=&from_search=19 http://www.slideshare.net/TadeuZagallo/react-native-internals?qid=56ebb2fd-1d03-4521-9e0b-a78fb844f74a&v=&b=&from_search=28
  • #12 Minimum data transfer from bridge for performance Platform.OS == ‘ios’ or ‘android’ http://www.slideshare.net/Polidea/react-native-building-native-ios-apps-with-javascript?qid=56ebb2fd-1d03-4521-9e0b-a78fb844f74a&v=&b=&from_search=42
  • #13 Good benefits of Javascript is their asychronous natures React-Native use Javascript asynchronous call via the bridge to invokes the host native platform’s underlying APIs and UI elements Since, React-Native dont run on main UI thread, it can asynchronous call without impact user’s experience. http://www.slideshare.net/KevinONeill42/react-native-58258744?qid=56ebb2fd-1d03-4521-9e0b-a78fb844f74a&v=&b=&from_search=43
  • #14 http://www.slideshare.net/kobkrit/react-native-lecture-4-basic-elements-and-ui-layout-by-using-flexbox?qid=49a8bf5e-c250-4c44-a69e-0fa94eed5cd5&v=&b=&from_search=4
  • #16 Simple Render (Hello World)
  • #19 Tools: http://www.slideshare.net/adrian_philipp/experiences-building-apps-with-react-native?qid=56ebb2fd-1d03-4521-9e0b-a78fb844f74a&v=&b=&from_search=32