---
title: "Shipit! Presents: How We Write React Native Apps"
description: "A May 19, 2021 Shipit! event brought together Colin Gray, Haris Mahmood, Guil Varandas, and Michelle Fernandez, developers setting Shopify’s React Native standards, to discuss writing performant apps. The Q&A covers accessibility and design guidance through Restyle and Polaris documentation; their responsive layouts avoid fixed sizing where possible and use breakpoints for fonts and spacing. They describe React Native state as the usual source of truth while native modules manage internal state and send updates through EventEmitter, with SQLite in Point of Sale as an exception that still has one source of truth. Jest handles unit and integration tests, Buildkite manages CI builds, nightly builds are automatically distributed to testers, and failing feature-branch tests block merges to main."
---

# Shipit! Presents: How We Write React Native Apps

[Shopify](https://yomu.fyi/company/shopify) · 2023-10-18 · May 27, 2021

**Type:** Announcement

## Summary

A May 19, 2021 Shipit! event brought together Colin Gray, Haris Mahmood, Guil Varandas, and Michelle Fernandez, developers setting Shopify’s React Native standards, to discuss writing performant apps. The Q&A covers accessibility and design guidance through Restyle and Polaris documentation; their responsive layouts avoid fixed sizing where possible and use breakpoints for fonts and spacing. They describe React Native state as the usual source of truth while native modules manage internal state and send updates through EventEmitter, with SQLite in Point of Sale as an exception that still has one source of truth. Jest handles unit and integration tests, Buildkite manages CI builds, nightly builds are automatically distributed to testers, and failing feature-branch tests block merges to main.

## Context

Shipit!, Shopify’s monthly event series, presented a May 19, 2021 session about how Shopify developers write performant React Native applications and set development standards. The discussion addressed UI practices, native integration, testing, CI, responsive layouts, and production tooling.

## Approach / What changed

The team documents UI practices with Restyle and Polaris, favors flexible layouts with breakpoint-specific values, keeps shared state in React Native where possible, and uses native modules for internal state. It uses Jest for unit and integration tests, Buildkite for CI, automated nightly test distribution, and merge protection for failing feature branches.

## Takeaways

- Shopify generally keeps React Native as the source of truth for shared state; native modules send updates through EventEmitter, while the Point of Sale app accesses its SQLite database entirely through a native module.
- Restyle supports responsive styling through defined breakpoints, allowing different font sizes or spacing values for different device sizes; the team uses fixed sizes mostly for icons and imagery.
- Nightly builds are created automatically from main and uploaded to a test distribution platform, while ShipIt prevents feature branches with failing tests from merging to main.

**Tags:** [Architecture](https://yomu.fyi/topic/architecture), [CI/CD](https://yomu.fyi/topic/ci-cd), [Performance](https://yomu.fyi/topic/performance), [Testing](https://yomu.fyi/topic/testing)

- Source: [Shopify](https://shopify.engineering/shipit-writing-react-native-apps)
- Source URL: https://shopify.engineering/shipit-writing-react-native-apps
- Ingested by Yomu: 2026-08-30T15:30:21.172Z

[Read original post](https://shopify.engineering/shipit-writing-react-native-apps)
