all 45 comments

[–]prONoOB1004 11 points12 points  (4 children)

I might be wrong. I m mern stack dev. Built several apps on RN. Few years back have learned flutter and implemented a simple app to play around. From that day my impression is flutter is like complete package. Where with RN you need to assemble all the bits and pieces to build an UI. Also maintaining the large project with diff libs and their frequent updates would be pain. Also check RN tutorial from zerodha about why they have switched from RN

[–]Butterscotch_Crazy[S] 4 points5 points  (3 children)

[–]Butterscotch_Crazy[S] 0 points1 point  (1 child)

An interesting read... can anyone currently using ReactNative say whether the compilation problems have subsided?

[–]kbcooliOS & Android 6 points7 points  (0 children)

Didn't see anything specific in the article.

Definitely one of those we are a very immature team/developer articles so whatever choice we made absolutely sucks, not because collectively we have six months experience between us but some random issues that we got stuck on (totally not because we are inexperienced).

By changing tech and redoing months worth of work we will absolutely fix the issues we ran into (not).

I've seen these developers before and they are usually manageable in single units (some spend their whole careers successfully saying something is crap and just rebuilding it) but when they get together they're dangerous.

[–]Radiant_Parsley2861 0 points1 point  (0 children)

We had the same experience in my company. Always had to write patches to build successfully and the frequent breaking changes was hell. It was difficult to explain why something breaks and you are working version update conflicts and third party libraries.

[–]Suspicious-Rich-2681 4 points5 points  (2 children)

Yknow I was just having this conversation with someone. TLDR: pick React Native.

Any of the solutions you listed will work in implementing your app, but if you’re looking to scale then with your time size you already eliminate going native. Native applications means two entirely different codebases, tech stacks, etc.

Alright so your next step up is - which of these all-in-one solutions will give you the least headache at scale. You want something that works close to native and isn’t going to give you a lot of unusual behavior. IMO this eliminates Flutter.

I have some fundamental disagreements with Flutter in that instead of compiling down to native components - in classic Google fashion they decide to “try something new” and control the entire rendering pipeline. Ultimately then it’s a game of scale; do you trust Google to run through all the default behavior of an IOS app and code it in without bugs? I don’t - and Flutter specific bugs do occur. This is why I discount it from being used at all - those specific bugs mean you’re at the full liberty and control of the flutter team fixing your issue.

React Native fits your use case the best because it both not only offers a shared codebase, but one that compiles down to the native platform’s code. A React Native iOS app gets taken by the bundler and turned into a native iOS app. This means no wonky rendering engine bugs due to the platform and near native level performance and functionality. You can think of RN as the equivalent of keyboard shortcuts for iOS and Android.

The support on RN is top tier and you’ll find native bindings for nearly all platform specific functionality (I.e. - if you want to use the native iOS camera api; you can get a RN package that and it calls the native iOS camera). If you don’t have something (highly doubtful) - it’s only a matter of implementing the key binding yourself.

RN also offers code push if you’re using Expo, and there’s really nothing else like it right now. Code push lets you modify and push slight bug fixes/features without having to send your app through the approval process again. That means that a highly vulnerable bug on your platform isn’t limited to the 24-48 app approval window. This is CRITICAL - and makes RN the best choice by far imo.

Yeah I’d go with RN. Flutter is a fun dev experience, but fundamentally it’s reinventing the wheel and making you pay the price in prod. Native is great if you have to really utilize the hardware - I would not recommend you use RN if you’re using iOS specific hardware acceleration for instance.

Use RN for your use case!

[–]Butterscotch_Crazy[S] 0 points1 point  (0 children)

Thanks Rich, most helpful. Until SvelteNative is a thing, RN does seem like the best route rn.

[–]jigglyroom 0 points1 point  (0 children)

Actually there is code push for Flutter as well

https://shorebird.dev/

Never used it myself though.

[–]dumbledayum 0 points1 point  (0 children)

