Successful mobile app development comes down to getting six things right: user research, functionality, platform choice, bandwidth, software architecture, and cost.
Building a mobile app well means deliberately working through a set of interdependent decisions: understanding real user needs through research, defining core functionality, choosing the right platform, and planning for realistic budgets.
User research should continue throughout the product's life, not just at the start, and platform decisions depend heavily on how and where your actual users access the app.
On the technical side, network performance and offline functionality shape user experience directly, and the choice between mobile-web (generally cheaper, faster to deploy) and native (typically more expensive but often better performing) should be driven by the same user research, not by default habit.