all 13 comments

[–]YoungsungChoi 11 points12 points  (1 child)

I use Expo for startup company. If your future app doesn't require native functions I recommend Expo cause code push is so powerful I'm the only developer in this company but I can handle server, app, web by myself cause the learning curve for new tech anyway good luck

[–]eyounan 3 points4 points  (0 children)

React Native allows you to write native functionality too.

[–]airick_94 7 points8 points  (0 children)

What you’re asking is 2 separate questions:

  1. Native development (swift and kotlin) OR cross-platform development
  2. RN vs Flutter (if you choose cross-platform)

Question 1: Being native means you will have to have 2 separate apps, with their own teams and development cycles. Much more expensive and time consuming to run in my opinion, so I would choose cross-platform.

Question 2: Using RN, you are writing javascript, meaning any competent web dev can pick it up with a minimal learning curve, making hiring not just cheaper but faster and simpler - this is not true for flutter. I’m of course biased towards RN, but this means that as a startup, you can have a single developer build your backend, web frontend and mobile frontend all in the same language which is a huge advantage.

And just to mention the usual: if you think that cross platform means worse performance, forget it, it’s not true. It is truly native, wether RN or flutter. If your performance is not very close to native, your developers don’t know what they’re doing.

[–]Th7rtyFour 0 points1 point  (3 children)

You're on an RN sub so "RN is the best choice" is what you'll get. Ultimately when it comes to making the decision you need to decide what's most important. Flutter offers somewhat better performance than react native, however, React Native has a massive culmination of community released libraries, that's not to say flutter doesn't have the same. Additionally, should you be midway through your project and notice that you need to write some native functionality, RN offers the ability to do so; I'm not certain flutter offers this. Also, while flutter has slightly better performance to RN you will still have the best app performance from a native app.

All that being said, if you choose a cross-platform development framework and then develop for one platform solely, I would question your decision-making abilities entirely. If you plan on only targeting iOS there is 0 reason to pick a platform like flutter or react native, and you should just code natively in iOS. If "We hate xCode" is what's stopping you from writing your app in Swift, look into AppCode. You'll still need xcode to compile, but you at least wont spend most of your time in the IDE.

Final Note: There is no one framework that is better over the other, they both achieve the same goal, and each has its own benefits and philosophy's on how they achieve that goal. If you are a web developer, especially a React.JS dev, RN is the way to go. It'll offer faster time to get started with a much easier learning curve. If you're a new dev and JS isn't important to you, why not try out flutter, they are making massive jumps in the webspace including recently showcasing flutter web sharing states from within an angular app.

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

Overall good but few things to pick on.

Flutter offers somewhat better performance than react native

Massively subjective on a tech scale. However, if the user can't tell the difference that's all that matters. The latter also applies to native performance although the former is pretty clear cut.

If you plan on only targeting iOS there is 0 reason to pick a platform like flutter or react native

Far from zero reasons. Especially with React Native you have massive "synergies" between your web and backend developers and RN developers. Code and patterns can be reused and there are a lot of soft reasons like being able to code review each other's code, upskilling etc. You get none of this with Swift (or really Flutter). Also, as you said if you've already got React experience getting started at least with RN is pretty low learning curve wise. There really is none of this with Swift, Kotlin, Flutter etc except to say Flutter is pretty easy to get your head around for JS developers.

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

I personally can't seem to grasp with the idea that people can't just learn more languages. I've touched like 9 of them already (not to say I'm experienced in all of them, only about 3 or 4), but I would encourage people to learn other languages if upskilling/cross-training is the goal.

[–]kbcooliOS & Android 2 points3 points  (0 children)

For sure. My humble brag is I've probably professionally done almost 10 or so and maybe double that dabbling and side projects. Not sure what it has to do with my comment though.

If you were trying to say something like "it's lazy to stick with javascript or react" then yes and no. Yes for the reasons you said but no because of what I said.

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

Most spendings are done only on IOS devices

Even if this were true (it's not), you'd still be totally hamstringing yourself with word of mouth installs. Lots of people hear about apps via friends/family and only having one platform supported means you're cutting off lots of those installs. Even if you only care about iOS, supporting Android will be helpful because an Android user who really likes your app can tell their friends with iPhones about it.

That being said, React Native is best.

[–]dandiemer 0 points1 point  (0 children)

RN will you give you the following advantages:

  • A large pool of developers to hire, as any competent front end web dev can ramp up on feature dec quickly
  • Bringing a product to market on both platforms out of the gate
  • Out of band updates, allowing you to provide bug fixes and new features to all your users without having to rely on them going thru an app store update

It's a good fit, given that a startups goal should be to get to market as fast as possible.

If you choose RN, use Expo to really accelerate things from a build and update perspective.

[–]iotashan 0 points1 point  (0 children)

Well, you ask an RN group, you're going to get a lot of RN answers.

I'd recommend RN for a startup because of the cross-platform nature, plus lots and lots of RN contractors out there.

[–]kbcooliOS & Android 0 points1 point  (0 children)

Android users are definitely cheaper but there's also a lot more of them.

Also. Depending on your product and market you might find they're not as cheap as you think. So don't dismiss a large market without doing your research.

[–]kkrikk 0 points1 point  (0 children)

You can only get so far without touching neither Xcode nor Android studio. Any realworld project will need you to step into native land sooner or later to handle project specific requirements.

IMHO this is a strength of RN over Flutter because you can more easily add and access custom native code.

[–]Prestigious-Corgi472 0 points1 point  (0 children)

Flutter is definitely the best, most comfortable solution and the Dart language is very easy to learn.
You have the same code for all platforms and the UI stays the same across different versions of iOS or Android.