To begin with, you need to decide on the development method. Basically, there are 3 methods: Native, Cross-Platform, and Hybrid.
The native method means that you develop an app for a specific platform (iOS, or Android). For instance, If you want an iOS app and for 100% sure that you won’t have a need run it on Android - this method is for you. For such apps could be used Objective-C, Swift for iOS case and Java, C++, Kotlin, C# for Android.
Next, Cross-Platform seems to be the most popular solution in mobile app development. That’s because your code is universal and your app can be run on different operating systems without any corrections. So, this kind of development offers faster coding and minimizes the budget needed for implementation and support. To develop a Cross-Platform app, you have to be familiar with Flutter/Xamarin/React Native.
My company has a wide experience with mobile app development, and dozens of clients for who we built apps for so we wrote an article about the specificities of this process. I’m sure you’ll find it useful: https://kitrum.com/blog/the-best-tech-stack-for-mobile-app-development/.