2. SLOW COMPILATION & BROKEN AUTOCOMPLETION
CURRENT ISSUES
• Big project
• 35% Swift & 65% Objective
• Hybrid project compiles very slow (5-6min, clean->build)
• Code auto-completion not working well
3. MANY LIBS ARE EMBEDDED
CURRENT ISSUES
• Increase compilation time
5. DIVIDE PROJECT INTO SMALLER MODULES
SOLUTION
• Each module locates in a separate repository
• Each module can be tested and refactored independently
• Have a clear division of responsibilities
• Dependencies can be precompiled
• Reduce a lot the compilation time
6. SOLUTION
DIVIDE PROJECT INTO SMALLER MODULES
• Utilities module: Reusable helper classes/structs that doesn’t have
any business logics
• Don’t rely on the other modules
7. SOLUTION
DIVIDE PROJECT INTO SMALLER MODULES
• UI Utilities: Reusable UI components that don’t contain business logics
• Depends on Utilities module
8. SOLUTION
DIVIDE PROJECT INTO SMALLER MODULES
• Service layer: Provide domain specific business logics
• Depends on Utilities module
9. SOLUTION
DIVIDE PROJECT INTO SMALLER MODULES
• Presentation layer: VIP stacks & View Controller
• Depends on UI utilities, Utilities & Service module
10. SOLUTION
DIVIDE PROJECT INTO SMALLER MODULES
• No additional dependencies should be added
• (e.g. service -> presentation, Utilities -> Service)