React Native is the most promising cross-platform UI toolkit I've thus far encountered. Congratulations to the team that built / launched it.
The reason I'm excited for it: Java promised write-once-run-anywhere, which means you are always serving the least common denominator. React Native promises learn-once-write-anywhere, which means a single team of engineers can realistically build high-quality apps using the target platform's UI paradigms.
WORA is pretty much a pipe dream, to different are the platforms and UI toolkits. One of the reasons why we heavily focus on enabling the same language(s) on multiple platforms while using the native UI toolkits with RoboVM.
Funnily enough it's a different matter for games, see Unity, UE4, libGDX, Cocos2D-x etc.
I think many people dismiss this recommendation right away nowadays, but here it goes:
Adobe Air comes pretty close to "WORA". For 2D games it goes almost without saying, but throw in the excellent Starling + Feathers framework and it is great for Apps too. A drawback is of course that you do not have native UI, but if you can get passed that it works really really well.
I evaluate cross platform technologies quite regularly and my opinion still is that Adobe Air is the best (just make sure you stay away from Flex ;) For everyone who gave up on Adobe Air some time ago I highly recommend to take another look. The Eco system did not stop to evolve at all and it provides a really good development environment.
I can see the appeal of Adobe Air and its ecosystem. I guess on mobile the only problem is binding to system services & ad providers. IIRC most of that is already covered by 3rd parties, but it's a bit involved to do it yourself.
Funny you mention Flex, still gives me the shivers, still used by a lot of enterprises around here. Pretty much on par with applets in terms of badness.
Hey.. actually I also just got the task to integrate an Ad provider in out game and made a little research. As far as I can see almost all big companies are providing Adobe Air SDKs for integration. For Example:
Yes.. as far as I can tell most of this bindings are covered by native extension of 3rd parties. Not always free (but not that expensive), so u have to buy an extension for a quality FacebookSDK integration for example. Still far cheaper than for example Xamarin.
But considering that you do not necessarily have any costs in developing Air (you get the compiler, and also good editors, for free) it is not that bad at all.
I also do not write native extensions myself, but at least you know there is the option in case u need to access some native library. But yes, in that case it is not really "write it once" anymore.
I've heard the term "write once, test everywhere!" But, since testing is actually a good thing, I think the spirit of the quote is "write once, fix glitches everywhere"
I am extremely hopeful about React. Even though I know Objective C and have apps in the app store, I'd use a cross-platform toolkit if I could get Android and Windows for free (or minimal effort). In my past experience it didn't really play out that way, but I am ever hopeful that this time it will really work.
React Native is the most promising cross-platform UI toolkit I've thus far encountered.
I guess a lot depends on what is meant by encountered but Xamarin would probably be a much more full featured cross platform UI toolkit than anything else out currently.
Time for the now, almost weekly, shoutout for http://reactiveui.net which is a functional reactive programming framework that uses the Reactive Extensions for .NET to create elegant, testable User Interfaces that run on any mobile or desktop platform.
Supports Xamarin.iOS, Xamarin.Android, Xamarin.Mac, WPF, Windows Forms, Windows Phone 8 and Windows Store apps. Check out "Writing Mobile Apps the Github Way by Paul Betts" @ https://www.youtube.com/watch?v=voa44OHBKME
It is the framework that powers GitHub for Windows and various other undisclosed projects ;-)
> React Native promises learn-once-write-anywhere, which means a single team of engineers can realistically build high-quality apps using the target platform's UI paradigms.
Since when is react providing any semblance of stability? Javascript is already bad enough of a moving target without an unstable api on top of it.
The reason I'm excited for it: Java promised write-once-run-anywhere, which means you are always serving the least common denominator. React Native promises learn-once-write-anywhere, which means a single team of engineers can realistically build high-quality apps using the target platform's UI paradigms.
Really exciting stuff!