Mobile development can be approached from many different angles.
Typically, I will create a hybrid app using Cordova to make an existing web app into a mobile app. This is integrated into the build system so that development of the web app and the cordova mobile app are done at the same time. When there is the need to access the phone functions directly, this is done with native code that can communicate with the cordova app, meaning we get the best of both worlds by using cordova.
Alternatively there is the option to code in the native device language ( C# for iOS and JAVA for android ), which do perform better than a cordova app would.
I am also a fan of using programs and frameworks to compile the mobile apps for me, such as React native, Unity 3D and Adobe Air.