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.
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.
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.
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.
Rocket.Chat and React Native
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
- Authentication (OAuth)
- Message: Markdown, system messages, links, images, replies, alias, etc.
- Day separation
- Load more on scroll
- Multiple servers
- Segmented subscriptions
- Change user status
- Upload image (take or choose from lib)
- Record and upload audio
- Upload files
- Sign up
- Autocomplete: Username, all, here, channels, emojis
- 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
- 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!