I have been thinking about this a bit and there are a lot of good suggestions here.
Let me add a few points.
First, I don’t think it’s necessary but certainly helpful to work in a larger company for some time.
I am a self-taught developer that worked as an student intern for a couple of years, then being the only developer in a little start-up that eventually failed. I’ve written about it here: return.co.de/blog/articles/why-my-...
TL;DR: there was no senior developer so we made a couple of serious wrong decisions.
One good thing was, that there had been someone with a business background. We had a lot of discussions, I wanted “good” software, he want business value and save money. Those discussions have been stressful but in the end they helped to find a good balance.
So maybe it would be good to find someone to work together that does the business, and maybe marketing etc.
A second thing is, that you need to be realistic about the chance of an successful App. There are something like 2 million of apps in the iOS AppStore at least so it’s pretty hard to get visibility there as well as getting revenue because people expect Apps to be for free. So as someone else here mentions, to to start it as a side project.
I’ve built a productive android app (industrial context, not in the play store) myself and from the requirements, it appeared to be a very very simple app But it turned out to be very complex. Writing a solid android app might be harder as one thinks.
Sorry for my grains of salt, but I think you were asking for honest opinions.
I doesn’t mean, you shouldn’t follow your dreams, it means must must be aware of the risks. If you can, mitigate or at least actively accept them.
Disclaimer: I am personally very careful and conservative regarding my decisions.
As for all the other answers, this is just my point of view. Think of it as amazon reviews, read all of them and make a decision yourself. No one can do that for you 😉
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.