Let's say I have a basic iPhone app that maintains contacts. I have an entity named "Contact" that has the attributes "name", "address" and "photo". The app's main view is just a table view that displays the name of each contact. The user can then click on each name to display the corresponding photo and address (in a separate view controller).
The problem is, photos can have a very large size.
Isn't it the case that when I fetch managed objects, all of its attributes also get brought into memory? In this case, it could take a long time to load the app and display the names in the table view, because the app is also underneath fetching all the photos (and addresses), right?
For this reason, wouldn't you say that I should—in order to make the main view more snappy (and the app faster to load)—make a new "ContactFacade" entity which has only the "name" attribute and a relationship to a "Contact" entity that contains further details about that contact?