React Native doesn&#x27;t claim &quot;code once, deploy everywhere&quot;, and in fact embraces native APIs where appropriate.  As a reference, their slogan is &quot;learn once, write anywhere&quot;.  In other words, learn React Native, and write native apps wherever you want.  Indeed one of the opening talks about React Native at React Conf specifically mentions that React Native is a leaky abstraction, and embraces that by allowing multiple escape hatches so that the native APIs are always available.<p>Railing against React Native seems like railing against Unity3d, or saying that abstracting the common parts of mobile development (while leaving the non-common parts 100% available) is a bad thing.<p><i>By the &quot;right way&quot; I mean use every language for its intended purpose, you can&#x27;t build desktop apps in browsers</i><p>You can build desktop apps in browsers (ie emscripten).  Additionally, can you explain why a &quot;language&quot; (as compared to platform specific APIs) has any relevance to what can or can&#x27;t be built for a mobile device?  For JavaScript specifically, if Apple didn&#x27;t think that it was a language for building applications on iOS, then why would they ever have release JavascriptCore (which is what React Native uses)?