Set of components to allow describing native widgets as React components and rendering them natively. It allows to wrap native APIs (imperative mutative) with declarative immutable APIs of React.
React Native replaces the DOM renderers with native renderers which allows people to render platform
<div>/<span>. Other than that, you get to use the exact same React API that you already know (even down to the event bubbling). You can bridge to things that are only available on the platform, and can in general make higher performance granular building blocks that cannot be accomplished with web technology (such as components that decode images more efficiently or with different concurrency models). As with everything, JSX is not required to take advantage of this - and you can use any of the compile-to-js languages that you use with React today.
- JS engine on a background thread
- Communicates via batched, async messaging protocol to a native (objc or android) server running on the main thread (basically create_view(), update_view(), destroy_view(), on_event() etc)
- Plug-in for React that speaks that protocol
- Tools to make cross-platform dev a bit easier (standard text component, cross-platform flexbox layout system)
- Designed to take advantage of native platform views, NOT be the next Java Swing
"A significant portion" of Facebook Groups app was built with React Native. More apps will be coming soon.
Facebook is working on support for Android and iPhone. Windows (phone/desktop) and OSX were not mentioned.
React Native doesn't imply a single codebase.
Write once run anywhere. Instead - learn writing once (tooling, principles, stack, IDE) and then be able write platform-specific app for the specific native platform.