Need advice about which tool to choose?Ask the StackShare community!

React Native

33.6K
29.1K
+ 1
1.2K
Rust

5.8K
4.9K
+ 1
1.2K
Add tool

React Native vs Rust: What are the differences?

Introduction

React Native and Rust are two popular technologies used in web and software development. While React Native is a framework for building mobile applications, Rust is a systems programming language that focuses on safety, concurrency, and performance. Despite their differences, both technologies have their own unique features and use cases.

  1. Development Platform: React Native is primarily used for developing cross-platform mobile applications, allowing developers to write code once and deploy it on both iOS and Android platforms. On the other hand, Rust is more commonly used for system-level programming, such as building operating systems or low-level software components.

  2. Language Paradigm: React Native is based on JavaScript, a dynamic, interpreted language known for its flexibility and ease of use. This makes it a popular choice for web developers transitioning to mobile app development. Rust, on the other hand, is a statically typed language with a focus on memory safety and concurrency. It offers strong compile-time guarantees, preventing common bugs such as null pointer dereferences and data races.

  3. Performance and Efficiency: React Native relies on a bridge that connects JavaScript code with native components, which can introduce some overhead and affect performance compared to fully native apps. However, React Native offers a high level of productivity and allows for rapid iteration and development. Rust, on the other hand, is designed for performance-critical tasks, leveraging its low-level control over memory allocation and high-performance abstractions, making it suitable for building robust and efficient systems.

  4. Code Reusability: React Native promotes code reusability across different platforms by using a single codebase. This means that a significant portion of the code can be shared between iOS and Android apps, reducing development time and effort. In contrast, while Rust is a multi-platform language, code sharing and reusability are not its primary focus. Rust emphasizes writing efficient and safe code that can be easily understood and maintained across different systems.

  5. Ecosystem and Community: React Native benefits from a large and active community, providing developers with an extensive range of third-party libraries, tools, and resources. This allows developers to quickly find solutions to common problems and accelerate their development process. Rust, although newer compared to React Native, has been gaining popularity rapidly and also has a growing community. The Rust ecosystem focuses on safety and performance, featuring powerful libraries and tools for building reliable and efficient software.

  6. Learning Curve and Skill Set: React Native has a relatively lower learning curve, especially for developers familiar with JavaScript and web development. It allows web developers to leverage their existing skills and transition into mobile app development. Rust, on the other hand, has a steeper learning curve due to its focus on systems programming and memory safety. It requires developers to learn a new language and understand low-level concepts to write efficient and secure code.

In summary, React Native is a framework for building cross-platform mobile applications using JavaScript, promoting code reusability and rapid development. Rust, on the other hand, is a systems programming language emphasizing memory safety and concurrency, suitable for building high-performance software. Both technologies have their own unique features and use cases, catering to different development needs.

Advice on React Native and Rust
Nikhilesh Goyal
Senior Embedded Engineer at GreyOrange · | 5 upvotes · 496.1K views
Needs advice
on
FlutterFlutterReact NativeReact Native
and
UnityUnity

Hi Friends, I am new to #MobileAppDevelopment and I need to make a #CrossPlatformMobileApp. I want guidance regarding which tools should I use to build a mobile app. Main requirements: integrate Unity game engine and provide a platform for social chats.

Past experience - C++ and Python

I have tagged Flutter and React Native but if anything better than both please suggest them.

See more
Replies (3)
Sahil Singh
Product Manager at AutoVRse · | 10 upvotes · 451.1K views
Recommends
on
UnityUnity

Hey, If you are using Unity you are going to have to do the end to end development on Unity, you can directly build for android and iOS on Unity. I dont see how Flutter or React Native fit into this equation. Unity is a standalone engine. As for Social Chats, you could use Firebase or your own API and integrate that in Unity in C#

See more
Recommends
on
UnityUnity

I agree with Sahil. If Unity is a requirement, best way is to use just that to create your app.

If you really want, it should be possible to use Flutter and Unity together. Using Flutter Unity Widget. Although I wouldn't recommend it just yet. It's too early days.

If you do end up using it, I would be very interested in reading about your experiences.

See more
Mathieu Grenier
Recommends
on
UnityUnity

You can start by small steps with Flutter and after Unity. Flutter = best choice to build a small cross-platform mobile app. With or no flutter, use directly Unity. Y'll have complete control but it's harder for new mobile developers. Keep in mind, the requirement is Unity!

