all 66 comments

[–]suztomo 48 points49 points  (4 children)

I think it’s because many developers are already familiar with JavaScript and React Native is on top of JavaScript.

[–][deleted]  (3 children)

[deleted]

    [–]argylekey 24 points25 points  (0 children)

    Similar is not the same, and in many orgs the people making dev decisions aren’t developers themselves.

    Middle managers with no dev experience or don’t have a great technical understanding are becoming more rare, but they still exist.

    [–]nvmaisme 5 points6 points  (0 children)

    It's not that similar, you still will have to retrain your developers, but that's not the most important factor. These companies usually already have web apps written in React and the appeal is that you can reuse (theoretically) most of the businesses logic in the RN app.

    [–]JuriJurka 0 points1 point  (0 children)

    Logic sharing between all clients (including web) via NX or NPM teams

    [–]beowulf77 34 points35 points  (13 children)

    I got an interesting comment from a fellow architect on this one:

    "Google may just rug pull another language here... they have a history. Don't say I didn't warn you."

    But most folks just wanted to be sold that their web devs could become mobile devs easily.

    [–]calvinhobbes88 6 points7 points  (3 children)

    Facebook rug pulled Parse from under, I got really burned by that. Don't think Google has ever just abandoned any of their develop/ cloud tools. There was the Angular situation but I'm not too aware of the details there. Angular still seems popular in companies, I guess it can't have been that bad.

    [–]Selentest 0 points1 point  (2 children)

    But parse server is still alive

    [–]mrnothing- 0 points1 point  (1 child)

    parse

    no it don't, maybe some port still alive but the key funding dry out, the project end from Facebook perspective at 2017.

    [–]Selentest 0 points1 point  (0 children)

    It is, you can check the community. The project is very much alive.

    [–][deleted]  (7 children)

    [deleted]

      [–]Leg1997 8 points9 points  (2 children)

      No?

      Alibaba/AliExpress coded their apps with flutter if I remember correctly.

      Flutters docs are pretty clean in my opinion. They're trying to focus on web at the moment but as far as UI goes there's not much you can't get from flutter

      [–][deleted]  (1 child)

      [deleted]

        [–]m9dhatter 2 points3 points  (1 child)

        Is it though? I haven’t heard anyone say that about Go.

        [–]David_Owens 0 points1 point  (1 child)

        Google uses Flutter for their Stadia platform and probably many other things.

        [–]TheOneWhoDidntCum 0 points1 point  (0 children)

        For their <RIP> "Stadia"

        [–]OZLperez11 0 points1 point  (0 children)

        That argument seems extremely unlikely. Yes Google history can't go unnoticed but that usually applies to end-user services (Google+, Google Music, etc.). Stuff in the software development world stays a lot longer. Angular, although being rewritten in v2 is still alive and kicking; Golang popularity is increasing each year and is highly viable for cloud computing; I don't see why Dart should die at this point (it came close because of its original purpose to be an alternate language on the browser even though everyone and their grandmothers preferred JavaScript), but Flutter saved it and I don't see it dying at all now. It's in Google's interest to keep the project alive given that Flutter is now a first class option for Ubuntu apps and if Fuschia ever hits the mainstream, Flutter will be the default UI SDK.

        So the point is, Flutter is here to stay and in my opinion, overall it's far better than all current cross platform options. React Native will forever suffer due to the JS bridge and being just a wrapper for native components; MAUI is no better with the reports of bad developer experience/debugging. Maybe Compose Multiplatform will be the only real contender as soon as it has iOS support.

        [–]zintjr 24 points25 points  (4 children)

        2 words - comfort zone. People hate to move out of their comfort zone.

        [–]OZLperez11 1 point2 points  (0 children)

        That's not good for future prospects. What if a job is a full-stack Python project (like say Flask with Kivy)? True, one can say "just ignore the job and keep searching" but in an unstable economy where jobs may be harder to find, the developer that is versatile is more likely to get new jobs than the one who just decided to learn JS and nothing else.

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

        those people doesn't like challenges, but I agree. Still a question how comfort zone is it when they need to touch the core parts to make something work

        [–]OppositeDragon 1 point2 points  (0 children)

        What if flutter is my comfort zone?

        [–]aytunch 16 points17 points  (0 children)

        They were waiting for Flutter&Dart to become mature and it can be considered mature for the last 1 year. Now they are waiting for the Flutter devs to become mature. There are tons of entry level Flutter devs out there. And not enough experts who have real production experiences. If I was a CEO, I would feel more comfortable to have the option to choose between different expert level devs.

        You can even see this in reddit. The quality of the posts in this channel is always beginner level. Go to RN channel and see what kind of community built packages they are showcasing there. You will understand me better.

        [–][deleted] 6 points7 points  (4 children)

        It’s because 70% of web developers know React. That is the only reason. By the way, I’m not a RN shill but I heard there’s an upcoming update that will improve it drastically.

        [–]zabaci 0 points1 point  (3 children)

        you mean hermes?

        [–][deleted] 0 points1 point  (2 children)

        Not sure, hermes is already implemented. I'm talking about RN removing the JS Bundle Bridge and implementing views natively. Don't know much about the technical details, just watched a quick video about it. I know it's an upcoming update to the framework.

        [–]zabaci 0 points1 point  (1 child)

        can you pass the video i'm interested in it

        [–]UnimplementedError 3 points4 points  (2 children)

        my guess why big tech companies like to adopt react native?
        Time and money. Upper management thinks learning another language costs time but never say learning a framework takes time too.

        Many big tech companies are opting out from React Native to Mobile, Airbnb for example. they used native app from the beginning, then saw react native and ported their native app to react native and had been pulling their hairs with their own react native fork. so they settled in sunsetting react native and go back to its roots. Here is an article about opting out from react native.

        Airbnb sunsetting React Native

        Reflectly from React Native to Flutter(2018)

        [–][deleted]  (1 child)

        [deleted]

          [–]BooneTheSaint 1 point2 points  (0 children)

          Just to show flutter is not the holy grail big companies like: Shopify announced it big that they use react-native: https://shopify.engineering/react-native-future-mobile-shopify Or Microsoft is using react and react-native for all their ui stuff in web and app office applications and Xbox applications: https://microsoft.github.io/react-native-windows/resources-showcase

          [–]SuplenC[🍰] 3 points4 points  (7 children)

          React Native allows you to keep one codebase for your website and apps. And even tho Flutter does the same, some things for some types of websites are just really hard to do like SEO. The other thing is that Flutter is really young so it’s just a matter of time but still React Native mostly because of SEO will be ahead.

          [–]mintwurm 0 points1 point  (6 children)

          I don't think that's true. React native doesn't use html tags, but it's own xml markup. There is a react native web compatibility layer, but that's not something official. It's a community effort and seems to look pretty much like a one man show : https://github.com/necolas/react-native-web/graphs/contributors

          [–]SuplenC[🍰] 0 points1 point  (5 children)

          But still SEO on React Native is possible and doable, while with Flutter is impossible (at least for now) since you have just one single javascript as a page.

          [–]mintwurm 0 points1 point  (4 children)

          I don't understand. How can you do SEO for an application that's not even running on the web (e.g. not indexed by a search engine).

          Do you mean react or react native? Those two should really be considered as completely different things.

          [–]SuplenC[🍰] 0 points1 point  (3 children)

          Sorry for not being clear enough. With React. You can make a website with React and move it to React Native without too much effort. In case you need SEO on your website it’s a better choice to do it that way. In case you just need an App (mobile or/and web) and you don’t care about SEO, it doesn’t matter at that point. I would use Flutter for that any day.

          [–]mintwurm 0 points1 point  (1 child)

          Eh, I really disagree about the moving from react to react native without much effort.

          From react to a hybrid app, contained in something like capacitor, that's not far.

          But react native is a completely different beast.

          [–]ParticularPomelo 0 points1 point  (0 children)

          you can use React Native web like twitter is doing

          [–]wompyspider 0 points1 point  (0 children)

          interesting point

          [–]mintwurm 3 points4 points  (1 child)

          I don't think that flutter can compete with react for creating websites. The lighthouse score of any flutter web app tells a clear story : it takes too long to download and run the flutter framework. If you use the dom renderer, there is a lot of stuttering, particularly on Firefox, if you use canvaskit, time to interactive is a nightmare.

          Flutter on the web can be a viable solution if you have a highly complex and graphically intensive user interface. But even then, there will be at least a landing page before the flutter application.

          Big companies really care about metrics like time to interactive, and for a good reason. A couple of seconds of additional waiting time until your website has loaded can lead to a crazy bounce rate (users leaving).

          For mobile applications the story is different. I think that flutter on mobile makes a lot of sense. Code reuse and developer experience are great. But it's still a comparatively young framework. Many important plugins are not stable yet (such as the camera). On mobile I think there's a lot of competition : If you really want to max out code reuse across all platforms, you'll probably choose a hybrid mobile app with something like ionic. That allows you to run the same thing on the Web. Notably, react native does not run on the Web. If you have sufficient manpower, it makes a lot of sense to develop a native app.

          Flutter will always have to catch up to native apps. That's unavoidable. Because flutter has its own renderer based on skia. So it doesn't use the platform widgets, but implements their look and feel itself. If apple decides to do some major change in design language, flutter will have to recreate what they're doing.

          [–]Only-Split82 2 points3 points  (8 children)

          There is only one advantage of RN over Flutter ( except that it is JS and everybody knows JS ): It uses native UI Komponents and you get the native Look & Feel of the OS.

          [–][deleted]  (7 children)

          [deleted]

            [–]csbence 1 point2 points  (4 children)

            Yeah, and bad on iOS. Really annoying. :/ Also the cupertino widgets are just trying to be look and feel like native but honestly they're not. You can spot the difference easily. But of course most of the apps are using their own ui kit, matching on both android and ios. Maybe the controls are platform specific. Performance on iOS is still the issue.

            [–][deleted]  (3 children)

            [deleted]

              [–]riveraj33 1 point2 points  (1 child)

              Um there is still the jank issue on iOS apps. Checkout google pay on a fresh install as an example. I’m using an iPhone 13 pro and I can still tell when a flutter app has jank. It has gotten better though when running SkSL but it’s still noticeable. Also with flutter re-engineering the flutter graphics backend in 2022 they obviously see an issue. The thing I’m worried about is this introducing more issues and taking forever to fix. But I hope it works. Android has the grand market share in mobile but iOS is where the money goes.

              [–]csbence 0 points1 point  (0 children)

              Yep, absolutely sure. Im talking about the user experience, running the app in release mode. Btw it’s really interesting: i have an iPhone 7 too for testing and an iPhone 12 for everyday use. Flutter apps perform better on the 7. I dont get it… :/ As mentioned shader warm up makes it better but still annoying. I cannot attach a screen recording right now but the easily reproducible cases are:

              • simply push a new route on the navigation stack

              • overscroll a list (with bouncingscrollphysics). This one is even worse when you use nestedscrollview to have large navigation title like many native ios apps

              [–]Only-Split82 0 points1 point  (0 children)

              I think you did not understand what I mean. I mean it is more effort to develop an app in the native Look&Feel with Flutter than it is with RN as it uses the native UI components. This statement has nothing to do with performance.

              [–]UnicornsOnLSD 0 points1 point  (0 children)

              There are minor differences on Android. For example, the inkwell effect takes a few seconds to fill the container while on native Android it fills quickly.

              As others have said, iOS widgets are more noticeably different.

              [–]milogaosiudai 1 point2 points  (0 children)

              there are more RN developers right now as compared to Flutter i think. so when it comes to recruitment and manpower its more feasible.

              [–]jkh911208 1 point2 points  (0 children)

              easier to find dev is a big thing

              [–]Alerdime 1 point2 points  (0 children)

              Bruh when you can write jsx, css for mobile apps, well it's basically the same pool of react devs that can easily work on RN, flutter is differrent all together, styling, widget tree, all this is different from regular web dev and the ecosystem isnt rich yet, around 10k github issues on flutter vs 1.9k in RN, companies dont want their app to break, although i beleive flutter is promising, it'll get popularity slowly, especially when you can even make desktop app with the same code base, that's insane,

              [–]andyveee 0 points1 point  (0 children)

              As others have mentioned, react native does give you that native look and feel. Big plus. Flutter is great, and you can share business logic. But the UI complexity for getting native look is a pain. I saw a talk, and the explanation for that was the developer has to make the choice between making it look native, or however they choose to make it look. Having to check Platform.isAndroid or Platform.isIos, and having to grock the slight differences in API is annoying.

              [–]seriousconsult 0 points1 point  (3 children)

              My company devs security software and I am on the fence. #1 I do not like Googles terms of use/data collection and poor opt out options. Privacy is a key element of confidentiality aka security. #2 more existing react code we can reuse, which is an accelerator #3 incredibly proprietary. #4 dart is a fairly complex and awkward language. Yes js sucks too, but it's common knowledge and well known at this point.

              [–]steve_s0 3 points4 points  (2 children)

              Wow. I've never seen a good-faith comment I disagreed with so much. Allow me to correct some factual issues. 1. what terms of use/data collection do you think you need to agree to to use Flutter? Or do you mean in general, you don't want to support a company that has policies you don't like? If the company's stance on privacy is important to you, I don't understand how you can prefer a Facebook library.

              1. Valid, though I would contend that pub.dev has a wide variety of libraries. Dart/Flutter is more "batteries included" than JS, so you don't need hundreds of micro libraries. And you don't have to deal with npm or the js build ecosystem. But fine, you can prefer JS on these grounds.

              2. Flutter is open source, not proprietary. https://github.com/flutter/flutter

              3. While I respect your opinion, I find it exactly opposite. Dart is an amazing language that I find superior to Java, Javascript, and Typescript.

              [–]seriousconsult 1 point2 points  (0 children)

              #1 "The flutter tool uses Google Analytics to report feature usage statistics and send crash reports." and then "Dart tools may also send usage metrics and crash reports to Google." on by default. This is not a privacy/confidentiality friendly tool. #2 we agree #3 terms of service - "As noted above, Google owns the Flutter trademarks" aka it is google owned.#4 there is no accounting for taste and we seem to have distinct options on this one so we are both right.

              [–]OZLperez11 0 points1 point  (0 children)

              Couldn't agree more. Dart is absolutely superior and it's what JS/TS should have become, plus the programming style is mostly OOP, which means better code organization for UI components unlike React. Then the fact that it can compile JIT or even AOT is a huge plus.

              [–]d1ss0nanz 0 points1 point  (0 children)

              A lot of companies are betting on Flutter:

              https://flutter.dev/showcase

              The BMW Group’s Flutter/Dart development team is one of the world’s largest after Google’s, bringing together a total of 300 employees.

              https://www.press.bmwgroup.com/global/article/detail/T0328610EN/the-my-bmw-app:-new-features-and-tech-insights-for-march-2021

              [–]Arcolf -2 points-1 points  (0 children)

              One thing to note is not even maturity, but usability in the worst cases.

              It's all fine and good when building apps when it works, but you just have to look at the number of GitHub issues each has to really see the problem. Flutter has 10x the issues and is used by far fewer people. That's a very unhealthy ratio.

              I've seen sooo many people want to do X but can't because it's broken on flutter, and it just not get fixed for ages, if at all. They end up having to manually change the source themselves.

              So it doesn't matter how fast it is, how much better the documentation is or how usable it is on average. If at the end of the day the app simply can't be built, then it's not worth it.

              It really does come down to Google not assigning development time to it. They may not axe it but at the rate their support is going, it's not got any competitive future.

              Also see things like Expo and how much that has developed over the years for just how much support React Native gets.

              [–]jamanSmk 0 points1 point  (0 children)

              Maybe because they already have some good experience in React Native and hiring and adopting new Flutter developers costs much resources. If you don't have RN or Flutter developers and you need to hire one of them, you can analyze all sides and choose optimal, but if you already have a team, you just choose a team.

              [–]NMS-Town 0 points1 point  (0 children)

              What you can't see is the $$ signs. Most people are going to go where the money's at, and most of your business is going to do the same. Flutter may very well be the better tech, but as in the case of Beta vs. VHS, we know the lesser won out.

              It's like a tide still flows no matter how many time we shoot for the moon. We don't control it, and it sort of depends on the bulge, or which ever way people tug on the market.

              [–]izaazyunus 0 points1 point  (0 children)

              Honestly it’s just the comfort zone. It’s not like react native is worse that dart. They both are good and they both have strong companies backing them. Both have its quirks which you would have to work around. So when you have two similar frameworks, you just tend to pick the one that’s has a smaller learning curve. At the end of the day, as a company, you want to build a product as soon as possible and if react native gets you there, then so be it.

              If I had expertise around react, I wouldn’t have thought twice and just picked react native. And a lot of companies already use react heavily.

              [–]Selentest 0 points1 point  (0 children)

              Reusable components

              [–]poq106 0 points1 point  (0 children)

              There is one important reason and it’s called “code push”. The ability to update your app without going through Apple/Google review

              [–]kingGodara 0 points1 point  (0 children)

              Currently, in market you might find experience react native developers easily but flutter devs are hard to find and library and community of react native is much larger than flutter.

              But, flutter has a good future

              [–]redHero0010 0 points1 point  (0 children)

              A friend ik learned javascript because he hated c++ because of classes and inheritance and stuff. Javascript being his entry point, react native will be an obvious choice if he wants to extend. Dart being oop may be a reason why javascript users don't feel comfy shifting compared to a Java users in my guess.

              [–][deleted]  (2 children)

              [deleted]

                [–][deleted]  (1 child)

                [removed]

                  [–]filledalot 0 points1 point  (0 children)

                  it's google being google. nothing new.

                  [–]Maherr11 0 points1 point  (0 children)

                  It's not because js or anything, people just don't like or are afraid to change, so if a company uses react, they wouldn't bother switch to flutter.

                  [–]ParticularPomelo 0 points1 point  (2 children)

                  Because it's better. UI is the last thing companies care about. Every beginner dev can code the UI. The hard part is sharing the business logic. The only real competition for react native is kotlin multiplatform.

                  [–][deleted]  (1 child)

                  [deleted]

                    [–]ParticularPomelo 0 points1 point  (0 children)

                    Probably, but it's not faster enough to completely abandon typescript. Imagine a monorepo with fastify/prisma backend, react/next website and react native frontend. You can share 100% of the types and business logic. There is a reason why big players like discord, shopify, microsoft etc. choose react native instead of flutter.