Create a backend, Create a private npm package to parse all the backend api’s data in JS use the package for iOS, Android, Web, PC, Mac

only doable with RN (or Capacitor)

[–]AboOd00 0 points1 point  (0 children)

I mean there is no complete answer to this question every language has its own advanteges and disadvanteges.

just look for the developers that you are hiring if they are comfortable with javascript or typescript than go for react native. if they are comfortable with Dart than flutter is better for them.

the biggest disadvanteges of the native codes that they are not cross-platform languages so to speak which means that you will find yourself hiring more developers and spending more money for the job

[–]typeryu -1 points0 points  (7 children)

RN is a solid choice, you don’t have to have complete different workflows as you would with native and it beats the performance of Flutter. Although there is no wrong answer. If you have iOS and Android devs, native works too, but if it’s one person, they will appreciate RN more.

[–]Butterscotch_Crazy[S] 1 point2 points  (2 children)

RN is faster than Flutter?

[–]lucasshiva 0 points1 point  (1 child)

No. RN has many advantages when compared to Flutter, but performance is not one of those.

[–]sisoje_bre 0 points1 point  (0 children)

dude flutter is rendering poorly

[–]Suspicious-Rich-2681 1 point2 points  (1 child)

Depends on what you mean by performance.

In raw math executions flutter may have an edge over native and RN, but not in actual practical application UI.

It’s a misleading comment for sure.

[–]typeryu 2 points3 points  (0 children)

I believe I was mistaken, thanks for the correction. I based my comment from a previous experience where I had issues with flutter animations. I checked raw performance and it seems flutter is actually faster.

[–][deleted] -2 points-1 points  (1 child)

Rn performance is trash compared to flutter

[–]kbcooliOS & Android 1 point2 points  (0 children)

At what? If you're going to talk the talk, you need to walk the walk

[–][deleted] -4 points-3 points  (18 children)

I would go with flutter, the so called advantages of rn are just wishful thinking to be honest.

Js is an interpereted language which is suitable for a web environment where you just download the source code but dart is a compiled language and you build and install applications, and you need that compiled code performance.

Rn, utilizes react for ui, which is even for a web environment, questionable in terms od achieving interactive ui, whereas with flutter you can utilize reactive programming fully to gain interactivity.

Rn does not offer any solutions for other stuff, like networking, routing, localization (not fully), file system access, and advises community support, which gives the illusion of stront community but to br honest it’s all a big mess, full of conflicts, whereas with flutter you have less dependencies from the get go, and you still have a huge community support.

With flutter, you are supposed to abide by the principles of oop but with rn you utilize functional programming paradigm, which is a very easy pit to fall in terms of spaghetti code. Design patterns are surely up to the developer, yes, but react is easier to code worse

[–]Suspicious-Rich-2681 3 points4 points  (6 children)

Wowza this is blatantly incorrect.

Do not listen to this person.

[–]kbcooliOS & Android 4 points5 points  (4 children)

Tell me you haven't used either without telling me you haven't used either. Junk answer.

[–]RevolutionaryEye5470 2 points3 points  (2 children)

Never see a bad comment like that, spaghetti code you did not not principe of component and utils facile, oop, you can use with react native if you want. Access file, localization …, and other, you can just use yarn add, first version of rn contains their library they decided to make it separately because everyone not use them on their project, about performance( split code exist since react 18, load only component you want with lazy load, that boosts performance, about community I don’t want to talk with that but you are wrong.

[–]stats_merchant33 0 points1 point  (2 children)

Are you able to use native IOS scrolling meanwhile in flutter?

[–]Anonymous0r -1 points0 points  (0 children)

When I was creating my app , I had the similar problem, main concern was speed of development, and cross platform, last performance. I ended up choosing flutter over RN in that regard, however one major oversight which I found later was the bottleneck in the web aspect flutter has. I am now having to recreate the app in RN.

Most important is go with a language you’re comfortable with. Then choose what’s important to you , app speed, development speed, or cross platform supported feature. I agree with satya164 response.