Mattermost, Inc.

FYI, project underway to increase mobile app performance on slow internet connections using React Native

FYI, there’s an internal project underway to increase the performance of Mattermost mobile apps on slow internet connections using React Native, and speeding general responsiveness.

As a reference, here are Mattermost mobile benchmarks for at different connection speeds for the current apps.

The current mobile apps on iOS and Android are designed to be feature rich and secure with the ability to run with mobile VPN clients, remotely revoke access, and for enterprises support multi-factor authentication. To do this, they render the HTML/CSS of the React UI in a native view control that works best on fast internet connections.

We believe the benefits of the React Native approach to increase performance on slow internet connections include:

  • Enabling existing contributors to apply their understanding of React to the React Native mobile apps more easily than it would be to switch to Java, Swift, or Objective-C.
  • Appeal to new and existing contributors interested in building in React Native
  • Largely develop and maintain one set of components for both iOS and Android.

The trade-offs of using React Native include:

  • Initially, our React Native implementation won’t be as feature rich as the React mobile web UI, since we’ll need to implement everything from scratch.
  • We’ll have to maintain different mobile UI code bases in both React for mobile web and React Native for mobile app
  • We’ll need to work through the cases where React Native and React diverge.

We’re developing the React Native project internally and hope to open source it after we have enough infrastructure in place to support a community project (guidelines, architecture, automation, etc.)

The mobile apps will run in alpha, then beta, before official release, where they’re intended to replace the existing mobile apps on iTunes and Google Play.

We don’t have an timeline figured out for these releases–and new information could always change our plans. We wanted to share was our current direction.

Today, thousands of organizations are using our mobile apps, which are only 9 months old. We hope these changes help us reach an even broader audience.

To answer some questions on this from the integrations & apps channel.

  • The React Native code for mobile apps will be similar to the Web UI, but it will be two different code bases. The benefit of React Native is that developers can use the same skill set across both web UI and native mobile UI to develop

  • Redux will be used to implement React Native mobile apps and based on this approach, over the long term, Redux would also be integrated into web UI