
React Native on the Universal Windows Platform - outside1234
https://blogs.windows.com/buildingapps/2016/04/13/react-native-on-the-universal-windows-platform/
======
outside1234
I am on the team at Microsoft that helped bring UWP to React Native. If there
are questions, feel free to AMA.

PS. Many thanks to the Facebook team for building a great platform in React
Native and their critical help in helping us bring Windows to the platform.

~~~
Aleman360
Why does this generate C# instead of C++?

~~~
KirinDave
Because it's 2016 and the notion of pinning to C++ is sort of antiquated. C++
can deliver better performance in some cases, but it also brings about a great
deal more risk of security issues involving arbitrary code execution and data
corruption.

You have to have VERY tight performance requirements to make C++ worth the
risk it entails, in my opinion. If the only thing standing between you and a
code injection exploit is developer discipline and best practices, then you're
in a strictly worse place than managed code.

~~~
drzaiusapelord
This is such a concise and informed comment. Why has it been voted down to
being barely dim on my screen? These are good arguments. Please reply to stuff
like this instead of knee-jerk downvoting.

~~~
V-2
Agreed. I would actually be curious to read some counterarguments. Alas, noone
has offered any

~~~
KirinDave
I think the community has a prevailing opionion that C# is part of a UWP lock-
in and they're concerned about that.

I'm sure at least some people think C++ is helpful as a hedge against this.

~~~
pjc50
Surely _writing to the Windows Platform API_ is where the lock-in is, not the
choice of language?

~~~
KirinDave
¯\\_(ツ)_/¯

But that argument revolves around the growing importance of the Microsoft
software store. Its actually an argument between ISVs and Microsoft about how
much control MS can have in software distribution and security.

------
TheAceOfHearts
This is a huge game changer. We have OS X support with React Native Desktop
[0], so that means only Linux support is missing!

I've wondered why we haven't seen a React Native Qt, React Native Gtk+, or
React Native Elementary yet. But I guess those communities just aren't very
interested in what JS people are up to.

[0] [https://github.com/ptmt/react-native-
desktop](https://github.com/ptmt/react-native-desktop)

~~~
thibauts
The react-native-desktop author is working on it [1].

[1] [https://github.com/ptmt/react-native-
desktop/issues/59](https://github.com/ptmt/react-native-desktop/issues/59)

~~~
potomushto
Thanks, I'm working on it full-time. If you are an everyday Linux user
(especially not Ubuntu) and willing to test and/or answer to some questions
please reach me out on unknownliveid@hotmail.com.

------
plexchat
I hate to be a naysayer because this is great work and all, but frankly,
managing all these platforms is going to be a nightmare. In a traditional
engine, the code for each platform is embedded at the lowest level of
abstraction. That is the way it works for iOS and android at the moment, but
adding new platform support via extensions will make the code harder to manage
and reason about. I don't want a separate extension for OSX, Windows, and
Linux. I want all the code about, say, filesystem handling to be in a single
place (in neatly separated platform specific files). This applies to
networking code, rendering, input, etc. I know at the bottom of the article
there is hope of integrating it with the original project, but given that we
are starting literally on the opposite end of the spectrum, I'm worried we
will never reach this hypothetical nirvana. The original react native team
needs to prioritize getting other platforms in the original codebase, and I
may be mistaken, but I have not yet observed this, and so have some cause to
worry.

------
brentvatne
Also see: [https://ericroz.wordpress.com/2016/04/11/f8-app-on-
windows-1...](https://ericroz.wordpress.com/2016/04/11/f8-app-on-
windows-10-mobile/)

> Excluding all the work on core and third party module parity, and store
> preparation, there was certainly less than 1 week of 1 developers time
> dedicated to platform customization and style tweaks in JavaScript.

This is huge! Fantastic work everyone.

------
mrspeaker
Wow - great news! We were launching our relatively complex app iOS only, but
had some downtime and decided to see how the Android implementation fared: it
worked really well (much better than I expected) and hasn't taken much effort
to have something that feels really nice.

Now I'm excited to try this project out!

------
RussianCow
For those interested, the GitHub repo is here:
[https://github.com/ReactWindows/react-
native](https://github.com/ReactWindows/react-native)

~~~
Ezhik
How many organizations does Microsoft have on GitHub, I wonder?

Seems like every project they publish is under a different account.

~~~
WorldMaker
They built a meta-tracking site at
[http://microsoft.github.io/](http://microsoft.github.io/) and it has a list
of Other GitHub orgs at the bottom of that page as well as the repository
README. Currently missing ReactWindows, but it's just a PR away to fix:
[https://github.com/Microsoft/microsoft.github.io](https://github.com/Microsoft/microsoft.github.io)

------
BHSPitMonkey
This was somewhat expected after Microsoft released a first-party React Native
plugin for their Visual Studio Code IDE a couple weeks ago:

[https://github.com/Microsoft/vscode-react-
native](https://github.com/Microsoft/vscode-react-native)

------
bryanrasmussen
I have to expect that a framework like this will not work exactly as well as
'True Native' (to coin a phrase), and and as there are now a number of
platforms it needs to work across that all functionality exposed by React
Native will not work equally well across all platforms.

Is there a resource that compares React Native's functionalities across the
platforms ( performance characteristics, behaviors, appearance, and so forth?)

------
hbcondo714
Cordova, Xamarin and React Native...oh my! Which one are you all going to
choose?

~~~
RussianCow
Well, Corvoda and Xamarin are only for mobile apps. If React Native begins
officially supporting desktop platforms, it'll be the only (popular) framework
of its kind.

~~~
bossmojoman
Xamarin does OSX apps as well, Not sure about Linux

~~~
pritambaral
Xamarin is Monodevelop (plus some mobile and Mac stuff). Apparently
monodevelop can be used to build apps for Linux using GTK#

------
daxfohl
Wait, so will the "jsx" files be HTML or XAML? If written in JS, where does C#
come in?

~~~
Aleman360
[https://github.com/ReactWindows/react-
native/blob/ReactWindo...](https://github.com/ReactWindows/react-
native/blob/ReactWindows/ReactWindows/Playground/index.windows.js)

Looks like it evaluates the JS and creates XAML elements programmatically
using C#.

------
jgnmello
Only works with Visual Studio 2015 Enterprise?

~~~
whatever_dude
It works on anything since it's just for platform support and unrelated to
tooling. But on the tooling side, they also have a companion extension for
(the free, multi-platform) Visual Studio Code. From the article:

> In addition to this work on the core framework support, Microsoft is also
> providing open source tools and services to help developers create React
> Native apps. The React Native extension for Visual Studio Code
> ([https://code.visualstudio.com/](https://code.visualstudio.com/)) brings an
> intuitive, productive environment to author and debug React Native apps.

~~~
jgnmello
So, I can build the repo with community? Because I found this statement
"Assuming you have Visual Studio 2015 Enterprise installed" at
[https://github.com/ReactWindows/react-
native/tree/ReactWindo...](https://github.com/ReactWindows/react-
native/tree/ReactWindows/ReactWindows)

~~~
jongalloway2
Fixed: [https://github.com/ReactWindows/react-
native/issues/345](https://github.com/ReactWindows/react-native/issues/345)

