DEV Community

Randel Ramirez
Randel Ramirez

Posted on

Between Xamarin and ReactNative which one would be a better choice for creating Mobile Applications

I'm a developer and the tools or tech stack I'm comfortable consists of using C#, ASP.NET, SQL, Entity Framework, SignalR, JavaScript(Angular, React), and TypeScript.

I've already done several pet projects on Xamarin(mainly on forms as of now, but I'm thinking of working on iOS and Android as well.....) it's actually cool that I'm able to create mobile applications using C# with Visual Studio, however I'm intrigued with ReactNative specially moving forward as it seems that more developers are favoring it over Xamarin, so I would like to know your experience with either Xamarin or ReactNative and which one would you choose and why?

Top comments (5)

Collapse
 
sharpdog profile image
SharpDog

IMHO it's really a matter of style and preference. Xamarin is more 'old school' in that it is a heavy/robust structured framework and more of a defined/prejudiced means of accomplishing any given feature. This can be good or bad depending on your preference. Xamarin has a large pre-developed set of features that can be leveraged. Xamarin is also heavily OOP and not functional. While Functional is possible in Xamarin, it steers you towards OOP.

React/Native, Flutter, etc are more lightweight and flexible frameworks that are less defined/prejudiced. This gives you more freedom to be creative and also to shoot yourself in the foot (or feet). These frameworks are moving away from OOP and more towards functional programming. While OOP is possible in these frameworks, they steer you towards functional.

Personally, I'm using ReasonML with ReactNative for mobile development:

Here are some useful links that helped get me started:

blog.callstack.io/getting-started-...

blog.behrends.io/how-to-setup-reas...

github.com/reasonml-community/bs-r...

imaginarycloud.com/blog/reasonml-r...

reasonmlhub.com/exploring-reasonml...

reasonmlhub.com/exploring-reasonml...

Collapse
 
randelramirez profile image
Randel Ramirez

wow, thanks for the feedback and giving an analysis as well. I'll take note of your comments.

Collapse
 
dev_nope profile image
Vasile Stefirta πŸ‡²πŸ‡© ✈️ πŸ‡ΊπŸ‡Έ • Edited

I've previously used the Appcelerator platform to build iOS and Android apps, but then I switched to React Native and I can only say good things about it. The community really seems to grow in the past few years and you can easily find any sort of packages or solutions to any issues you may run into.

Here are some good resources I used to get started with React Native:

Packages:

App Icons + Splash Screens setup (that's always a tricky part so the links below def helped me):

Happy coding! πŸ‘¨β€πŸ’»πŸ‘

Collapse
 
niorad profile image
Antonio Radovcic

It depends on the project and your & your team's experience.

My personal take (also for other technical decisions):

The more unknowns in a project, the more I'd tend to pick the more mature/boring one.

Your team has significantly more experience with one method against the other? Pick that one.

The app is not doing anything fancy and you're the sole dev? Throw a coin πŸ™ƒ

The app has to do something which you never implemented before? Try to do a proof of concept in both, and use that experience to decide how to go forward.

Btw now you made me curious to try out Xamarin. I used a bit C# with Unity and really liked it. I may try to do a mobile app for devlids with it.

Collapse
 
theaccordance profile image
Joe Mainwaring

Pick the tech stack you'd feel comfortable maintaining through the life of the product