Developers August 8, 2020

Flutter or React Native for mobile app development?

Danchuk

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. 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.

  2. 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!

  3. 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

  4. 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 :)

  5. 1

    Just finished my second production app in Flutter and switching right now to React Native, flutter is still a bit young for advanced stuff.
    It is pretty good for CRUD apps, easy to animate with it, easy to start with it, overall experience is good, still young though.
    P.S. If you hope to land a job as app developer you will have more opportunities using react native than flutter.

  6. 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.

  7. 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

  8. 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.

  9. 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

Recommended Posts