A discussion of React would be incomplete without mentioning React Native. One of the difficult aspects of native mobile application development is, well, native languages. The Android platform utilizes Java, while iOS relies on Swift as a programming language. We won't get into the details of mobile development here (or React Native), but it's important to note that there are major differences between React and React Native. When I first began experimenting with React, I was under the impression that the components were reusable between React and React Native. To an extent, this is mildly true, but the differences between the two outweigh the similarities.
Native's main strength comes from the fact that you're not writing in another language; rather, you're still writing JavaScript. With that being said, there are additional complexities to Native, especially when dealing with the native features of a mobile device, such as the camera. To that...