In many ways, app developers, like popular consumer brands in a supermarket, are locked in a fight for two scarce resources: consumer attention and shelf space.