WhoBuilt

Paper: Welcome to Material Design 2.0

Sep 14, 2018· 13 min· 3.8K views·Watch on YouTube

Speaker

Ferran Negre Pizarro, a Callstack engineer working on cross-platform apps, presents React Native Paper at a Callstack conference, covering its Material Design 2.0 components and development approach.

One codebase for Material Design

React Native Paper is a library for building cross-platform Material Design interfaces in React Native, with one codebase for Android and iOS. Ferran says the goal is for apps to feel native on both platforms. The project follows Google’s Material Design guide to keep the library focused and maintainable.

Platform adaptation and theming

Paper adapts components to platform conventions, such as showing an iOS back button and centering the app bar title when the action count allows. Ferran also describes theme providers, light and dark defaults, and custom theme values for branding. A theme change can update the app, supporting user-selected colors or day and night modes.

Layers, accessibility, and developer tools

Paper’s Portal lets developers place content above other content, such as showing a dialog over a floating action button. The project added accessibility work and right-to-left support, while some React Native accessibility properties still needed updates. Developers can try components in Expo Snack, use a Babel plugin to remove unused modules, and access Reason bindings that still needed a 2.0 update.

Components and the 2.0 release

Ferran groups Paper’s components into typography, touchables, and navigation. Examples include buttons with Android ripple effects and iOS compatibility effects, an extended floating action button, a floating action button group, app bars, bottom navigation, snack bars, and text input. Paper 2.0 had just been released, included breaking changes, and came with a codemod to help migrate from 1.0.

Contributors and next steps

A small Callstack team maintains Paper with help from external contributors. Ferran invites developers to open pull requests and says the team will help them contribute. He also points attendees to Paper stickers at the Callstack booth.

Takeaways

  • Use one React Native component library to share Material Design UI across Android and iOS while adapting details to each platform.
  • Keep a component library maintainable by aligning its scope with a design guide.
  • Centralized theme values make app-wide appearance changes and user-selected themes easier to manage.
  • Use a portal when dialogs or other overlays need reliable stacking above screen content.
  • Plan for breaking changes in major releases; codemods can reduce migration work.

Mentioned in this talk

Search inside this talk

What was claimed 9

Related talks