I have one more idea, trying to unite previous two. What if we keep categories and voting by categories, but do it slightly different way: say, we award X apps in each category, but if no one app in some category is good enough (well, "3 stars" or something), then this category's awards are redistributed to more worthy apps. It can as involve developers in exploring something new, as stop them from making crappy pieces of code.