How is Discord servicing more than 130 million people with 40 engineers?

" Discord " is a voice call / chat application mainly for gamers. In addition to operating on the browser, it starts distributing applications to most operating systems such as Windows, iOS, Android, etc. It also has text channels like Slack and low latency voice channels, video calling and screen sharing Easy to do and features such as popularity has grown into applications that more than 130 million people use in 3 years since its appearance in 2015. That Discord is developed by only 40 people, but it is explained in the official blog about how you can deploy applications on a variety of platforms while being small.
Why Discord is Sticking with React Native - Discord Blog
https://blog.discordapp.com/why-discord-is-sticking-with-react-native-ccc34be0d427
Discord's web application is mainly developed using the architecture " React " and " Flux ". The iOS version of Discord is created using " React Native " which uses the screen drawing library "React" for web pages on the application, but this is a major point of small group development Thing.
Since Discord's web application was originally created using React, there was a chance that if you use React Native, you can reuse most of web application code. Therefore, the development team of Discord seems to have made an iOS application using React Native as soon as React Native was announced at React.js Conf 2015 . And I was surprised by its simplicity. Also, because Android can use almost the same code, it seems that it took only 2 days to port an iOS application to Android.

However, as Android discovered that there was a serious problem in performance etc. immediately after creating it, Android said that it stopped using React Native. However, even though there was a problem with the Android version, it seems that the iOS application creation method using React Native was fairly ideal.
People who sees React Native as "a library for simultaneously developing Android and iOS" sounds odd, but even if it is only for iOS version, it has enough merit to adopt React Native I felt that. For example, because the architecture React and Flux is common to Web applications, you can make data structures and libraries common, you can use tools and infrastructure for front end such as eslint , React Native engineer can use Android The advantage is that you can focus on iOS apps out of consideration.
As of August 2018, the iOS application of Discord is an application used by millions of people every day, and its review exceeds 250 thousand and has an average of 4.8 stars on average. And this iOS application is being developed by just two engineers. React Native keeps teams small and efficiently maintains Discord.

Although React Native has specific problems such as loading time becoming longer because it reads and analyzes all the code before execution, the merit of being able to share most codes with iOS application and web application as a whole is It is very big. Especially 98% of the code of the part called the store and action in the Flux design pattern is shared, so React Native is an incredibly efficient framework.
Related Posts:
in Mobile, Software, Web Service, Web Application, Posted by log1d_ts