Testing React Native for Rocket.Chat: a progress report

Julia Grala
November 13, 2018
·
min read

After years of success with React.js, described by its creators as a "javascript library for building user interfaces", Facebook released a new framework called React Native in 2015, using the knowledge of its ancestor to develop mobile apps for iOS and Android. Unlike alternative frameworks that build hybrid apps based on webviews, React Native creates truly native apps which is why it sparked our interest here at Rocket.Chat! You have probably already seen React Native in action without realizing: Facebook and Instagram are already using it in their apps for instance.

Features

Cross-platform collaboration

Standard app development using mainstream frameworks entails using separate teams for iOS and Android, making it harder to sync new features or spot potential bugs, let alone work on fixing them in a timely fashion. React Native changes all of that by making it possible to work across platforms and unite teams and their knowledge. Plus there's a bonus: it's also possible to share code with web developers thanks to React Native being based on React.js!React Native also supports Flexbox which means you can use the exact same layout code and write apps for iOS, Android and web that are all driven by one shared codebase instead of having to learn three different engines. The same team can work on a new feature by sharing views, requests, status while another team review its pull requests.

Readymade ecosystem

Being built on React.js brings with it a huge community to contribute and build libraries and tools to improve development, while ensuring you can use any npm module that suits your needs. React Native enables you to BYOE (bring your own editor) to the room. Instead of being forced to use Xcode or Android Studio, you can choose from VS Code, Atom, Sublime Text, or even Vim if you'd like to.

Hot reloading

React Native allows you to see changes instantly instead of having to wait until you restart your app to potentially spot any errors or changes that have not worked as expected.

Live Updates

Thanks to React Native, it is no longer necessary to go through the pre-existing lengthy release process which used to involve sending the new release to the stores and waiting for Apple's approval before seeing the next killer feature in the store, ready for download. React Native has services like Microsoft's VS App Center with its CodePush tool, which immediately releases updates to your users. The bottom line is that you can now publish updates to your app whenever you like.

The cons

Although React Native has a variety of amazing advantages, it does have some downsides. This blog post by Facebook provides insight into the current state of React Native, including what it is doing to invest in its future by working on a "large-scale re-architecture" to improve the framework's flexibility and its integration "with native infrastructure in hybrid JavaScript/native apps".

Rocket.Chat and React Native

react native rocket.chat

At Rocket.Chat we care about user experience and are always looking at ways to improve it, so we have been evaluating React Native for a while now by building it for our platform, and it's been awesome!Here is what we've built so far:

  • Send message
rn-chat-demo-6741633
  • Authentication (OAuth)
  • Message: Markdown, system messages, links, images, replies, alias, etc.
  • Day separation
  • Load more on scroll
  • Multiple servers
rn-order-chats-2801693
  • Segmented subscriptions
  • Change user status
  • Upload image (take or choose from lib)
  • Record and upload audio
  • Upload files
rn-attachments-demo-2300353
  • Sign up
  • Autocomplete: Username, all, here, channels, emojis
  • Terms of service and privacy policy
  • Create channel
  • Message actions: copy, pin, star, reply, quote, delete, etc
  • Channels: Info, edit, members, pinned, starred, etc
  • Star channel
  • Block/mute user
  • Archive/delete channel
  • Offline reading
  • Edit profile
  • Reactions
  • Custom emojis
  • Deep links

And more! Watch this space for more updates as we continue to build our React Native-based platform for Rocket.Chat :)Like what you see? Follow our progress and star us on GitHub!

Get started with Rocket.Chat’s secure collaboration platform

Talk to sales

Frequently asked questions about <anything>

Julia is a Marketing Operations Manager at Rocket.Chat.
Julia Grala
Related Article:
Team collaboration: 5 reasons to improve it and 6 ways to master it
Want to collaborate securely with your team?
Deploy Rocket.Chat on-premise or in the cloud and keep your conversations private.
  • Digital sovereignty
  • Federation capabilities
  • Scalable and white-labeled
Talk to sales
Looking for a HIPAA-ready communications platform?
Enable patients and healthcare providers to securely communicate without exposing their data.
  • Highly scalable and secure
  • Full patient conversation history
  • HIPAA-ready
Talk to sales
The #1 communications platform for government
Deploy Rocket.Chat on-premise, in the cloud, or air-gapped environment.
  • Digital sovereignty
  • Trusted by National Geospatial-Intelligence Agency (NGA), the US Army, the US Navy, and the US Air Force
  • Matrix federation capabilities
Talk to sales
Want to customize Rocket.Chat according to your own preferences?
See behind the engine and change the code how you see fit.
  • Open source code
  • Highly secure and scalable
  • Unmatched flexibility
Talk to sales
Looking for a secure collaboration platform?
Keep your conversations private while enjoying a seamless collaboration experience with Rocket.Chat.
  • End-to-end encryption
  • Cloud or on-prem deployment
  • Supports compliance with HIPAA, GDPR, FINRA, and more
Talk to sales
Want to build a highly secure in-app chat experience?
Use Rocket.Chat’s APIs, frameworks, and managed backend to build a secure in-app or live chat experience for your customers.
  • Supports compliance with HIPAA, GDPR, FINRA, and more
  • Highly secure and flexible
  • On-prem or cloud deployment
Talk to sales

Our best content, once a week

Share this on:

Get your free, personalized demo now!

Build the most secure chat experience for your team or customers

Book demo