W
W
Wylaroren2021-07-24 08:08:36
React Native
Wylaroren, 2021-07-24 08:08:36

Which of the five operating systems (Windows, Linux, macOS, Android, iOS) support React Native and Flutter as of summer 2021?

Compiling a detailed report on the support of five popular operating systems (Windows, Linux, macOS, iOS, Android) with React Native and Flutter technologies is not the amount of work that you can ask to do for free, so I did most of the work myself, and I will only ask you to add or correct if there is something wrong with the information below.

## Important points ###
Single source code for all distributions for each OS

these OSes, and if you want to use another one, then you need to rewrite the code and / or change the project build settings. Here, we are talking about thedistributions for different operating systems of the same application were assembled on the basis of a single source code (project) .

By the way, this particular moment remains the least disclosed for me so far, so I will ask you to write how things are with building the same project for different operating systems.

I know that some modules will have to be written natively for each OS, however, most of the code should be the same for all OSes.

### Running a built application on a specific OS rather than developing it on a specific OS

Often when I enter queries like "React Native windows", the search engine thinks that I'm interested in writing code in a Windows environment, and not running an application with a Windows environment. Here we are talking about ** launching the assembled application on each of the listed OS **, and on which OS you need to develop at the same time - this is a secondary organizational moment.

### "Support"

In this topic, the term "support" can be used at least in the following meanings:

1 The ability to collect application distributions for a specific OS
2 Periodic correction of errors in the code and the addition of new functionality code

Using the term in both senses can result in a tautology like "React Native is no longer supported". Therefore, in the first case, I will use the term "Porting"

## Actually, the report
### React Native
#### iOS, Android

Ported out of the box. As far as I know, initially React Native supported building distributions for both of these OSes. Information on how to set up a development environment and build a distribution... is available on the official React Native website.

#### Windows

Ported. Most likely, Microsoft did it.

Information on how to deploy a development environment for Windows and build an application for this OS can be found at microsoft.github.io. The Expo framework seems to either not have the ability to build Windows distributions out of the box, or the ability is not documented ( discussion ).

I did not see that it was unequivocally said that a project configured under the side for Windows could build for Android, iOS and other systems.

#### macOS

[Ported and maintained]( https://github.com/microsoft/react-native-macos ).
The repository is owned by Microsoft. Documentation - [in the same place as for Windows]( https://microsoft.github.io/react-native-windows/d... ).

Again, I haven't seen it clearly stated that setting up a project to build an app on macOS doesn't take away the ability to build it on other OSes.

####Linux.

Officially stated that React Native Ubuntu is not supported:

React Native Desktop - A project aiming to bring React Native to the Desktop with Qt's QML. A fork of React Native Ubuntu, which is no longer maintained.
Source


However, according to the [official React Native Desktop repository]( https://github.com/status-im/react-native-desktop-qt ), it is also no longer maintained, as can be seen from the lack of pull requests for over a year.

Proton Native developers have also stated that they don't have time to support the project on [their official repository]( https://github.com/kusti8/proton-native ).

Bottom line: React Native has been ported to Linux, but all related projects are no longer supported, and therefore, as React and Linux develop, sooner or later the time will come when running React-native applications on Linux will become impossible.

#### React Native output

Within the framework of the information above, we can say that the application written in React Native can be built and run without problems on all operating systems except Linux.

### Flutter

Unlike React Native, Flutter is ported to other operating systems by its own developer - Google.
According to the official website, Flutter 2.2 supports the following platforms:


Platform	Version	Channels
Android	API 19 & above	All
iOS	iOS 9 & above	All
Linux	Debian 10 & above	All
macOS	El Capitan & above	All
Web	Chrome 84 & above	All
Web	Firefox 72.0 & above	All
Web	Safari on El Capitan & above	All
Web	Edge 1.2.0 & above	All
Windows	Windows 7 & above	All

Source


It clearly states which platforms are not supported:

Platform	Version
Android	Android SDK 15 & below
iOS	iOS 8 & below
Windows	Windows Vista & below
Windows	Any 32-bit platform
macOS	Yosemite & below


It seems that all five major operating systems are supported, but the ability to build for all of these systems, and not for some one, is still a concern.

Answer the question

In order to leave comments, you need to log in

1 answer(s)
P
Petr Vasiliev, 2021-07-25
@danial72

A vanilla application without plugins can be built for all these wasps. No problems (not considering the setup).
Then it all depends on the plugins that you decide to use.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question