Or you can just compile any HTML5 mobile app using Cordova and in 99% of the cases your users won't notice any performance difference between native-app and HTML5 app.
Inability to have the same level of control over soft keyboard behavior is one of the top problems with Cordova, IMO.
Source: wrote & maintained a Cordova+React app on iOS/Android for 3 yrs.
I mostly worked on games, where the UI is custom and there are very few similarities to the UI of the OS, so it worked pretty good.