WhoBuilt

Scaling of the PlayStation App with React Native

Sep 22, 2023· 33 min· 2.4K views·Watch on YouTube

Speaker

Fernando Ruiz of PlayStation discusses how the team scaled the PlayStation App with React Native at React Native EU 2023, hosted by Callstack.

From a companion app to a broader experience

Ruiz traces the PlayStation App from its 2011 launch, with features such as friends’ online status, trophies, and PlayStation news, through the addition of separate messaging and community apps. In 2017, the app was rewritten in React Native, demonstrating that the team could build a full-scale app with it. As the PS5 generation approached, the team looked at how apps like Facebook, Instagram, Uber, and TikTok had expanded beyond their original uses.

Set principles before scaling

Planning for the next generation meant answering how the app could grow, how more people could contribute, and which features to build. The team set goals for speed, scalability, agile development, and new experiences with each PlayStation generation. Reviewing the earlier codebase revealed overlapping concepts such as Core and Mobile Core, which made it harder to place code and onboard developers.

Organize the codebase into three layers

The team redesigned the app as a monorepo with application, feature, and core layers. The application layer handles startup, navigation, and coordination; feature packages contain feature-specific code; and core packages provide foundational, app-agnostic functionality. Features depend on core, while feature-to-feature coordination goes through the application layer to reduce coupling.

Measure scale and address its costs

Ruiz says the app grew from about five to seven major features to more than 20, while contributing teams expanded from two to more than 17 across the United States, Japan, Canada, and India. With code ownership in place, weekly pull requests rose from roughly 10 to more than 60, and monthly releases were 99.8% crash-free among tens of millions of monthly active users. The larger codebase also made onboarding, component discovery, reuse, and estimating feature impact more difficult.

Keep adapting the engineering approach

The team is assessing the New Architecture, exploring ways for users to have the features they care about, and improving governance for teams adding features. Ruiz’s closing advice is to agree on processes and concepts that fit the app, follow them, and adapt them as needs change.

Takeaways

  • Define clear module boundaries before the number of features and contributors grows.
  • Route feature-to-feature interactions through an orchestration layer to limit coupling.
  • Use code ownership to clarify responsibility and support parallel contributions.
  • Track growth alongside its costs: onboarding, component discovery, reuse, and feature impact.
  • Review architecture and team processes regularly as the app evolves.

Mentioned in this talk

Search inside this talk

What was claimed 12

Related talks