Sergey Smyshlyaev / @sesm_
1 year experience with React, big project from scratch
1 mo experience with React Native, joined existing project
For cutting edge tech it still counts as experience :)
React
ES6
Flexbox
Cordova/Phonegap/Ionic
Xamarin/RoboVM/other hybrid
Native iOS
Native Android
+ can use all the libs
- non-native look and feel
- gesture handling
- limited use of HW acceleration
- too much work for one JS thread
+ can use native widgets, APIs, gestures, etc
+ animation runs in native code
- challenging (see further)
Sync calls between native and JS will block native execution, so need to run JS in separate thread
but...
- resource contention (i.e. accessing native element props), need to block
- calls between JS and native are costly.
React offers async rendering model, that solves both problems!
JS thread: component lifecycle, JS libs
Bridge
Native UI thread: layout, animation, native component rendering
Native auxilary threads: image decoding, native API
Layout system is subset of web, but FlexBox only.
Styling similar to inline styles.
Running the same React as in web, using JSX for views.
Use React ecosystem (Redux with all middleware, etc).
Use JS libs, that are not browser or node.js specific.
Actually pretty good!
[here comes the demo]
Needs community outside of FB
Become a contributor, low hangings fruits are waiting
Contact me (Qs about React/React Native welcome)
Twitter: @sesm_
E-mail: sergey.smyshlyaev@gmail.com
Telegram: @sergey_smyshlyaev
VK: vk.com/id115992