WhoBuilt

I picked Up React Native As a Web Developer

Oct 9, 2019· 29 min· 997 views·Watch on YouTube

Speaker

Laura González, a client developer at The Guardian, shares lessons from learning React Native while rebuilding the Guardian’s iPad news edition for phones and tablets, speaking at React Native EU 2019 for Callstack.

Learning by building

González took on a project to rebuild the Guardian’s iPad-only news edition for iPhone, Android, and tablets, despite having no React Native experience. She argues that setting a concrete goal and learning through mistakes can be more useful than studying every tool before starting.

React Native’s foundations

She explains that React Native uses React with a native app renderer, while web projects pair React with React DOM. Native modules can add device features such as camera access, and Expo lets developers begin with JavaScript before taking control of native code if needed.

Adapting web layout and styling

React Native keeps familiar components and patterns, but uses views instead of HTML elements and has CSS-like styles without cascade, selectors, or Grid. González describes using a WebView for article content that depended on floats, and absolute positioning for complex front-page layouts. Accessibility roles, labels, and hints provide ways to describe interface elements to screen readers.

Handling interaction, animation, and navigation

She covers Pressable for responsive interactions, device dimensions for layout changes, and animated values for motion tied to gestures. Mobile transitions need to respond immediately and maintain 60 FPS. React Navigation offers flexibility, while React Native Navigation uses more native navigation elements with less customization.

What the project taught her

A three-person team rewrote a complex app in six months. González says the work deepened her understanding of React, including performance and context, and recommends trying React Native for developers considering a native app.

Takeaways

  • A concrete project can make learning an unfamiliar framework more focused and practical.
  • Expo can reduce early setup work while leaving a path to native code later.
  • Plan for React Native’s layout limits when translating web designs that depend on floats or Grid.
  • Use accessibility roles, labels, and hints to communicate interface meaning in native views.
  • Choose navigation based on whether native transitions or customization matter more to the app.

Mentioned in this talk

Search inside this talk

What was claimed 8

  • role at
    Laura González is client developer at The Guardian
    “I'm a client developer at The Guardian”
    YouTube
    Unverified1 source· Talk
  • feature
    Expo Modules: Lets developers hand over control of native project details and write JavaScript
    “Expo lets us hand over control of all the native bits so we just have to write JavaScript”
    YouTube
    Unverified1 source· Talk
  • feature
    React Native: Uses native modules to access device functionality not included out of the box
    “you'll have to use native modules”
    YouTube
    Unverified1 source· Talk
  • feature
    React Native: Supports accessibility roles, labels, and hints on elements
    “You have this cool accessibilityRole property”
    YouTube
    Unverified1 source· Talk
  • feature
    React Native: Uses Flexbox for layout and has no CSS cascade or selector support
    “everything is flexbox”
    YouTube
    Unverified1 source· Talk
  • feature
    React Native Navigation: Maps to native iOS and Android navigators for a more native experience with less customization
    “it maps to the native iOS and Android navigators”
    YouTube
    Unverified1 source· Talk
  • feature
    React Navigation: Allows extensive customization of navigation interfaces
    “in return you can do just about anything you want with it”
    YouTube
    Unverified1 source· Talk
  • metric
    The Guardian: Rewrote a complex app in six months with a three-person team
    “rewrite a quite complex app in six months with a three-person team”
    YouTube
    Unverified1 source· Talk

Related talks