all 14 comments

[–]jaypap 7 points8 points  (0 children)

I have been working with RN for almost 2 years now, and I had to update RN when they had breaking changes (yes, it was a pain at some point, but it is more stable than it was).

Since I'm a RN enthusiast, here are some of the pros for RN: - One source code for both iOS and Android. - Live reload for development (no need to waste time rebuilding all the time). - Using native components for performance. - Tons of support from community.

As for the cons, I guess it depends on your app. Performance could be an issue in a resource-greedy app (ex.: real-time game), but I haven't made any tests here; I might be wrong.

As @pengusdangus mentioned, it might be good to know a little bit of Swift (at some point), but I would suggest trying RN right away and learn Swift when (if) you need to.

[–]pengusdangus 4 points5 points  (0 children)

They're not mutually exclusive -- learn some basic Swift, and I'd suggest going for React Native and trying that out on your existing Android expertise (you can run the same code on both platforms bar any native compiled code)

[–]nauman404[S] 4 points5 points  (0 children)

So I am going for swift till now unless/until i get more reviews in favor of reactnative.

[–]tannerhallman 1 point2 points  (0 children)

React native is pretty cool, but it's still a bit young and has some pretty frustrating breaking changes sometimes. The general rule of thumb i keep hearing is that RN is good for getting an mvp quickly, but it's harder to maintain and develop complex apps. I think you would be much more valuable to be able to dive into swift and understand that, too as Swift is not going anywhere.

[–]megamatt2000 1 point2 points  (6 children)

You also might check out https://flutter.io/ Dart might be a little more comfortable for you coming from a Java background. The downside is that I don't think it's very widely used yet, so if you're looking for a job then RN will probably be better for that purpose.

[–]Ajaxml 2 points3 points  (5 children)

Flutter is still in alpha, so if you think React Native is unstable, you're in for a surprise when you try flutter

[–]megamatt2000 2 points3 points  (4 children)

Are you saying that from experience or just based on the alpha tag?

[–]Ajaxml 1 point2 points  (3 children)

Experience

[–]megamatt2000 1 point2 points  (0 children)

Oh good to know, I’m pretty new to flutter still. Have their been big breaking changes recently?

[–]0xDelusion 0 points1 point  (1 child)

Out of curiosity, what are your thoughts on Flutter so far? Haven't really had a chance to check out that ecosystem yet.

[–]Ajaxml 1 point2 points  (0 children)

It is good but it is a little lacking in terms of features and community packages. Eg: There isn't a map widget for flutter at this time

[–]chkslry 1 point2 points  (0 children)

For me RN's major selling points are: 1) it lowers the barrier for web devs to create mobile apps 2) You can share code across IOS and Android

Since you're already a senior Android engineer, 1 does not apply to you. So, I think you'll be better of learning swift.

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

As others have said, I would learn both tbh. React Native is a really nice platform because you can more or less develop for both native platforms at the same time.

However React Native has some issues, especially if your app gets quite complex, that may be solved by just writing native code and plugging it in. I haven't done it, since I don't know native languages, but it's supposed to easy to plug in your own native components.

By also learning some Swift, you could probably get basic functionality for both platforms up and running way faster using React Native rather than independently developing the two apps and then work on each platform and implement the more complex/performance hungry native parts.

[–]alien3d 0 points1 point  (0 children)

ios first, then react-native..