I wonder if it would be possible to have some sort of a hybrid system, where automatic recognition is attempted, with a fall-back to manual input where this fails. (The manual input could be to select from several automatic "guesses") If the app stored all the data from all users, this could eventually lead to a really big database, and the automatic recognition might get better and better.
EDIT: Also, automatic vegetable/fruit recognition is actually in production in some supermarkets, for weighing/pricing. (I saw this in France.)
I saw this in France. It sucked. I wish I'd documented it better, but as far as I could tell, the algorithm was "display the top five fruit/veg with a similar hue," i.e. you put on a courgette(zuchini) and it offered you--cucumber, lettuce, green pepper, cabbage, grapes. Pinnacle of machine vision algorithms, it ain't.