Het is geen hels karwei, het kost gewoon veel tijd om een commerciele app goed te maken.
Sure, ik stel ook gewoon m'n database op ik tik 'cake bake' en hij poept de standaard CRUD-controllers, -models en -views uit (je zult ongetwijfeld iets soortgelijks hebben voor Android of OSX). Maar dan ben je er nog niet. Soms wil je data van verschillende modellen in dezelfde view verwerkt hebben, of soms wil je voor de ene gebruiker wel data zichtbaar hebben en voor de ander niet, soms kan data wel voldoen aan de bijbehorende datastructuur of datatype, maar dit betekent niet dat alle data van dat soort ook daadwerkelijk de database in moet gaan; je moet domeinen afkaderen. Soms heb je je database op een dergelijke manier genormaliseerd dat automatisch gegenereerde views niet gebruikersvriendelijk zijn, soms wil je dat bepaalde data alleen ingevoerd kan worden als wordt voldaan aan bepaalde condities (die je niet kunt definieren op databaseniveau), etc. Wordt er data gecached client-sided of wordt alle data steeds opnieuw uitgewisseld? En wil je zomaar al die data unencrypted in je database? En hoe laat je de communicatie verlopen met de API? Welk formaat wordt uitgewisseld, hoe wordt authenticatie uitgevoerd (JSON web tokens, andere vorm van authenticatie, zeg het maar)? Hoe springt de app om met foutmeldingen afkomstig van de API? Een app die voor 80-90% werkt is easy. Juist het verfijnen van een app (voor commerciele doeleinden) kost tijd. Veel tijd.
Ik ben nog vrij recent afgestudeerd met een BSc informatica en een MSc software engineering en ben al enkele jaren werkzaam als freelancer voor middelgrote bedrijven. Ik kan me moeilijk voorstellen dat ik al achterloop. Ik gebruik ook gewoon de 'nieuwste' middelen om snel dingen voor elkaar te krijgen. Versiebeheer volgens het Driessen-model, dependency-afhandeling met composer, task running met grunt/prepros, code-ontwikkeling met een framework (vaak CakePHP, laatste versie), en mits onmogelijk, dan minstens met een ORM (Propel, laatste versie), HTML-prototyping met Jade, en netjes de requirements engineering, unit tests (ook met en unittest-framework uiteraard) en de codekwaliteit volgens de pijlers van de software improvement group. En ik droom alle shit van Martin Fowler, ik werk 'agile' zoals iedereen dat leuk noemt, en heb meer literatuur gelezen over de veelgebruikte softwaremethodieken (e.g. Scrum) dan me lief is. Last but not least, ik type m'n code met meer dan 800 aanslagen per minuut.