Meiner Meinung nach sind Programmieren als Hobby und Programmieren als Beruf zwei ganz unterschiedliche Dinge.
Hobby: Du gibt das Tempo, das Ziel und das WIE man es macht, selbst vor.
Beruf: Jemand anders gibt Tempo und Ziel vor und du musst schauen, WIE es am Schnellsten geht.
Hab selbst schon eine Zeit lang beruflich programmiert und im Beruf hatte ich wirklich schon sehr oft eine "Black Box" vor mir gehabt, sprich man hat Konstrukte vor sich, wo man selbst überhaupt gar keine Ahnung hat, wie das alles genau funktioniert, weil die Studierung der genauen Funktionsweise zu viel Zeit kosten würde, denn Zeit ist bekanntlich Geld.
Ich denke, es ist völlig normal, Sachen nicht ganz zu verstehen. Alleine bei der Webentwicklung taucht gefühlt jede Woche ein neues JavaScript-Framework auf. Im Bereich des Backend siehts auch nicht besser aus, hinzu kommt noch der ganze Deployment-Zirkus mit Jenkins, Git, Docker/Kubernetes und so weiter, das selbst locker 1000+ Zeilen an Code beinhalten kann. Das alles kann doch kein Mensch alles in und auswendig beherrschen.
Das heißt: Man muss wissen, welches Wissen relevant ist und sich das richtige Wissen zur richtigen Zeit aneignen. Während Privat das Wissen/Neugier im Vordergrund steht, geht es im Beruf nur drum, mit welchen Werkzeuge man möglichst schnell ans Ziel kommt. Dort sind die eigentlichen Programmierkünste zwar schön und gut, aber noch lange nicht ausreichend, um sich durchzukämpfen.
Was deine App anbelangt: Fürs Geld verdienen brauchst du gutes Marketing, so einfach ist es. Ohne Marketing wird es so gut wie nie was. Wie schon erwählt, ob man für Geld programmieren oder für Privat programmiert, das ist ein großer Unterschied.
Wer mit Programmcode Geld verdienen will, greift auf schon existierende Code-Basis zu anstatt selbst was zu entwickeln, lässt von Grafikern neuen Content einpflegen und bringt es mit Hilfe von Marketing-Fachlauten an die Leute und der Rubel rollt.