This talk has been presented at React Day Berlin 2023, check out the latest edition of this React Conference.

This talk has been presented at React Day Berlin 2023, check out the latest edition of this React Conference.
Mattermost is an open-source alternative to Slack and Microsoft Teams. It is a chat application with a mobile app written in React Native.
Daniel Espino-Garcia is a software design engineer at Mattermost who gave a talk about using React Native at Mattermost.
You can contact Daniel Espino-Garcia by dropping by the office at the Mattermost community server.
Mattermost uses React Native for its mobile app because it allows for a single codebase that works on both iOS and Android, and it uses JavaScript, which is consistent with the rest of Mattermost's frontend stack.
Mattermost faced challenges such as support for multi-server, data isolation, and offline support. These challenges led to a complete overhaul of the app with a new architecture and interface.
Mattermost initially used Redux for state management but switched to WatermelonDB to handle large states, offline support, and multi-server scalability. WatermelonDB stores the state in a SQL-like database and uses RxJS for reactivity.
Mattermost uses TypeScript for type safety, organizes components functionally, follows specific coding rules and component order, and uses custom hooks to reduce boilerplate and complexity.
Yes, the Mattermost mobile app is open source, and its complete code is available on GitHub.
Mattermost has implemented custom native features such as EMM for session separation, improved text input handling, custom logging, and id-loaded notifications for push notifications to address data residency concerns.
WatermelonDB is a database solution that stores state in a SQL-like database, allowing for scalable state management without loading the entire state into memory. Mattermost chose it for its scalability, offline support, and multi-server capabilities.
We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career