top | item 18032582

ReactXP – A library for building cross-platform apps

176 points| pestkranker | 7 years ago |microsoft.github.io | reply

109 comments

order
[+] tspike|7 years ago|reply
Can we please stop trying to Javascriptify everything? The cross-platform thing has been tried again and again and again, and always runs into the same pitfalls: poor mimicry of native standards, inefficiency, debugging difficulty because of abstraction layer built on abstraction layer, enabling developers with poor understanding of the underlying platform to make an absolute mess of an app for others to maintain later on, and so on.
[+] supernovae|7 years ago|reply
I disagree entirely... I hate how an app for everything means vendor lock-in. Developers should embrace web standards and come together on making apps/tools that don't suck. I think having to write for android, ios, osx, windows, chromeos and linux sucks worse..
[+] robbick|7 years ago|reply
It may come up against the same pitfalls again and again but it has produced some of the most popular desktop + mobile apps out there because it consistently has some of the best benefits (large community, standards driven approach, lots of developers who know the language)
[+] CharlesW|7 years ago|reply
Apps like VSCode show it can be done well. And using JavaScript for doesn't necessarily preclude a native UX (see: React Native).
[+] qwerty456127|7 years ago|reply
> Can we please stop trying to Javascriptify everything?

Good news is they have invented a better programming language called ReasonML for React.

[+] namuol|7 years ago|reply
Can we please stop gatekeeping our industry and embrace tools that lower barriers?

But seriously, if you're concerned about the quality of software, build better tools that guide new developers into best practices. Remove needless abstractions, replace others, and optimize the rest.

[+] mythz|7 years ago|reply
With the issues I've had with React Native, I'm keeping my eye on Flutter, great dev experience backed by a well resourced team, hope to see its ecosystem catch up.

A couple of projects to watch out for:

[1]: https://feather-apps.com/

[2]: https://github.com/google/flutter-desktop-embedding

[+] rickdg|7 years ago|reply
Google project dependant on another Google project. Which one will go puff first after the people involved get their promotion, Dart or Flutter?
[+] sjroot|7 years ago|reply
I'd love to hear more about how this differentiates from existing alternatives, namely Proton Native[1] and the NodeJS bindings to libui[2]. I am specifically interested to see how/if/when Microsoft will support Linux and macOS, as the aforementioned solutions already do.

[1] https://proton-native.js.org/#/

[2] https://github.com/parro-it/libui-node

[+] icc97|7 years ago|reply
Yes, it will be cross platform, it's all part of the move of Office to React, see this whole Twitter thread [0] from Sean Larkin:

> And here's ReactXP which is baked in to Skype (consumer) to make it possible to ship cross plat and single code base native applications with consistent UI

[0]: https://twitter.com/TheLarkInn/status/1006857447364063232

[+] fredsanford|7 years ago|reply
Anyone know which definition of lightweight is in effect here? :)

I see Atom called lightweight all the time. I remember when my PC had a 5MEG HDD and exactly 640k of RAM, so...

I'm curious what amount of resources (disk, runtime memory etc) is used for something like a small CRUD app (think simple phonebook or CD library)

If you know the answer for proton native, please post that too!

[+] laurent123456|7 years ago|reply
For Android, iOS and Windows 10, they build the app using React Native so it's quite lightweight. For Linux and macOS, at the moment you need Electron so it's heavier.
[+] tssva|7 years ago|reply
I don't see the point to mentioning the specs of your old PC. My first computer had 4k and a tape drive does that mean software for your PC was bloated?
[+] d--b|7 years ago|reply
I’d be more interested in knowing if someone had ported the ideas behind react in a cross platform language, rather than shipping a JavaScript engine with all your apps. Or maybe there should a JavaScript virtual machine in the OS itself.
[+] pavlov|7 years ago|reply
There is a fast JavaScript VM included in Apple's iOS + macOS (JavaScriptCore/Nitro) as well as Windows (Chakra), and they come with a public API.
[+] frostymarvelous|7 years ago|reply
I think flutter fills that space. Apart from lacking proper background task support, it's a good offering.

As a very adopter of react, flutter tickles me the same way.

[+] true_religion|7 years ago|reply
Javascript is implemented on every major platform. And I do not really see download size as an issue. Many people play games, and the textures used for even a simple RPG take up more space than a javascript engine.

If people are willing to download that much for an entertainment product, then it should be no surprise they are willing to put up with javascript in their work and personal productivity apps.

