I have been recently asked to review an iOS application to see how healthy was the code base, if it follows the best practices and how easy it would be to add new features to it. It goe from the naming convention, coding style, memory management, user interface, to code architecture or even design pattern used. For instance if the network layer is tied up with the parsing layer, how to make sure we can just test parsing elements?