Skip to content
Preptima
hardDesignScenarioSeniorStaff

You're asked to break up a five-year-old iOS app that has become one enormous Xcode target - how would you approach modularising it, and what does it cost you?

4 min readUpdated 2026-08-15

Answer

Short answer

Modularising means carving the app into Swift packages along feature and layer boundaries so build graphs and ownership become explicit, at the cost of slower initial builds, careful dependency direction, and real discipline about what each module exposes publicly.

Was this answer helpful?

Likely follow-ups

  • How would you decide whether a shared UI-component module belongs at the top of the dependency graph or should not exist at all?
  • What breaks if two feature modules both need to navigate to each other's screens?
  • Why can splitting into local Swift packages sometimes make clean-build time worse before it makes incremental builds better?
  • How would you migrate one feature out of the monolith target without freezing feature work on it for months?

Related questions

Related Topics