React Native 0.60
facebook.github.io
facebook.github.io
I understand this is not a trivial problem, just comparing my experiences with RN with Flutter.
but so are a bunch of other things that are easier to use
https://react-native-community.github.io/upgrade-helper/?fro...
Native devs don’t like RN because the mobile dev supply gets bigger which hurts their market value. That’s the real reason of your post, spreading FUD.
RN has its limitations but for 80% of apps it’s absolutely fine.
https://medium.com/airbnb-engineering/sunsetting-react-nativ...
Please stop with the market value/FUD attacks, they are nonsense and childish. You clearly have an axe to grind.
I don't like RN because I have had to sunset multiple large projects in RN. Javascript is a mess for mobile development. The interaction between the native layer is a mess. Hell, it's still not even a 1.0 release yet - smart CTOs would be insane to suggest it as a tool. Just look at the upgrade guides they post - a mess.
Interopt with Nativescript and other libs was hard, React Native didn't support Typescript as a first-class citizen (which as a prereq of mine) and the developer tooling wasn't as mature as the Ionic/Cordova/Angular cli(s) were.
A lot of noise around Flutter but haven't given it a try yet, but I'm weary because of defining views-as-code rather then a flavor of JSX/Angular Templates.
JSX is just syntactic sugar, it's not a templating language. You could write yourself a JSX syntax extension for Dart, it'd be the same thing really.
Edit: More succinctly, JSX desugars to method calls
I am really dependent on static types so take my take on this with a grain of salt :)
Flutter is more mature right from the Dev tools to the overall ecosystem. The types are first class and make it a joy to use. Not to mention the libraries are better quality and stuff works even when you upgrade. I could never work on any RN project for more than 1-2 weeks without something or the other breaking and me cursing out aloud for the really shitty (again subjective) state of things. I am used to having codebases just keep on working almost forever.
Agreed, though I'd love to use Ionic with Scala.js in place of TypeScript (which is great, but doesn't give me the same if-it-compiles-it-works confidence as Scala does, not to mention batteries-included standard library).
Hopefully technology will emerge that allows one to write once/run everywhere in preferred-language on all major platforms. Compromises seem to abound with currently available options.
I miss having a solid advanced type system like in Haskell when using something like Typescript or Dart. Typescript feels mostly like Microsoft's attempt on converting Javascript to align more with C# to me.
Also see some past blog posts with more: https://ionicframework.com/blog/announcing-capacitor-1-0/
Capacitor 1.1 turned off Electron security protections to make things work as they always have. As a new project, I was hoping for more.
In Capacitor 2 you have the opportunity to have the business logic run in a separate thread than the UI, and add the privileged code there. And such logic would not need to hold up the UI allowing for a smoother app.
One XSS in an iPhone app and maybe they own that app. One XSS in an Electron app and they wipe out your whole PC and life. There is a reason why Electron changed the defaults.
As someone that uses TypeScript to death and works on react native as my job pretty happily, please explain this?
Also JSX is absolutely not a templating language, it's an extremely thin layer over JS.
When I used React Native with Typescript (this was about a year ago) the initial setup to get all of the types playing well together either wasn't clear from the documentation or I ended up debugging/writing custom definitions to get things to work. It just felt sidelined or treated as a second class citizen, but I feel like this has been a common theme throughout the life of React generally.
It's a common view but really quite a funny form of path dependence / mental fixedness. The fact that html elements have been defined with angle brackets is essentially historical accident. It's just a simple hierarchical structure that can be in any notation and any given programming language can happily support this already without new syntax. Yet because of the history, we feel more comfortable with some angle brackets and so we have all this redundant syntactic complexity in jsx/tsx which we would never design without the history.
I'd encourage you to be open minded for going to all code because although there will be an acclimatisation period as you break the historical connection, those familiar angle brackets are totally superfluous.
I chose to give up on RN at 0.59 and focus my efforts on getting really fluent at Flutter instead.
Stopped reading there.
in real ionic is mainly about Angular while Quasar is mainly about Vue, so React Native must be mainly about React, which happens to be the largest framework comparing to Angular and Vue these days.
Not discrediting RN, just calling out that the number of downloads is a terrible proxy metric for quality.
Edit: interestingly, the most recent re-post did gain some traction this time!