What happens if you release it and it turns out that nobody likes it? I'd have preferred to spend a month releasing a lower-quality app, and then spent 11 months improving it (while people use it and I learn more about what they want) rather than take a year releasing a high-quality app nobody wants to use.
This assumes you aren't just building it for fun, though, in which case building it is the point, and you don't even need to release it afterwards.
But I also follow a development methodology that I call "paving the bare spots."[0] It adjusts the design, as the project progresses. Not for the faint of heart. It means that I may toss out a month's work, because it does not fit the user experience (which is under constant revision). We have also made a couple of major pivots, during the project, to fit new realities.
I have probably tossed out three months' worth of work, as the project has progressed. Happy to do so. The best code, is the code I don't write.
The nice thing is, is that the product is constantly at "ship" Quality. Makes demos, user testing, and begging for money, easier.
[0] https://littlegreenviper.com/miscellany/the-road-most-travel...