Chain React 2018 Conference Debrief
July 11 - 13, 2018 Portland, OR
Spencer Carver
Presented on August 16, 2018




Overview
- Goals for Attending
- Conference Focus
- Developer Stories
- Takeaways








Goals for Attending

- - Learn if we can (easily) reuse React Native code on a React.js website
- Catch up current design trends and uses
- Hear community response to recent news (Airbnb very publicly sunsetting React Native)
- Hear from Facebook React creators at the conference what is next
Primary Goal
VR/AR Track
- Multiple VR/AR developer tool creators pitching their libraries and demos
- Several presentations showcasing uses of various libraries and talking about adoption and the future (ex)
Native Track
- General React Native vs Kotlin (Android) and Swift (iOS) discussions and evaluations
- Panel with React developers at Facebook on community asks and upcoming changes




Conference Focus




Developer Stories - Eaze
- 2 apps - Customer and Driver
- Customer App is pure Native (Kotlin and Swift) as the User Experience is the most critical component
- Driver App is React Native as turnaround time on releases is most important, given the changing legal landscape surrounding their product




Developer Stories - Squarespace
All Logic
React.js
React Native
Design Component
Web
Container Component
Mobile
-
Write Once, Run Anywhere did NOT work
-
~70% of code can be shared, 30% is platform-specific
-
Use babel/metro to replace {target} in dependencies with App-specific version of file




Developer Stories - Apollo
-
apollo-link-state allows Apollo GraphQL services to dump queries directly into React state, which can then be queried in-app via GraphQL.
- This allows for a more consistent data access pattern, and allows local and fetch-based lookups to occur as part of the same query, without having to explicitly control this in the container
- Apollo can also analyze your GraphQL schema and generate TypeScript definitions for code




Takeaways
- React.js and React Native can share code, but it is unlikely and difficult unless they were designed to do so from the start
- Libraries (e.g. react-native-web or react-primitives) that try to facilitate this don't work completely in general, but may work case-by-case
- Companies that have grown with React Native appear to be moving more Native to focus on quality of user experiences, once launched on all platforms is no longer the biggest limiter




Takeaways (Primary Goal)
Since React Native to React.js is possible, but has to be evaluated on a case-by-case basis, we should try it!
My Hackathon proposal is going to be porting the mobile apps watchlist into shi-chang, and see how far we can get in one day.
Also, maybe we should work a little closer with the mobile team? component design, code structure, and a variety of other topics are all common even if we don't have a single line of shared code (even better if we do).




Resources
-
My Notes
-
Videos of all presentations
- Links elsewhere in this slide deck
-
Accessibility is always important
- Various other Dev Tools (Flipper, Storybook)
Chain React 2018 Conference Debrief
By Spencer Carver
Chain React 2018 Conference Debrief
- 203