6 ms·
So I'll state my bias up front. I'm a pretty happy non-native react-native developer. After reading this write up and AirBnB's write up about RN I keep wonderi
by haney 8y ago
So I'll state my bias up front. I'm a pretty happy non-native react-native developer.
After reading this write up and AirBnB's write up about RN I keep wondering if the source of the problem is more with integration points between native features.
Like I said, I'm not a traditional native mobile engineer, but as a single dev I've been able to build a rather large and complicated app almost entirely in react-native. That's not to say that I don't use mobile features, I'm using a dozen or so libraries for native features, but the common problem that seems to arise is "this doesn't integrate well with the rest of our native app". IMHO if you're writing business logic in swift/java instead of javascript you're going to have a bad time. If, however, you use/implement narrowly scoped native libraries that are glued together with javascript it's a pretty nice experience.
I wonder if the issues that they encounter are more a symptom of trying to "bolt on" react-native.
- egeozcan 8y ago> I wonder if the issues that they encounter are more a symptom of trying to "bolt on" react-native. Exactly. React native shines exactly in your situation, not when you already have a few developers who can write native code for each platform, and especially not when you already have an established app for each platform.
- meiraleal 8y ago> Exactly. React native shines exactly in your situation It also works well when you have thousands of developers with established apps (Facebook). This React Native bashing storm is more a cultural thing as the other solutions (native, swift/objc, java/kotlin) are not technically superior, with obvious up and downs compared to RN.
- TAForObvReasons 8y agoLike with React itself, as long as you play within the React-Native box the experience is great. For basic apps you don't need anything extra. Once you start having to go into the larger ecosystem for features not provided by RN, the weaknesses start to show up.
- danpalmer 8y agoI think there are a few other major problems, but I think many apps are unlikely to hit them in the same way that they are unlikely to have integration issues with native code, because they don't need much native code. Most apps only need to be a bunch of table views and detail views, with some forms. Line of business apps that need to be efficient (not pretty) or that don't use many of the advanced platform features, short lived apps for events/marketing/competitions/etc, apps for restaurants or shops, these are all places where I think React Native fits perfectly. However, if you want your app to have the best performance (spoiler alert, you probably don't), you want to be at the cutting edge of platform support, or you want to create experiences that fit on the target platform perfectly, then I think native is the way to go. Most apps do not need this.
- Cthulhu_ 8y ago> However, if you want your app to have the best performance (spoiler alert, you probably don't) Actually you do. An app like Facebook, Instagram, etc are used for hours a day; having a suboptimal performance directly translates to battery drain and a poor user experience, which costs you money. I'm sure someone smarter than me has a nice soundbite about using the best tool for the job. React Native is a compromise. Web technology on mobile is a compromise.
- danpalmer 8y agoI did say “probably”. Facebook and Instagram definitely care about the last bit of performance. Your typical line of business apps don’t need to, and that’s a lot of the market.
- spicyj 8y agoReact team here. I think this is largely true. We’re already working on tackling a lot of these rough edges; see a recent post I made to learn more: https://facebook.github.io/react-native/blog/2018/06/14/state-of-react-native-2018 https://facebook.github.io/react-native/blog/2018/06/14/stat...
- ckluis 8y agoB2B (Xamarin) team where I work. One huge step to help B2B adoption would be to include an official library to include some functionality instead of having to choose between many different fragmented options. A perfect example is qr/barcode scanning - there are numerous commercially supported "enterprise" scanning engines which are substantially more performant than builtin solutions or existing open source solutions. If you can meet a few of these requirements with main library support it would become incredibly hard not to use react native in B2B solutions.
- on_and_off 8y ago>I wonder if the issues that they encounter are more a symptom of trying to "bolt on" react-native. I suspect that your experience as a single developer has VERY little in common with what the 100 people Airbnb team is doing. I am not trying to say that you or your work are in any way lesser than the one of a big team but it is a very different problem. I have worked in such an environment and even with native, we had to code a ton of custom Views in order to get exactly the specific behavior we had in mind. There are tons of little tweaks that demand to exploit the platform to 100% that you can in a very large team and that you would just avoid a single dev because you don't have the time for this kind of stuff at big scale.
- chrisco255 8y agoHe's not wrong though. Other big teams have had success with React Native including Skype and Office teams, as well as Instagram. When I read this article by Udemy, where they started with 1 dev for each platform and had a mere 3 or 4 react Native features and then ended up with 7 or 8 mobile devs split along platform lines, I wondered if 2 or 3 react native devs couldn't achieve the same thing if they actually tried to share 90% of the code across iOS and Android and went all in? The productivity boost is there if you embrace it.
- on_and_off 8y agoRN is a compromise, and a very big one. It might be the right choice for some products but my experience on complex products more closely reflects the Airbnb one than the myth of 'only know js, write once, run everywhere'
- filleduchaos 8y agoI wouldn't exactly call the Skype app a success. Easily the worst communication app on my phone by far. To be fair, a lot of that is in the product vision and design and not entirely React Native's fault.