4 ms·
Every experience I had with React Native was truly horrible. Gigantic, messy JS dependency tree. Constant build breakages after minor version updates. Random f
by the_duke 4y ago
Every experience I had with React Native was truly horrible.
Gigantic, messy JS dependency tree. Constant build breakages after minor version updates. Random flakiness. Unmaintained or buggy native plugins. Questionable support for issues that didn't affect FB.
I wouldn't touch it again.
- terandle 4y agoHighly recommend trying expo.dev sometime they have come a long way in providing support for native modules and take care of all that underlying "mess" for you.
- TotempaaltJ 4y agoI absolutely agree with this. At this point I don't really think there's much reason to _not_ use Expo. I found setting up RN without Expo absolutely awful, and switching to Expo was the only reason I didn't start rebuilding my app in Kotlin+Swift.
- hunterb123 4y agoThere's Expo if you don't want to setup your own stack. You certainly don't need it though, I have no issue with my React Native stack. Flutter has its share of similar tooling issues, most of the time its native things like CocoaPods that affect both projects. RN has a huge amount of plugins, a lot that are very good quality. It's up to the dev to pick quality dependencies.
- realusername 4y agoThat's the story with Javascript in general, the tooling is just terrible. This is one of the underappreciated part of flutter, 4 months of upgrade take me 30min of work and the hot reload just works, good luck with that in the JS world.
- hunterb123 4y agoI never really have issues with the JS side of things, care to elaborate on what specifically is "terrible"? Generally what breaks RN is the same stuff that breaks Flutter, native tooling like CocoaPods, Gradle, etc.
- realusername 4y ago> I never really have issues with the JS side of things, care to elaborate on what specifically is "terrible"? Packages are usually poorly tested (and the fact that it's dynamic language does not help), upgrades are often and painful, the tooling is not very stable in my opinion. Before settling for Flutter, I've made a limited version of my app in both ecosystem to try both and on the RN one, I already had upgrade issues only after a month... > Generally what breaks RN is the same stuff that breaks Flutter, native tooling like CocoaPods, Gradle, etc. You need much less native tooling in Flutter since almost everything is canvas based. Broken stuff on the native part is very rare, I can't really remember anything like this from the past 3 years. I had to upgrade the graddle version once but that's about it. I have ~30k lines of dart excluding tests and about 15 lines of Kotlin (and zero in ios), that's the kind of ratio we're talking about.
- hunterb123 4y ago> Packages are usually poorly tested Just in general? I don't know of any packages in my app that are poorly tested. Simply do not choose dependencies that don't meet your standard, whether it's TS or Dart. > and the fact that it's dynamic language does not help Most packages nowadays are written with TypeScript or Flow. JS itself is fast and stable thanks to the billions put into the VMs. > upgrades are often and painful You don't have to upgrade. In the early days things were more painful, but I've upgraded the past few major React and RN versions with no hassle. > the tooling is not very stable in my opinion. Seems stable to me since the last couple years. Personally the apps that Flutter makes are of worse quality vs RN apps. Emulated native will always feel cheap compared to real OS controls.
- realusername 4y ago