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

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

Chain React 2018 Conference Debrief

By Spencer Carver

Chain React 2018 Conference Debrief

  • 203