19. Modularization
• The size of project grows,
the complexity increases exponentially
• Control this complexity is key of
Software Engineering
Purpose
Feature
Complexity
Time
Cost
20. • High Cohesion, Low Coupling
• Open to Extend, Close to modify
• Dependency Inversion
• Testability
Modularization
SOLID Principle
21. Modularization
• Composing Modules by Separating of Concerns
• Do Use Access Control(public, internal, private)
• Do access by protocol not by Implementation
• Use Dependencies by DI
• Write Unit Test
Principles for Robust Module
27. Workshop2
• Add Local Swift Package
• Create Modules according to Directories
• Add Access Control (public, internal, private)
• Inversion of Dependency
TCA Modularization