What is React Native and what are its top alternatives?
Top Alternatives to React Native
- 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. ...
- Electron
With Electron, creating a desktop application for your company or idea is easy. Initially developed for GitHub's Atom editor, Electron has since been used to create applications by companies like Microsoft, Facebook, Slack, and Docker. The Electron framework lets you write cross-platform desktop applications using JavaScript, HTML and CSS. It is based on io.js and Chromium and is used in the Atom editor. ...
- React Navigation
Start quickly with built-in navigators that deliver a seamless out-of-the box experience. Navigation views that deliver 60fps animations, and utilize native components to deliver a great look and feel. ...
- Ionic
Free and open source, Ionic offers a library of mobile and desktop-optimized HTML, CSS and JS components for building highly interactive apps. Use with Angular, React, Vue, or plain JavaScript. ...
React Native alternatives & related posts
- Hot Reload138
- Cross platform115
- Performance105
- Backed by Google88
- Compiled into Native Code72
- Fast Development59
- Open Source58
- Fast Prototyping53
- Single Codebase49
- Expressive and Flexible UI48
- Reactive Programming36
- Material Design34
- Widget-based29
- Dart29
- Target to Fuchsia26
- IOS + Android20
- Easy to learn16
- Great CLI Support16
- Tooling14
- You can use it as mobile, web, Server development14
- Have built-in Material theme13
- Debugging quickly13
- Community12
- Target to Android12
- Good docs & sample code12
- Support by multiple IDE: Android Studio, VS Code, XCode11
- Easy Testing Support10
- Written by Dart, which is easy to read code10
- Have built-in Cupertino theme9
- Real platform free framework of the future9
- Target to iOS9
- Easy to Unit Test8
- Easy to Widget Test8
- Need to learn Dart29
- Lack of community support10
- No 3D Graphics Engine Support10
- Graphics programming8
- Lack of friendly documentation6
- Lack of promotion2
- Https://iphtechnologies.com/difference-between-flutter1
related Flutter posts
I am starting to become a full-stack developer, by choosing and learning .NET Core for API Development, Angular CLI / React for UI Development, MongoDB for database, as it a NoSQL DB and Flutter / React Native for Mobile App Development. Using Postman, Markdown and Visual Studio Code for development.
The only two programming languages I know are Python and Dart, I fall in love with Dart when I learned about the type safeness, ease of refactoring, and the help of the IDE. I have an idea for an app, a simple app, but I need SEO and server rendering, and I also want it to be available on all platforms. I can't use Flutter or Dart anymore because of that. I have been searching and looks like there is no way to avoid learning HTML and CSS for this. I want to use Supabase as BASS, at the moment I think that I have two options if I want to learn the least amount of things because of my lack of time available:
Quasar Framework: They claim that I can do all the things I need, but I have to use JavaScript, and I am going to have all those bugs with a type-safe programming language avoidable. I guess I can use TypeScript?, but that means learning both, and I am not sure if I will be able to use 100% Typescript. Besides Vue.js, Node.js, etc.
Blazor and .NET: There is MAUI with razor bindings in .Net now, and also a Blazor server. And as far as I can see, the transition from Dart to C# will be easy. I guess that I have to learn some Javascript here and there, but I have to less things I guess, am I wrong? But Blazor is a new technology, Vue is widely used.
Swift
- Ios257
- Elegant179
- Not Objective-C125
- Backed by apple107
- Type inference92
- Generics60
- Playgrounds54
- Semicolon free49
- OSX38
- Tuples offer compound variables35
- Easy to learn24
- Clean Syntax23
- Open Source22
- Beautiful Code20
- Functional20
- Linux11
- Dynamic11
- Protocol-oriented programming10
- Promotes safe, readable code10
- Explicit optionals8
- No S-l-o-w JVM8
- Storyboard designer7
- Type safety5
- Super addicting language, great people, open, elegant5
- Optionals5
- Best UI concept5
- Feels like a better C++4
- Powerful4
- Swift is faster than Objective-C4
- Its friendly4
- Fail-safe4
- Highly Readable codes4
- Faster and looks better4
- Easy to Maintain3
- Easy to learn and work3
- Much more fun3
- Protocol extensions3
- Native3
- Its fun and damn fast3
- Strong Type safety3
- Protocol oriented programming2
- Esay2
- MacOS2
- Type Safe2
- All Cons C# and Java Swift Already has2
- Protocol as type2
- Objec1
- Can interface with C easily1
- Numbers with underbar1
- Optional chain1
- Runs Python 8 times faster1
- Actually don't have to own a mac1
- Free from Memory Leak1
- Swift is easier to understand for non-iOS developers.1
- Great for Multi-Threaded Programming1
- Must own a mac5
- Memory leaks are not uncommon2
- Very irritatingly picky about things that’s1
- Complicated process for exporting modules1
- Its classes compile to roughly 300 lines of assembly1
- Is a lot more effort than lua to make simple functions1
- Overly complex options makes it easy to create bad code0
related Swift posts
Hi Community! Trust everyone is keeping safe. I am exploring the idea of building a #Neobank (App) with end-to-end banking capabilities. In the process of exploring this space, I have come across multiple Apps (N26, Revolut, Monese, etc) and explored their stacks in detail. The confusion remains to be the Backend Tech to be used?
What would you go with considering all of the languages such as Node.js Java Rails Python are suggested by some person or the other. As a general trend, I have noticed the usage of Node with React on the front or Node with a combination of Kotlin and Swift. Please suggest what would be the right approach!
Excerpts from how we developed (and subsequently open sourced) Uber's cross-platform mobile architecture framework, RIBs , going from Objective-C to Swift in the process for iOS: https://github.com/uber/RIBs
Uber’s new application architecture (RIBs) extensively uses protocols to keep its various components decoupled and testable. We used this architecture for the first time in our new rider application and moved our primary language from Objective-C to Swift. Since Swift is a very static language, unit testing became problematic. Dynamic languages have good frameworks to build test mocks, stubs, or stand-ins by dynamically creating or modifying existing concrete classes.
Needless to say, we were not very excited about the additional complexity of manually writing and maintaining mock implementations for each of our thousands of protocols.
The information required to generate mock classes already exists in the Swift protocol. For Uber’s use case, we set out to create tooling that would let engineers automatically generate test mocks for any protocol they wanted by simply annotating them.
The iOS codebase for our rider application alone incorporates around 1,500 of these generated mocks. Without our code generation tool, all of these would have to be written and maintained by hand, which would have made testing much more time-intensive. Auto-generated mocks have contributed a lot to the unit test coverage that we have today.
We built these code generation tools ourselves for a number of reasons, including that there weren’t many open source tools available at the time we started our effort. Today, there are some great open source tools to generate resource accessors, like SwiftGen. And Sourcery can help you with generic code generation needs:
https://eng.uber.com/code-generation/ https://eng.uber.com/driver-app-ribs-architecture/
(GitHub : https://github.com/uber/RIBs )
- Power of c# on mobile devices121
- Native performance81
- Native apps with native ui controls79
- No javascript - truely compiled code73
- Sharing more than 90% of code over all platforms67
- Ability to leverage visual studio45
- Mvvm pattern44
- Many great c# libraries44
- Amazing support36
- Powerful platform for .net developers34
- GUI Native look and Feel19
- Nuget package manager16
- Free12
- Backed by Microsoft9
- Enables code reuse on server9
- Faster Development8
- Use of third-party .NET libraries7
- It's free since Apr 20167
- Best performance than other cross-platform7
- Easy Debug and Trace7
- Open Source7
- Mac IDE (Xamarin Studio)6
- Xamarin.forms is the best, it's amazing6
- That just work for every scenario5
- C# mult paradigm language5
- Power of C#, no javascript, visual studio5
- Great docs4
- Compatible to develop Hybrid apps4
- Microsoft stack4
- Microsoft backed4
- Well Designed3
- Small learning curve for Mobile developers3
- Ionic2
- Ability to leverage legacy C and C++2
- Build times9
- Visual Studio5
- Price4
- Complexity3
- Scalability3
- Nuget2
- Maturity2
- Build Tools2
- Support2
- Maturidade0
- Performance0
related Xamarin posts
Finding the most effective dev stack for a solo developer. Over the past year, I've been looking at many tech stacks that would be 'best' for me, as a solo, indie, developer to deliver a desktop app (Windows & Mac) plus mobile - iOS mainly. Initially, Xamarin started to stand-out. Using .NET Core as the run-time, Xamarin as the native API provider and Xamarin Forms for the UI seemed to solve all issues. But, the cracks soon started to appear. Xamarin Forms is mobile only; the Windows incarnation is different. There is no Mac UI solution (you have to code it natively in Mac OS Storyboard. I was also worried how Xamarin Forms , if I was to use it, was going to cope, in future, with Apple's new SwiftUI and Google's new Fuchsia.
This plethora of techs for the UI-layer made me reach for the safer waters of using Web-techs for the UI. Lovely! Consistency everywhere (well, mostly). But that consistency evaporates when platform issues are addressed. There are so many web frameworks!
But, I made a simple decision. It's just me...I am clever, but there is no army of coders here. And I have big plans for a business app. How could just 1 developer go-on to deploy a decent app to Windows, iPhone, iPad & Mac OS? I remembered earlier days when I've used Microsoft's ASP.NET to scaffold - generate - loads of Code for a web-app that I needed for several charities that I worked with. What 'generators' exist that do a lot of the platform-specific rubbish, allow the necessary customisation of such platform integration and provide a decent UI?
I've placed my colours to the Quasar Framework mast. Oh dear, that means Electron desktop apps doesn't it? Well, Ive had enough of loads of Developers saying that "the menus won't look native" or "it uses too much RAM" and so on. I've been using non-native UI-wrapped apps for ages - the date picker in Outlook on iOS is way better than the native date-picker and I'd been using it for years without getting hot under the collar about it. Developers do get so hung-up on things that busy Users hardly notice; don't you think?. As to the RAM usage issue; that's a bit true. But Users only really notice when an app uses so much RAM that the machine starts to page-out. Electron contributes towards that horizon but does not cause it. My Users will be business-users after all. Somewhat decent machines.
Looking forward to all that lovely Vue.js around my TypeScript and all those really, really, b e a u t I f u l UI controls of Quasar Framework . Still not sure that 1 dev can deliver all that... but I'm up for trying...
I want to learn cross-platform application frameworks like React Native, Flutter, Xamarin, or Ionic, and I'm a web developer. I can learn other programming languages as well. But I'm confused about what to learn, which framework is best, and which framework will last long as the application grows further into complexity.
- Access to the entire native api75
- Support for native ios and android libraries47
- Support for javascript libraries46
- Angular 2.0 support46
- Native ux and performance44
- Typescript support37
- Backed up by google and telerik35
- Css support29
- Cross-platform declarative ui and code27
- Fully open source under apache 2.0 license25
- Vuejs support11
- 60fps performance9
- Powerful data visualization with native UI6
- VS Code integration5
- Angular, typescript and javascript support5
- No need for Mac to build iOS apps in Telerik Platform5
- Extended CLI support4
- Cloud builds as part of Telerik PLatform4
- Truly Object-Oriented with Typescript4
- On-device debugging4
- Extensibility4
- Access to entire native api3
- Live reload3
- Easiest of all other frameworks3
- Easy to learn3
- Backed by google3
- 0 day support for new OS updates3
- Publishing modules to NPM3
- Vue.js support out of the box2
- VueJS support2
- Svelte support2
- Powerfull mobile services as part of Telerik Platform2
- Native ui with angular2
- Vue support2
- Playground1
- Hot Reload1
- HMR via webpack1
- Very small app size1
- Write once, use anywhere1
- Easy to use, support for almost all npm packages1
- Rich ecosystem1
- Compile to Apple/Google Stores via CloudCompiler1
- Has CSS ;-)1
- It works with Angular1
- Code reuse with your website1
- Dart0
- Lack of promotion5
- Slower Performance compared to competitors1
related NativeScript posts
Hello,
We're just brainstorming for the moment and we have a few questions.
We have an idea for an app that we want to develop, here are the prerequisites:
1) cross-platform (iOS, Android, and website);
2) as easy to maintain as possible / well documented / widely used;
3) Visual Studio Code and Copilot compatible;
4) Text to speech;
5) Speech recognition;
6) Running in background (screen off with TTS and speech recognition);
7) could be using TypeScript;
8) Monetized through ad and in-App payment for premium version;
9) Display on lock screen (Android only I guess)
So what would you recommend?
I've been trying to review the options available, and I've considered:
NativeScript
React Native
Flutter
Any other?
Thanks in advance for your help, and I'm open to any comments.
So, i am preparing to adopt NativeScript.
For years my hybrid projects used Apache Cordova.
"Let's avoid to maintain two teams and double the deliver velocity".
It was good for a few years, we had those september issues, (i.e. apple broke some backward compatibility) , but for the last years, things seems to be losing the grip faster.
Last breaking changes, for instance, seems to have a workaround, however that growing feeling that simple things can not rely on so fragile webviews keeps growing faster and faster.
I've tested nativescript not only on it's "helloworld", but also on how do they respond on issues.
I got tweed support. I opened an github issue and got answers on less than 10 hours (yes i did it on another timezone and very close to a weekend). I saw the faulty docs get corrected in two days.
The bad news is i only can adopt nativescript on newer projects, since there is no budget to revamp the current solutions.
The good news is i can keep coding on Vue.js , without vou router, but that's ok. I've already exchanged vanilla html for real native app with background magic enabled, the router can be easily reproduced.
- Components819
- Virtual dom668
- Performance576
- Simplicity503
- Composable442
- Data flow185
- Declarative166
- Isn't an mvc framework127
- Reactive updates118
- Explicit app state114
- JSX48
- Learn once, write everywhere27
- Easy to Use22
- Uni-directional data flow21
- Works great with Flux Architecture17
- Great perfomance11
- Javascript10
- Built by Facebook9
- TypeScript support7
- Speed6
- Scalable5
- Feels like the 90s5
- Easy to start5
- Hooks5
- Excellent Documentation5
- Props5
- Server Side Rendering5
- Functional5
- Easy as Lego5
- Closer to standard JavaScript and HTML than others5
- Awesome5
- Cross-platform5
- Start simple4
- Sdfsdfsdf4
- Allows creating single page applications4
- Strong Community4
- Super easy4
- Server side views4
- Fancy third party tools4
- Scales super well4
- Beautiful and Neat Component Management3
- Just the View of MVC3
- Simple, easy to reason about and makes you productive3
- Fast evolving3
- SSR3
- Great migration pathway for older systems3
- Rich ecosystem3
- Simple3
- Has functional components3
- Every decision architecture wise makes sense3
- Has arrow functions3
- Very gentle learning curve3
- Split your UI into components with one true state2
- Fragments2
- Permissively-licensed2
- HTML-like2
- Image upload2
- Recharts2
- Sharable2
- React hooks1
- Requires discipline to keep architecture organized40
- No predefined way to structure your app29
- Need to be familiar with lots of third party packages28
- JSX13
- Not enterprise friendly10
- One-way binding only6
- State consistency with backend neglected3
- Bad Documentation3
- Error boundary is needed2
- Paradigms change too fast2
related React posts
I am starting to become a full-stack developer, by choosing and learning .NET Core for API Development, Angular CLI / React for UI Development, MongoDB for database, as it a NoSQL DB and Flutter / React Native for Mobile App Development. Using Postman, Markdown and Visual Studio Code for development.
I picked up an idea to develop and it was no brainer I had to go with React for the frontend. I was faced with challenges when it came to what component framework to use. I had worked extensively with Material-UI but I needed something different that would offer me wider range of well customized components (I became pretty slow at styling). I brought in Evergreen after several sampling and reads online but again, after several prototype development against Evergreen—since I was using TypeScript and I had to import custom Type, it felt exhaustive. After I validated Evergreen with the designs of the idea I was developing, I also noticed I might have to do a lot of styling. I later stumbled on Material Kit, the one specifically made for React . It was promising with beautifully crafted components, most of which fits into the designs pages I had on ground.
A major problem of Material Kit for me is it isn't written in TypeScript and there isn't any plans to support its TypeScript version. I rolled up my sleeve and started converting their components to TypeScript and if you'll ask me, I am still on it.
In summary, I used the Create React App with TypeScript support and I am spending some time converting Material Kit to TypeScript before I start developing against it. All of these components are going to be hosted on Bit.
If you feel I am crazy or I have gotten something wrong, I'll be willing to listen to your opinion. Also, if you want to have a share of whatever TypeScript version of Material Kit I end up coming up with, let me know.
- Easy to make rich cross platform desktop applications68
- Open source52
- Great looking apps such as Slack and Visual Studio Code13
- Because it's cross platform7
- Use Node.js in the Main Process3
- Uses a lot of memory18
- User experience never as good as a native app8
- No proper documentation4
- Does not native4
- Each app needs to install a new chromium + nodejs1
- Wrong reference for dom inspection1
related Electron posts
The Slack desktop app was originally written us the MacGap framework, which used Apple’s WebView to host web content inside of a native app frame. As this approach continued to present product limitations, Slack decided to migrate the desktop app to Electron. Electron is a platform that combines the rendering engine from Chromium and the Node.js runtime and module system. The desktop app is written as a modern ES6 + async/await React application.
For the desktop app, Slack takes a hybrid approach, wherein some of the assets ship as part of the app, but most of their assets and code are loaded remotely.
Slack's new desktop application was launched for macOS. It was built using Electron for a faster, frameless look with a host of background improvements for a superior Slack experience. Instead of adopting a complete-in-box approach taken by other apps, Slack prefers a hybrid approach where some of the assets are loaded as part of the app, while others are made available remotely. Slack's original desktop app was written using the MacGap v1 framework using WebView to host web content within the native app frame. But it was difficult to upgrade with new features only available to Apple's WKWebView and moving to this view called for a total application rewrite.
Electron brings together Chromium's rendering engine with the Node.js runtime and module system. The new desktop app is now based on an ES6 + async/await React application is currently being moved gradually to TypeScript. Electron functions on Chromium's multi-process model, with each Slack team signed into a separate process and memory space. It also helps prevent remote content to directly access desktop features using a feature called WebView Element which creates a fresh Chromium renderer process and assigns rendering of content for its hosting renderer. Additional security can be ensured by preventing Node.js modules from leaking into the API surface and watching out for APIs with file paths. Communication between processes on Electron is carried out via electron-remote, a pared-down, zippy version of Electron's remote module, which makes implementing the web apps UI much easier.
React Navigation
- Easy to use1
related React Navigation posts
Ionic
- Allows for rapid prototyping248
- Hybrid mobile228
- It's angularjs208
- Free186
- It's javascript, html, and css179
- Ui and theming109
- Great designs78
- Mv* pattern74
- Reuse frontend devs on mobile71
- Extensibility65
- Great community31
- Open source29
- Responsive design23
- Good cli21
- So easy to use14
- Beautifully designed13
- Angularjs-based13
- Widgets12
- Allows for rapid prototyping, hybrid mobile11
- Typescript11
- Quick prototyping, amazing community10
- Easy setup10
- Angular2 support8
- Fast, easy, free7
- Because of the productivity and easy for development7
- Base on angular7
- So much thought behind what developers actually need7
- Super fast, their dev team is amazingly passionate6
- Easy to use6
- It's Angular6
- UI is awesome4
- Hot deploy4
- Material design support using theme3
- Amazing support3
- It's the future3
- Angular3
- Allow for rapid prototyping3
- Easy setup, development and testing3
- Ionic creator3
- User Friendly2
- It's angular js2
- Complete package2
- Simple & Fast2
- Fastest growing mobile app framework2
- Best Support and Community2
- Material Design By Default2
- Cross platform2
- Documentation2
- Because I can use my existing web devloper skills2
- Removes 300ms delay in mobile browsers2
- Responsive1
- Native access1
- Typescript support1
- Ionic conect codeigniter1
- Fast Prototyping1
- All Trending Stack1
- Not suitable for high performance or UI intensive apps20
- Not meant for game development15
- Not a native app2
related Ionic posts
I want to learn cross-platform application frameworks like React Native, Flutter, Xamarin, or Ionic, and I'm a web developer. I can learn other programming languages as well. But I'm confused about what to learn, which framework is best, and which framework will last long as the application grows further into complexity.
Greetings!
I have been searching lately for frameworks to build mobile apps.
We are trying to make something like a quiz app as a way for customers to contact us. I considered Ionic and React Native because we use JavaScript most of the time in websites, e.g., Vue.js/Nuxt.js. But Flutter seems a decent choice as well, especially since you can use Android/iOS-like components. We are looking for something that works in the long term, something that's time and cost-effective, especially when paired with backend services like Firebase or a GraphQL server. I would like to know your opinions and recommendations. Thank you!