DevPrep

All topics › Software architecture

Repository — why isolate the data source?

Middle PRO

The point

A Repository is a protocol that answers "give me the data" and hides where it comes from: network, in-memory cache, SwiftData/Core Data, a file. The rest of the code (use cases, ViewModels) knows only articles()/save(_:) and domain types, but not URLSession, DTOs or the DB schema.

Why:

The rest of this answer, with code and interview follow-ups, is in the DevPrep app.

Read the full answer in DevPrep

Practice this before your interview

DevPrep turns these answers into one-minute challenges: what does this code print, find the bug, mock interviews. One challenge a day.

Get DevPrep on the App Store