picture

Organize | Su Mi
Produced | CSDN (ID: CSDNnews)

Going around in circles, many developers still found the truth of React Native.

A few days ago, Discord, a well-known foreign chat software, released an "Exciting Update for Android Version of Discord" on its official blog. In the announcement, Discord noted that it will be improving the Android version of the app in the coming weeks, including by simplifying the app development process centrally across Android, iOS, and desktop, and achieving functional consistency across platforms.

picture

Source: Discord official website


picture

iOS, desktop, and Android are at different paces , and miserable cross-platform development


For a long time, when we use software, we often find that the same application update pace is not consistent on different platforms. It is often after the iOS and desktop terminals are released first, and the applications on the Android platform are long overdue. This phenomenon also appeared on Discord.

Today, Discord has decided to change that, saying it is using React Native for Android app development, which means faster improvements to the experience on each of Discord's platforms, while still keeping Android and iOS specifics in the UI. mode.


picture

Discord for Android is developed with React Native


As a cross-platform framework, React Native was a hackathon project started by Facebook (now Meta) software engineer Jordan Walke in 2013 when he discovered a way to generate UI components for iOS applications . As such, the React open source framework was originally built for iOS and made available to the public as an open source project on GitHub (https://github.com/facebook/react-native) in March 2015. Subsequently, Facebook also quickly provided Android support for React Native.

As of now, React Native has become one of the largest projects in GitHub with 104k Stars and 22.3k branches. It is also widely used in many popular mobile applications including Instagram, Microsoft Outlook, Shopify, Tesla, Pinterest and many more.

Discord has been using React Native in its iOS app since 2015. Now in migrating Android app development to the React Native framework, Discord says, "Android users will also enjoy the benefits of a faster release cycle for app updates. React Native allows us to simplify and consolidate the process, helping engineers to be more efficient work and push updates more frequently, especially now that teams don’t spend as much time maintaining different codebases for different devices.”

picture

React Native is a cross-platform artifact?


In response to the migration of Discord, many netizens also initiated discussions on the use of React Native.

@ramesh31:

React Native is truly a game changer for mobile development. Last year, I used it to build a new iOS app for the first time since the old Objective-C/UI-Kit days. I actually built something in minutes that at the time would have taken hours or days writing custom OpenGL and networking code. At this point, any performance tradeoffs are worthwhile.

However, due to the challenges of performance, iteration speed, complexity and other dimensions, many companies such as Airbnb and Udacity chose to give up after using React Native for a period of time and embraced native development again. In this regard, a netizen @Grim-444 shared according to his company's practice:

"I'm pretty sure there's only one real change that React Native brings, and that is that it provides PMs/managers with some great pitch material on how to lead their teams to "switch to a shared cross-platform codebase". Then, they When migrating with React Native, you have to deal with the long-term consequences of migrating to RN all the time.

Take our company as an example. Recently, the technical team has switched Android and iOS applications from native development to React Native development. The RN sponsors promised that sharing code between platforms and performance would be as good as native development, and that the UI would get all sorts of benefits like native development, but in the end none of that actually came to fruition.

By the end, RN's code only accounted for 20% of the Android app. Technical teams cannot achieve "write once", run on both ends.

It turned out that we had two teams: the iOS and Android development teams. Right now, we have three teams, iOS native, Android native, and React Native. Furthermore, the React Native team is divided into two camps: iOS and Android, which is particularly chaotic.

In addition, there are some problems with RN development, such as:

  • For things that couldn't be done in RN, we also needed the support of a well-equipped Android team.

  • When developing with React Native, the performance difference from natively developed applications is very noticeable.

  • Now our organization is also problematic because the application involves multiple teams/languages ​​and different parts of the application are owned by different teams and management instead of just one team to develop a good application.

  • A lot of engineers on our team don't want to have anything to do with RN.

  • Our codebase now relies on third-party platforms and languages ​​that are completely different from what Google says should be built for Android apps. Why don't we build Android apps the way the Android team says they do? Is it really necessary to support RN/JS in the long term? "

What do you think about this? Have you used React Native?

refer to:

https://news.ycombinator.com/item?id=32310392

https://discord.com/blog/android-react-native-framework-update

— Recommended reading —
☞The new "internal volume" sweeps the technology circle, Google CEO asks 174,000 employees to improve work efficiency!
☞Baidu offline search snapshot function, insiders: functional obsolete due to technology upgrade; French app developers sued Apple collectively; Linux 5.19 released | Geek Headlines
Linus: I finally released the latest version of Linux on my M2 chip MacBook!

" New Programmer 001-004 " has been fully listed 

Scan the QR code below or click to subscribe now

picture