Over the last few years, the growth of mobile devices presence has been tremendous.
Even though the devices sales seem to have slowed for the last year or so, their market share in terms of website visits keep increasing. In the the last 10 years, the percentage of websites are visited from a mobile device went from about none to over 52% (https://www.statista.com/statistics/241462/global-mobile-phone-website-traffic-share/)
In pace with that, the number of apps downloaded between 2016 and 2017 has almost doubled, from 115 billion to 197 billion and not surprisingly, the number of alternatives for developers to develop apps has also increased.
A few years back, time were simpler. Android apps would be developed in Java, and for iOS (and OSX apps) Apple had released Objective-C. Those so called “Native” apps would take advantage of the all the most recent developments for the devices and their operating systems and would provide the best performance for applications requiring a lot of power, such as video games for instance.
However, some alternative solutions quickly developed. In 2011, Microsoft came along and proposed a platform that would allow to write a project in in C# and deploy it on all mobile platforms at the same time. They called it Xamarin (https://www.xamarin.com). This was a great idea, but to this days, this has not proved been a very popular choice in the industry.
That said, some people are still reluctant to use React Native because it has dependencies on a many user maintained dependencies, and because historically Facebook had no qualms with suddenly pulling the plug on seemly successful technologies, like Parse.
Besides web languages, some evolution for the Native solutions came along. For iOS, the Native Objective-C language got replaced by Swift, and on Android, Koitlin replaced Java. Those new languages are powerful languages and a great improvement allowing developing better apps with less code and in less time. Furthermore those languages have been proven capable to be used as multiplatform languages, and it is now possible to write both iOS and Android apps with either Koitlin and Swift. Certainly, this is levelling the playing field.
It is unclear yet at this point where the scale will be tilting, however what is clear is that the battle is raging hard, and that mobile developers should be careful with not pigeonholing themselves in one particular language and make sure to update their skills frequently.