React Native on the Universal Windows Platform
blogs.windows.com
blogs.windows.com
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.
And the well-known performance and memory advantages, however small, are critical for mobile devices. I don't think Microsoft should commit long-term to C# on mobile just as both Apple and supposedly Google are migrating to Swift as the future of their platforms, for good reason.
My two cents.
Windows Phone is many things, and few of those things are good. But in terms of UI responsiveness and overall speed, it puts my android to shame and competes with my iPhone.
And the security story of unmanaged languages is perilously bad. I don't see how people justify it anymore.
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.
I'm sure at least some people think C++ is helpful as a hedge against this.
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.
If we're talking a 5% reduction in the net heap usage for a react native app at the cost of substantially more error prone code, is that really a win? Hell, make it 10%? These apps still readily fit in mobile hardware, and you wouldn't be using react native on a Pi or other more tightly resources embedded system.
I am just happy one person liked it. :)
1. C++ is the only high-level language that is vendor supported across Linux, OSX, iOS, Windows, Windows Phone, and Android. React Native is aiming for cross-platform, using a cross-platform non-proprietary language would seem to be a better match. Along the same lines, there is less risk of vendor lock-in with C++ than with C#
2. While raw performance may be less of an issue, with mobile lightweight devices where use is limited by how long the battery lasts - performance per watt becomes an issue. Having a higher performance language can result in using less power and thus a better user experience.
3. Modern C++14 is much better in terms of memory safety and ease of use. The main issue with C++14 vs C# is that C# has better libraries, not with intrinsic usability of the language.
4. The issues with code execution and data corruption are significantly mitigated by the fact that you are targeting basically a sandboxed application. In addition, it is interesting to note that most desktop Win32 applications that people use on a daily basis are probably written in C++, and they have far more permissions than a universal windows app.
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.
Agreed. React Native is turning into what a lot of us were hoping QT/QML would. But QT offers a very poor experience to both users and developers for mobile use, due to both license issues (making users download an additional binary scares most of them off) and to the uncanny valley caused by using non-native widgets. React Native has neither of these problems on mobile.
QT still rules the desktop, but it looks like only React Native offers hope for a true cross-platform GUI framework.
Who would have thought 2 years ago?
Source is here; https://code.launchpad.net/reactnative-ubuntu
> 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.
Now I'm excited to try this project out!
Seems like every project they publish is under a different account.
Is there a resource that compares React Native's functionalities across the platforms ( performance characteristics, behaviors, appearance, and so forth?)
You can somewhat easily rehost a Cordova app in Electron for desktop reach on Mac and Linux (and even Windows if you prefer Electron to the UWP for some reason).
There already are Xamarin Framework bindings for the Mac and you shouldn't have too hard of a time to use existing Gtk# resources to target Linux. Now that Xamarin Forms is true open source maybe someone will have more incentive to build a good XAML binding and Xamarin Forms implementation for Gtk# (or some other Linux UI toolkit for that matter).
tl;dr: Lots of options! Yay!
Looks like it evaluates the JS and creates XAML elements programmatically using C#.
> 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/) brings an intuitive, productive environment to author and debug React Native apps.