See more
Needs advice
on
ExpoExpoReact NativeReact Native
and
ReduxRedux
in

Hello guys, I am new here. So, if I posted without specific guidelines, please ignore.

Basically, I am an iOS developer and developing native apps for the last three years. Recently, I started learning React Native to develop apps for both platforms. If anyone out there knows any useful resources that will become a better react native developer.

#newbie

See more
Replies (1)
Javier Silva Ortíz
Senior Full Stack Developer at Aleph Engineering · | 6 upvotes · 309.4K views
Recommends
on
ReduxRedux

Well, the first resource I would recommend you is my upcoming book by Packt Publishing, "Professional React Native", but it's due late January next year :) . Now jokes aside (the book's real by the way :) ), the easiest way to build a iOS/Android/Web app with React Native is to do: npm install -g expo-cli expo init some-project cd some-project expo eject

You might have heard of Expo, but trust me, stay away from it. Expo highest value is that it's an already pre-configured 3 platforms environment, but if you don't eject then you're vendor-locked to what Expo has to offer in iOS and Android, which is very poor compared to going full React Native on these platforms, they can't even handle Google Sign In properly and by the way, even if your app is 10 lines of code your app size will be over 40 MB if you don't eject, yep it's that bad, plus the performance is regular and the loading times slow, not to mention that you're stuck with their build service which the free tier makes you wait for hours for a free build slot. It's important to note that when ejecting you don't lose the Web, you simply do expo start --web to start your dev environment and expo build:web to build a static website that you can serve with any web server. Regarding state management, don't bother with "lifting state up" philosophies mixed with Context API to manage your state, lifting state is a great pattern and helps your codebase, Context is great to avoid prop-drilling, but NEVER mix them to achieve app-wide state management, for that, simply go for Redux or MobX, the hype is all about Redux, but I consider MobX far better in many aspects. However, as you're getting new into this I would recommend you start with Redux AND PLEASE grab yourself npm install @manaflair/redux-batch so that you can batch updates and don't bring your app to a crawl. Forget that "connect HOC" thing with React-Redux, don't bother for a second with it, go with Hooks and useSelector and useDispatch and the likes, it will make your code SO much cleaner and smaller. Adopt clean and new Hooks philosophy, avoid writing class components as much as possible and write function components augmented with Hooks.

See more
Needs advice
on
JavaScriptJavaScriptPythonPython
and
RustRust

So, I've been working with all 3 languages JavaScript, Python and Rust, I know that all of these languages are important in their own domain but, I haven't took any of it to the point where i could say I'm a pro at any of these languages. I learned JS and Python out of my own excitement, I learned rust for some IoT based projects. just confused which one i should invest my time in first... that does have Job and freelance potential in market as well...

I am an undergraduate in computer science. (3rd Year)

See more
Replies (3)
Recommends
on
JavaScriptJavaScript

