For many years I've had the idea that you should wait before you publish your app to the store until it's the best it can be. Add all the features, polish it thoroughly, test extensively, that sort of thing.
It's part personal opinion and also, I believe, part a culture thing - I know this isn't a common attitude in other parts of the world.
However, I no longer believe this. As soon as it's "good enough" - submit it.
What's "good enough"? - As soon as it can provide use or value to the person using it.
The benefits of getting feedback from having real people use your app will far out-weigh any benefit from you tinkering with the code or adding one more feature before you do.
I'm not saying don't test your app, or don't fix bugs, or that features don't matter. I'm saying that feedback from real users matters more.
Being first to market doesn't have an impact in most app categories. And are you really defining a new category in your app?
But here's the most important thing:
Getting an app in store is the start of the real process, not just the end of the initial development one.
Putting off launching your app on the public isn't helpful. Ship it. Get started.
When you haven't released it can be easy to put things off, to wait before adding a feature, to defer fixing that bug until another day.
When you have actual users asking for the feature or being affected by the bug there's a greater incentive to make the change. This will often lead to you having a better app in the store, with more users, sooner than if you'd waited until you did everything before releasing it.
To be clear
I'm not saying, don't test it or release it untested. There is a big difference between releasing to beta testers and releasing to the public without having tested it.
This isn't for every app. If you've not developed an app before. Just make something simple and learn the process of submitting to the store with that. Don't dive in with your first app being a highly complicated one.
Disclaimer: this above is focusing on smaller, developer driven apps. If you have a large brand name or are planning a high profile launch then there is a greater reason to get more features and functionality in the app for launch. I understand that and hopefully you do too ;)