So how am I supposed to do better than where other have failed so visibly. Well, hopefully your project will be a little less complex than those mentioned above, but remember that the more complex the project, the less accurate the estimation will be. There is always unknown to be found when actually going through the motion of creating your app. If everything was known, you would not need a specialist with years of experience.
So, first, I try to understand your business goals. Do you want to create a solid version 2 for your app that already has hundreds of thousands of users? Or are you trying to validate your idea with a proof of concept? For the same app concept those two cases will yield vastly different estimations because in the first case you want a polished, stable, reliable and scalable app. In the second case you probably won't care if you can't scale to millions of users, you'll be too busy trying to get your first thousand users onboard.
Once, I understand your goals, I take all the scenarios/user stories you want to support in your application, think about each individually and try to figure all the moving parts that will need to be wrangled to get it to work.
The combination of both of those steps allows me to give a reasonable estimate of what it will take to build an app. You'll notice that this is not an instantaneous process. This is why I offer road mapping session to my client: I want to give you a good estimate.
And also, keep in mind that it's not just the cost of creating an app. You also need to think about marketing your app, maintaining your app and invest in its future.
Want to estimate your app project, I can help.
Photo by at 401k 2012