I would start focusing on Javascript because even working with Rust and Python, you're always going to encounter some Javascript for front-ends at least. It has: - more freelancing opportunities (starting to work short after a virus/crisis, that's gonna help) - can also do back-end if needed (I would personally avoid specializing in this since there's better languages for the back-end part) - hard to avoid. it's everywhere and not going away (well not yet)

Then, later, for back-end programming languages, Rust seems like your best bet. Its pros: - it's satisfying to work with (after the learning curve) - it's got potential to grow big in the next year (also with better paying jobs) - it's super versatile (you can do high-perf system stuff, graphics, ffi, as well as your classic api server) It comes with a few cons though: - it's harder to learn (expect to put in years) - the freelancing options are virtually non-existent (and I would expect them to stay limited, as rust is better for long-term software than prototypes)

See more
Recommends
on
JavaScriptJavaScript

I suggest you to go with JavaScript. From my perspective JavaScript is the language you should invest your time in. The community of javascript and lots of framework helps developer to build what they want to build in no time whether it a desktop, web, mobile based application or even you can use javascript as a backend as well. There are lot of frameworks you can start learning i suggest you to go with (react,vue) library both are easy to learn than angular which is a complete framework.

And if you want to go with python as a secondary tool then i suggest you to learn a python framework (Flask,Django).

See more
Moinul Moin
Recommends
on
JavaScriptJavaScript

go for javascript, brother.

See more
Needs advice
on
React NativeReact Native
and
Vue NativeVue Native

I'm a huge fan of Vue.js and I'm pretty comfortable with it. I need to build a mobile app for my company and I was now wondering whether I could make use of VueJS with Vue Native instead of switching to React. I know Vue Native builds on top of RN. My question is whether I'd have as much freedom with Vue Native over RN and whether you feel like Vue Native is "production ready" or not. Not sure of which shortcomings I may find using Vue Native... Thanks a lot!!!

See more
Replies (1)
Barry Hylton
Recommends
on
Vue NativeVue Native

Vue Native is definitely production-ready in my experience. I've used both, have apps built with both in production right now, and both are fine technologies. As far as I can recall, there's nothing in RN that you can't do in VN. Given that, I would say go with "the devil you know".

That said, the one downside of VN over RN is that there are a lot more people using RN last I checked, so there are likely more resources readily available.

See more
Needs advice
on
FlutterFlutter
and
React NativeReact Native

Hi, I'm a web dev and am using Electron for a desktop app. Now I have to develop a mobile app with the following features:

  • Posting/uploading files by users, private messaging between users, download files, moderation of the uploads, push notification of new posts.
  • Mods can ban users and delete files.
  • Share buttons from the library folder of the user phone.
  • When a user uploads a photo, a pencil tool for deleting staff on the pic.

Which tool is better for such a project?

Thanks in advance

See more
Replies (2)
Lee Dydo
Technology Development Manager at Outform · | 5 upvotes · 399.7K views
Recommends
on
React NativeReact Native

Given your experience in electron I think the shortest hop is going to be React Native. Especially since half of the requirements are server-side. Google is doing a pretty great job bringing up Flutter and the tooling is pretty great. For me however, dart seemed like quicksand and not everything is in its final home. React Native is mature, and considering my cursory analysis of your experience and the low complexity of this project, you've got quite a lot of room to grow into Javascript Land. Ultimately, my recommendation is always "play with both, see what you like, and get to know the documentation and the community." Keep your head on a swivel and set aside time to peek greener pastures, but spend most of your time delving deeply into what you're already doing.

But yeah, go with React Native first, get bored of it, learn what the shortcomings are through experience and then see if something else is really more attractive or just a new shiny.

See more
Varun Sharma
CTO at Nugen Computer & I.T. Services · | 5 upvotes · 399.7K views
Recommends
on
React NativeReact Native

Well, I will personally recommend to go for React Native as I have worked in both of them. React native has big community and it is easy to opt as compared to Flutter. There no doubt about the fact that Flutter is a great framework for developing both Android/IOS apps. However, you should have some experience to go for the same. Both will require prior knowledge as for React Native you have to go through Javascript first with which you are already familiar and for Flutter you need to go through Dart. So being familiar with Javascript you should go for React Native. You can go expo which has lot of inbuilt functionalities for the React Native developers.

See more
Needs advice
on
FlutterFlutterIonicIonic
and
React NativeReact Native

Hi, we are an early startup (with an iPOC prototype) but need to get started on our MVP, and our tech developers in India recommended a hybrid, and they use Ionic, then we spoke with a software company in the US and he recommended Flutter or React Native. Any advice or input for us on the differences between these? Our app will need Bluetooth GPS for "near me" and social media sharing reviews capability, and also link on the backend with businesses. Thanks in advance for any help you can give!

See more
Replies (6)
Ahmad Khan
Recommends
on
FlutterFlutter

I would never recommend you to go with Ionic, Because of the User experience it provides is subpar. Flutter is most promising, Can be easily used to develop great user experience in no time. React native is also good, but it's phasing out in my opinion, while Ionic has already phased out. Flutter also provides great developer experience, resulting in fast and productive developers. I would have to press hard to think of a CON about flutter when recommending it for your needs.

See more
Dario Alves
Arquiteto de Software at Senior sistemas · | 2 upvotes · 520.6K views
Recommends
on
React NativeReact Native

Maturity, Community, Facility, Libs React Native is the principal platform of mobile cross-platform development today, Flutter is it's a promise.

See more
Nicolas Kovacs
Recommends
on
FlutterFlutter

Even if React Native is older (I didn't say mature) you should go for Flutter, It's works really well and the developer experience is great (auto-completion, plugin etc). I spent years with React Native and now I am using Flutter and I don't regret It. Even if you have to learn a new language, It's pretty simple even more If you know some OOP, Java and Javascript ES6 syntax in some case. One other advantage is the facility to design app in Flutter, you have widgets for everything and you can adapt any design made by your designer. For example you can't make a simple custom box shadow with React-Native ...

See more
Recommends
on
FlutterFlutter

Flutter is built on DART which is written in GO. GO compiles to binary. Hence is faster than any java based framework. It provides superior performance and has a simplified UI process for designing apps.

See more
Recommends
on
IonicIonic
at

I don‘t have practical experience with flutter but between ionic and react native I‘d say both a perfectly viable options and we have used both for a number of production apps. We normally go with ionic on capacitor because we build a lot of pwa/web apps so we can use the same code for all. We don‘t use much of ionic elements, we do most styles on our own.

The comments that the user experience is bad I cannot agree with. A well designed and developed ionic apo can hardly be distinguished from a native app. But obviously that depends also on the usecase and type of app.

I hope this helps

See more
Kevin Lücke
Recommends
on
FlutterFlutter

It depends also on your team skills. Flutter is fast to learn, fast to develop with and the performance is much better in comparison to React. If your team is already highly skilled in React Native it could be the better option - if not Flutter is my 100% recommendation. We rapidly prototype and deliver MVPs with Flutter since two years.

See more
Decisions about React Native and Rust
Thuan Nguyen
FE Lead at SOLID ENGINEER · | 5 upvotes · 646.1K views
  • Javascripts is the most populated language in the world.
  • Easy to learn & deployed production
  • Fast development
  • Strong community
  • Completed Documents
  • Native performance with lower RAM used.
  • Easy to handle native issues by using native code like Java / Objective C
  • Powered by Facebook.
See more
Nick Skriabin

We built the first version of our app with RN and it turned out a mess in a while. A lot of bugs along with poor performance out of the box for a fairly large app. Many things, that native platform has, cannot be done with existing solutions for RN. For instance, large titles on iOS are not fully implemented in any of existing navigations libraries. Also there's painfully slow JSON bridge and many other small, yet annoying things. On the other hand Flutter became a really powerful and easy-to-use tool. A bit of a learning curve, of course, because of Dart, but it worth learning. Flutter offers TONS of built-in features, no JSON-bridge, AOT compilation for iOS.

See more
Roman Glushko
Machine Learning, Software Engineering and Life · | 3 upvotes · 370K views

I chose Golang as a language to write Tango because it's super easy to get started with. I also considered Rust, but learning curve of it is much higher than in Golang. I felt like I would need to spend an endless amount of time to even get the hello world app working in Rust. While easy to learn, Golang still shows good performance, multithreading out of the box and fun to implement.

I also could choose PHP and create a phar-based tool, but I was not sure that it would be a good choice as I want to scale to be able to process Gbs of access log data

See more
Aleksandr Filatov
Contract Software Engineer - Microsoft · | 2 upvotes · 414.1K views

I've done some Hybrid Mobile apps with both technologies Apache Cordova and React Native and described my experience in my blog.

In a few words, I would suggest to use each technology in accordance what what is your current code base and what do you want to achieve.

React Native is a great option if you need that extra edge in performance with multi-threading and native UI rendering. Or you already have a web app based on React which you want to port to mobile.

On the other hand, if you have an existing web application code and you want to reuse some or all, including the ability to use web third-party libraries, then Cordova is the best option.

See more
Manage your open source components, licenses, and vulnerabilities
Learn More
Pros of React Native
Pros of Rust
  • 214
    Learn once write everywhere
  • 174
    Cross platform
  • 169
    Javascript
  • 122
    Native ios components
  • 69
    Built by facebook
  • 66
    Easy to learn
  • 46
    Bridges me into ios development
  • 40
    It's just react
  • 39
    No compile
  • 36
    Declarative
  • 22
    Fast
  • 13
    Virtual Dom
  • 12
    Insanely fast develop / test cycle
  • 12
    Livereload
  • 11
    Great community
  • 9
    It is free and open source
  • 9
    Native android components
  • 9
    Easy setup
  • 9
    Backed by Facebook
  • 7
    Highly customizable
  • 7
    Scalable
  • 6
    Awesome
  • 6
    Everything component
  • 6
    Great errors
  • 6
    Win win solution of hybrid app
  • 5
    Not dependent on anything such as Angular
  • 5
    Simple
  • 4
    Awesome, easy starting from scratch
  • 4
    OTA update
  • 3
    As good as Native without any performance concerns
  • 3
    Easy to use
  • 2
    Many salary
  • 2
    Can be incrementally added to existing native apps
  • 2
    Hot reload
  • 2
    Over the air update (Flutter lacks)
  • 2
    'It's just react'
  • 2
    Web development meets Mobile development
  • 1
    Ngon
  • 145
    Guaranteed memory safety
  • 132
    Fast
  • 88
    Open source
  • 75
    Minimal runtime
  • 72
    Pattern matching
  • 63
    Type inference
  • 57
    Algebraic data types
  • 57
    Concurrent
  • 47
    Efficient C bindings
  • 43
    Practical
  • 37
    Best advances in languages in 20 years
  • 32
    Safe, fast, easy + friendly community
  • 30
    Fix for C/C++
  • 25
    Stablity
  • 24
    Zero-cost abstractions
  • 23
    Closures
  • 20
    Extensive compiler checks
  • 20
    Great community
  • 18
    Async/await
  • 18
    No NULL type
  • 15
    Completely cross platform: Windows, Linux, Android
  • 15
    No Garbage Collection
  • 14
    Great documentations
  • 14
    High-performance
  • 12
    Generics
  • 12
    Super fast
  • 12
    High performance
  • 11
    Safety no runtime crashes
  • 11
    Fearless concurrency
  • 11
    Compiler can generate Webassembly
  • 11
    Macros
  • 11
    Guaranteed thread data race safety
  • 10
    Helpful compiler
  • 9
    RLS provides great IDE support
  • 9
    Prevents data races
  • 9
    Easy Deployment
  • 8
    Real multithreading
  • 8
    Painless dependency management
  • 7
    Good package management
  • 5
    Support on Other Languages
  • 1
    Type System

Sign up to add or upvote prosMake informed product decisions

Cons of React Native
Cons of Rust
  • 23
    Javascript
  • 19
    Built by facebook
  • 12
    Cant use CSS
  • 4
    30 FPS Limit
  • 2
    Slow
  • 2
    Generate large apk even for a simple app
  • 2
    Some compenents not truly native
  • 28
    Hard to learn
  • 24
    Ownership learning curve
  • 12
    Unfriendly, verbose syntax
  • 4
    High size of builded executable
  • 4
    Many type operations make it difficult to follow
  • 4
    No jobs
  • 4
    Variable shadowing
  • 1
    Use it only for timeoass not in production

Sign up to add or upvote consMake informed product decisions

What is React Native?

React Native enables you to build world-class application experiences on native platforms using a consistent developer experience based on JavaScript and React. The focus of React Native is on developer efficiency across all the platforms you care about - learn once, write anywhere. Facebook uses React Native in multiple production apps and will continue investing in React Native.

What is Rust?

Rust is a systems programming language that combines strong compile-time correctness guarantees with fast performance. It improves upon the ideas of other systems languages like C++ by providing guaranteed memory safety (no crashes, no data races) and complete control over the lifecycle of memory.

Need advice about which tool to choose?Ask the StackShare community!

What companies use React Native?
What companies use Rust?
Manage your open source components, licenses, and vulnerabilities
Learn More

Sign up to get full access to all the companiesMake informed product decisions

What tools integrate with React Native?
What tools integrate with Rust?

Sign up to get full access to all the tool integrationsMake informed product decisions

Blog Posts

Nov 20 2019 at 3:38AM

OneSignal

PostgreSQLRedisRuby+8
9
4730
Jun 6 2019 at 5:11PM

AppSignal

RedisRubyKafka+9
15
1703
What are some alternatives to React Native and Rust?
Flutter
Flutter is a mobile app SDK to help developers and designers build modern mobile apps for iOS and Android.
Swift
Writing code is interactive and fun, the syntax is concise yet expressive, and apps run lightning-fast. Swift is ready for your next iOS and OS X project — or for addition into your current app — because Swift code works side-by-side with Objective-C.
Xamarin
Xamarin’s Mono-based products enable .NET developers to use their existing code, libraries and tools (including Visual Studio*), as well as skills in .NET and the C# programming language, to create mobile applications for the industry’s most widely-used mobile devices, including Android-based smartphones and tablets, iPhone, iPad and iPod Touch.
NativeScript
NativeScript enables developers to build native apps for iOS, Android and Windows Universal while sharing the application code across the platforms. When building the application UI, developers use our libraries, which abstract the differences between the native platforms.
React
Lots of people use React as the V in MVC. Since React makes no assumptions about the rest of your technology stack, it's easy to try it out on a small feature in an existing project.
See all alternatives