When Facebook first open-sourced the toolkit we immediately started playing and developing with this and began evaluating it as a tool for use in production environments. Rather than making a snap decision we have gone away and built a series of applications for clients as well as to demonstrate at events like Dreamforce so feel we can now comfortably share some of our thoughts on it as a development framework.
Flux is an application architecture pattern from Facebook that works extremely well with both React JS and React Native in enabling a developer to compose applications in a more logical format where data flows unidirectionally throughout the system. Component based frameworks like React can become both unpredictable and slow if data flow within an application is not managed properly whilst using two-way data binding. Updating a single object can then lead to cascading updates within associated objects making debugging difficult and causing un-necessary work for the system. Flux helps to resolve this through a very simple pattern which fits very nicely for UI applications.
The biggest surprise for the team when we were working with the framework was how performant it was. The applications we have built are comparable in performance to their completely native counterparts written in Objective-C or Swift and do not suffer from any noticeable lag which can hamper many hybrid apps. The team at Facebook have also listed out some known performance issues, resolutions and information on what they are doing to work on this so you can see active development occurring.
By far the worst thing about the current state of React Native is the instability inherent in its active development state. We have worked with a few versions and have found there always to be some minor tweaks or changes between the versions which need us to undertake some minor changes. Obviously this is destined to reduce further and further over time and as more and more of the initial work is completed but is just something for prospective developers to be aware of.
Needs More (Cross-Platform) Modules