9
16 Comments

Flutter or React Native for mobile app development?

Hi fellow indiehackers!

For the longest time I wanted to learn app development and I finally have considerable free time to put into learning. I come mostly from a web developer background and I wanted to know in regards to app development which framework/language do you consider "best". Of course this is probably mostly opinion-based but if anyone made the transition from React Native to Flutter or vice versa I would also love to hear which framework felt better?

It seems like react native being the older framework has a bigger community than Flutter and also you can use javascript and CSS where as in Flutter you need to use the Dart programming language. Although it seems like Google has some big plans for Dart and is backed pretty strongly which is a great plus for me as a big Google fan.

Would love to hear some opinions or insights from mobile app developers.

What do you use to develop mobile applications?
  1. React Native
  2. Flutter
  3. Other
Vote
  1. 1

    Great topic, Dan. It is really helpful to Flutter developers. We have tried to write something like that and compare Flutter and React Native: https://linkupst.com/blog/react-native-vs-flutter-is-there-a-winner-in-the-app-development-competition

  2. 1

    I've used every cross platform framework you can think of. Nativescript, Cordova, React-Native etc.

    Flutter is in a league of its own. Tutorials are first-class, documentation v. readable, package ecosystem is mature. My favourite thing? Tooling. Because of the nature of the Dart compiler (especially now that sound null-safety is available), when you make a change, you know what the side effects will be.

    The transferrable skills of being a web developer aren't really your JavaScript skillz, but rather your ability to think. Don't let a new language put you off.

    I know this post is a bit old, which way did you go in the end?

    1. 2

      I went with Flutter in the end. Couldn't be happier :) I might post one of my first apps in this forum when I complete it, it may take a while since my schedule is a bit tight these past few months.

  3. 1

    Strongly recommend React Native. React is an important reusable skill, useful for web programming. Much larger talent pool for when you want to delegate out. Google has a long history of suddenly canning products and projects too. React has a long lifecycle to go.

  4. 1

    Built Android Apps and also web, backend apps in the cloud.
    I prefer Flutter for its long vision and capability in its framework.

    They are doing solid work in Android, iOS space. Windows and Mac support launched as a preview. Web is in beta, I believe. Even if there is a learning curve and Dart is like Java(verbose). I believe this leads to a larger value for devs, businesses in a few years.

    Flutter FTW!

  5. 1

    I’ve used both React Native and Nativescript (with Angular). Both are good. I looked at Dart tutorials and looked horrible to me reminded me of being back coding java which is a nightmare. If you come from a web background, react native and nativescript will both be easier

  6. 1

    I have come from web development background and had the same question about a year ago. I started out learning Dart and the Flutter framework and launched this app - https://growboxapp.io in about one month. (note: good learning curve)

    From my experience, I definitely would recommend Flutter, given that React Native has a Javascript bridge / thread that affects the performance & Flutter has a possibility to ship not only iOS and Android platforms but also to web, MacOS etc from the same codebase.

    Regarding React native performance, have a read through their docs - https://reactnative.dev/docs/performance#what-you-need-to-know-about-frames.

    Quoting from the article - For example, if you were to call this.setState on the root component of a complex application and it resulted in re-rendering computationally expensive component subtrees, it's conceivable that this might take 200ms and result in 12 frames being dropped. Any animations controlled by JavaScript would appear to freeze during that time. If anything takes longer than 100ms, the user will feel it

    I would say, making "good quality & performant" React Native applications would need quite an experienced developer.

    Regarding the Flutter community - Yes it's way less than React Native at the moment but it also gives you an opportunity for open source contributions while you're at it. Other than that, recently, I built a music player app on Flutter with the help of the community, amazing documentation & open source packages. So I think Flutter has already come a long way and is growing rapidly as well.

    Flutter brings in a lot of opportunities and will bring more possibilities. I'd definitely recommend to give it a go :)

  7. 1

    I developed in RN and Flutter. Both are great. But if you are considering app development from a web background, start with native (swift for iOS, Kotlin/Java for Android). Knowing how native development works for each platform helps you to produce better app.
    Flutter is still new, it's harder to find answer to your problem or great libraries from community. React Native is more mature and more features.

  8. 1

    I'm currently developing an app in flutter. My first prototype was in React but got really frustrated with navigation and animated transitions so I decided to switch to flutter.

    If you only plan to build a native app, I guess you can choose whatever you want. But if like me you want to use the same codebase for a native and a web app, flutter is your only option (though the web part is still in beta). Afaik, React native code will be different from a pure web React code, so you'll have to code two different apps.

    Dart is fairly easy to learn if you already know js, and overall the syntax of flutter is very similar to React: declarative syntax, hierarchy of components, stateless/stateful components, state management in stateful widget, or with inherited components, or redux, etc.

    1. 1

      React native web is actually quite good and maintained. But you're right regarding transitions and navigation.
      https://github.com/necolas/react-native-web

  9. 1

    I chose Flutter. I am a beginner but it seems to work pretty well. @SrineeshFlutter_io has made some Flutter templates. You should check them out. 👍

    1. 1

      Thank you for the shout-out.

  10. 1

    I'm not a big React guy myself, I've always preferred Vue, and thus haven't tried React Native.

    I've been getting more into Flutter and I really enjoy writing code in Dart! That being said I'm a total newbie in mobile dev too, so I can't speak too much about which I'd recommend

    1. 1

      Out of curiosity, how's Dart/Flutter, in the eyes of a Vue dev? I've had to approach React.js for a specific project, and still I don't believe it's so unnecessarily complicated compared to Vue (BTW I'm not trying to start yet another religion war on JS frameworks 😉).

      1. 2

        IMO Dart isn't comparable to Vue or React in that sense. But if you're familiar with JS/node that's much closer.

        On the Flutter side it takes some getting used to as everything is handled by widgets so it looks like:

        [@override](/override)
          Widget build(BuildContext context) {
            return Scaffold(
              appBar: AppBar(
                title: Text('Swiper'),
              ),
              body: Swiper(
                itemCount: posts.length,
                index: initialIndex ?? 0,
                onIndexChanged: (value) {
                  CachedNetworkImage(imageUrl: posts[value + 1].url);
                },
                itemBuilder: (BuildContext context, int index) {
                  return Hero(
                      tag: posts[index].id,
                      child: PhotoView(
                        imageProvider: CachedNetworkImageProvider(posts[index].url),
                      ));
                },
              ),
            );
          }
        
        1. 1

          Coming from a web background this syntax just looks horrible to me. I’m sure once I knew it, it would be no big deal but I don’t think it would be quick for me to pick up knowing myself

  11. 1

    This comment was deleted a year ago.

Trending on Indie Hackers
How I grew a side project to 100k Unique Visitors in 7 days with 0 audience 49 comments Competing with Product Hunt: a month later 33 comments Why do you hate marketing? 29 comments My Top 20 Free Tools That I Use Everyday as an Indie Hacker 18 comments $15k revenues in <4 months as a solopreneur 14 comments Use Your Product 13 comments