[+] Touche|7 years ago|reply
The ideas behind react predate react by decades, so yes, people have...
[+] deathtrader666|7 years ago|reply
ReasonML can build for the web as well as native. ReasonReact is slowly gaining steam.
[+] floatingsmoke|7 years ago|reply
I think ReactXP is not a visionary project but Microsoft's approach to take advantage of javascript developers and make them able to build mobile apps for Windows phones beside indispensable platforms(Android, iOS).
[+] blinkingled|7 years ago|reply
> web, iOS, Android, and Windows.

So cross platform minus Linux then?

[+] laurent123456|7 years ago|reply
It's from 2016.
[+] alluro2|7 years ago|reply
And latest release a year ago. Bamboozled on HN again :)
[+] bufferoverflow|7 years ago|reply
Seriously, Microsoft? From your own websites:

Xamarin: Deliver native Android, iOS, and Windows apps with a single shared .NET code base.

ReactXP: Share most of your code between the web, iOS, Android, and Windows.

[+] labourcurious|7 years ago|reply
From https://microsoft.github.io/reactxp/docs/faq

How does ReactXP differ from Xamarin?

Xamarin is a cross-platform solution that allows developers to create apps on iOS, Android and Windows Phone using a single code base. Xamarin apps are written in C# and XAML, allowing .NET developers to leverage their skills and experience. Xamarin apps can be more efficient than React Native apps, which are limited by JavaScript performance and the overhead of the React Native bridge. Xamarin was acquired by Microsoft in early 2016 and is supported by a dedicated team of engineers. It offers a comprehensive development solution including tools for coding, debugging, performance analysis, builds, automated testing, and distribution.

ReactXP, unlike Xamarin, provides a way to create mobile apps and web apps using the same source base. ReactXP (like React and React Native) allow experienced web developers to make use of their existing skills and knowledge. ReactXP was developed by the Skype team at Microsoft in support of their development needs. ReactXP builds upon the work of Facebook and the broader React open source community.

Both Xamarin and ReactXP are great solutions, but they solve somewhat different problems.

[+] afarrell|7 years ago|reply
What is surprising about this?

Microsoft wants people who would otherwise only have written iOS and Android apps to also write Windows apps.

[+] pjmlp|7 years ago|reply
They learn from Google's Flutter and PWAs advocacy.
[+] joobus|7 years ago|reply
Hey Microsoft, when are you going to integrate Xamarin and React Native??? You are obviously fans of react, and it would be nice to have one native language (C#) for writing integration code to react native apps.
[+] edoceo|7 years ago|reply
From the article: ""XP means X-Platform Share most of your code between the web, iOS, Android, and Windows.""

So, not exactly cross-platform.

[+] untog|7 years ago|reply
It works across multiple platforms, so it is cros-platform. Perhaps the term would be platform-universal or something?
[+] dec0dedab0de|7 years ago|reply
It's a fair use of the term, and the kind of thing I would expect from old Microsoft. Maybe they'll add support for mac, linux, bsd, etc later.
[+] conradk|7 years ago|reply
Then again, different platforms have different sets of hardware features, so sharing 100% of the code is usually not possible or desirable if you want to make the most of each platform.
[+] qwerty456127|7 years ago|reply
> Share most of your code between the web, iOS, Android, and Windows

How is it better than React and React Native if it still is web+mobile+Windows and doesn't offer Linux and macOS support? Also doesn't the fact React is by Facebook and ReactXP is by Microsoft and introduces Windows support look suspicious like if they were building an incompatible version of React like they've done with Java in the past?

[+] alphaomegacode|7 years ago|reply
Looked at the code in their components section and is it safe to say that we need to use Typescript to use this?
[+] k__|7 years ago|reply
JS interfaces with TS rather nicely.
[+] th3byrdm4n|7 years ago|reply
I'm sure this was in the works well before Safari/iOS 11 implemented the majority of the PWA standard, but can someone help me understand what the target market is for this in 2018?

We just built a ground-up PWA and users LOVE it (Android/iOS, tablet/phone/PC).

Why complicate and slow your programming + production software down by trying to XP?

[+] anticensor|7 years ago|reply
Name clash with ReactOS, reimplementation of Windows.
[+] franga2000|7 years ago|reply
What a surprise that a supposedly "cross-platform" solution from Microsoft does not support any of the competing platforms (macOS, Linux...). /s Smells of EEE...
[+] acidity|7 years ago|reply
Newbie question but will this help me also write desktop apps?
[+] alluro2|7 years ago|reply
That name harkened back to era of Internet Explorer 6 and evoked painful related JS/CSS development memories even before realizing it's Microsoft's project :D