SlideShare a Scribd company logo
1 of 11
Download to read offline
PROJECT MODULARIZATION
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
MANY LIBS ARE EMBEDDED
CURRENT ISSUES
• Increase compilation time
MESSY FILE ORGANIZATION
CURRENT ISSUES
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
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
SOLUTION
DIVIDE PROJECT INTO SMALLER MODULES
• UI Utilities: Reusable UI components that don’t contain business logics
• Depends on Utilities module
SOLUTION
DIVIDE PROJECT INTO SMALLER MODULES
• Service layer: Provide domain specific business logics
• Depends on Utilities module
SOLUTION
DIVIDE PROJECT INTO SMALLER MODULES
• Presentation layer: VIP stacks & View Controller
• Depends on UI utilities, Utilities & Service module
SOLUTION
DIVIDE PROJECT INTO SMALLER MODULES
• No additional dependencies should be added
• (e.g. service -> presentation, Utilities -> Service)
DISCUSSIONS

More Related Content

What's hot

Application Development with Microservices and Widgets
Application Development with Microservices and WidgetsApplication Development with Microservices and Widgets
Application Development with Microservices and WidgetsSandy Kemsley
 
Ibm rational build merge online Training at GoLogica
Ibm rational build merge online Training at GoLogicaIbm rational build merge online Training at GoLogica
Ibm rational build merge online Training at GoLogicaGoLogica Technologies
 
VI package manager
VI package managerVI package manager
VI package managerDMC, Inc.
 
WSO2Con EU 2016: Introduction to the All New WSO2 Governance Centre
WSO2Con EU 2016: Introduction to the All New WSO2 Governance CentreWSO2Con EU 2016: Introduction to the All New WSO2 Governance Centre
WSO2Con EU 2016: Introduction to the All New WSO2 Governance CentreWSO2
 
Tools for Managing your LabVIEW Source Code
Tools for Managing your LabVIEW Source CodeTools for Managing your LabVIEW Source Code
Tools for Managing your LabVIEW Source CodeDMC, Inc.
 
How to use Git Branch
How to use Git BranchHow to use Git Branch
How to use Git BranchPhuoc Nguyen
 
How to prepare a project for automated deployment?
How to prepare a project for automated deployment?How to prepare a project for automated deployment?
How to prepare a project for automated deployment?ONE BCG
 
Git Workflows
Git WorkflowsGit Workflows
Git WorkflowsNoam Kfir
 
Fitman webinar 2015 06 Collaborative Business Process Management (CBPM)
Fitman webinar 2015 06 Collaborative Business Process Management (CBPM)Fitman webinar 2015 06 Collaborative Business Process Management (CBPM)
Fitman webinar 2015 06 Collaborative Business Process Management (CBPM)FITMAN FI
 
Life of our small product
Life of our small productLife of our small product
Life of our small productKenji HASUNUMA
 
Documentum: where do we go from here
Documentum: where do we go from hereDocumentum: where do we go from here
Documentum: where do we go from hereJacquetteConsulting
 
Extending and Integrating QlikView
Extending and Integrating QlikViewExtending and Integrating QlikView
Extending and Integrating QlikViewHelena Caligari
 
Expose BizTalk to the world (ACSUG)
Expose BizTalk to the world (ACSUG)Expose BizTalk to the world (ACSUG)
Expose BizTalk to the world (ACSUG)Wagner Silveira
 
WSO2Con USA 2017: Implementing a Modern API Management Solution that Benefits...
WSO2Con USA 2017: Implementing a Modern API Management Solution that Benefits...WSO2Con USA 2017: Implementing a Modern API Management Solution that Benefits...
WSO2Con USA 2017: Implementing a Modern API Management Solution that Benefits...WSO2
 
NI Package Manager
NI Package ManagerNI Package Manager
NI Package ManagerDMC, Inc.
 
Spring one pivotal
Spring one pivotalSpring one pivotal
Spring one pivotalMallika Iyer
 
What’s New with Flowable?
What’s New with Flowable?What’s New with Flowable?
What’s New with Flowable?Flowable
 
Modern apps in a microservices age May meet up Architecting for Innovation
Modern apps in a microservices age May meet up Architecting for InnovationModern apps in a microservices age May meet up Architecting for Innovation
Modern apps in a microservices age May meet up Architecting for InnovationAndrew Blades
 

What's hot (19)

Application Development with Microservices and Widgets
Application Development with Microservices and WidgetsApplication Development with Microservices and Widgets
Application Development with Microservices and Widgets
 
Ibm rational build merge online Training at GoLogica
Ibm rational build merge online Training at GoLogicaIbm rational build merge online Training at GoLogica
Ibm rational build merge online Training at GoLogica
 
VI package manager
VI package managerVI package manager
VI package manager
 
WSO2Con EU 2016: Introduction to the All New WSO2 Governance Centre
WSO2Con EU 2016: Introduction to the All New WSO2 Governance CentreWSO2Con EU 2016: Introduction to the All New WSO2 Governance Centre
WSO2Con EU 2016: Introduction to the All New WSO2 Governance Centre
 
Tools for Managing your LabVIEW Source Code
Tools for Managing your LabVIEW Source CodeTools for Managing your LabVIEW Source Code
Tools for Managing your LabVIEW Source Code
 
How to use Git Branch
How to use Git BranchHow to use Git Branch
How to use Git Branch
 
Introduction to Git
Introduction to GitIntroduction to Git
Introduction to Git
 
How to prepare a project for automated deployment?
How to prepare a project for automated deployment?How to prepare a project for automated deployment?
How to prepare a project for automated deployment?
 
Git Workflows
Git WorkflowsGit Workflows
Git Workflows
 
Fitman webinar 2015 06 Collaborative Business Process Management (CBPM)
Fitman webinar 2015 06 Collaborative Business Process Management (CBPM)Fitman webinar 2015 06 Collaborative Business Process Management (CBPM)
Fitman webinar 2015 06 Collaborative Business Process Management (CBPM)
 
Life of our small product
Life of our small productLife of our small product
Life of our small product
 
Documentum: where do we go from here
Documentum: where do we go from hereDocumentum: where do we go from here
Documentum: where do we go from here
 
Extending and Integrating QlikView
Extending and Integrating QlikViewExtending and Integrating QlikView
Extending and Integrating QlikView
 
Expose BizTalk to the world (ACSUG)
Expose BizTalk to the world (ACSUG)Expose BizTalk to the world (ACSUG)
Expose BizTalk to the world (ACSUG)
 
WSO2Con USA 2017: Implementing a Modern API Management Solution that Benefits...
WSO2Con USA 2017: Implementing a Modern API Management Solution that Benefits...WSO2Con USA 2017: Implementing a Modern API Management Solution that Benefits...
WSO2Con USA 2017: Implementing a Modern API Management Solution that Benefits...
 
NI Package Manager
NI Package ManagerNI Package Manager
NI Package Manager
 
Spring one pivotal
Spring one pivotalSpring one pivotal
Spring one pivotal
 
What’s New with Flowable?
What’s New with Flowable?What’s New with Flowable?
What’s New with Flowable?
 
Modern apps in a microservices age May meet up Architecting for Innovation
Modern apps in a microservices age May meet up Architecting for InnovationModern apps in a microservices age May meet up Architecting for Innovation
Modern apps in a microservices age May meet up Architecting for Innovation
 

Similar to iOS Project modularisation

Bojan Veljanovski - Modular Software Architecture and Design (Code Camp 2016)
Bojan Veljanovski - Modular Software Architecture and Design (Code Camp 2016)Bojan Veljanovski - Modular Software Architecture and Design (Code Camp 2016)
Bojan Veljanovski - Modular Software Architecture and Design (Code Camp 2016)Bojan Veljanovski
 
Developing modular Java applications
Developing modular Java applicationsDeveloping modular Java applications
Developing modular Java applicationsJulien Dubois
 
DerbyDev_ModMonolith_290323.pptx
DerbyDev_ModMonolith_290323.pptxDerbyDev_ModMonolith_290323.pptx
DerbyDev_ModMonolith_290323.pptxAaronWhite801549
 
0121_RESOURCE_SoftwareDevelopmentLifecycles.pdf
0121_RESOURCE_SoftwareDevelopmentLifecycles.pdf0121_RESOURCE_SoftwareDevelopmentLifecycles.pdf
0121_RESOURCE_SoftwareDevelopmentLifecycles.pdfBinNguynVn3
 
Software Process Models
Software Process ModelsSoftware Process Models
Software Process ModelsAtul Karmyal
 
Employee Management Process (Engineering Model)
Employee Management Process (Engineering Model)Employee Management Process (Engineering Model)
Employee Management Process (Engineering Model)Dhyey Patel
 
Serverless microservices
Serverless microservicesServerless microservices
Serverless microservicesLalit Kale
 
ISTQB - Software development life cycle
ISTQB - Software development life cycleISTQB - Software development life cycle
ISTQB - Software development life cycleHoangThiHien1
 
Ruby on Rails & Version Control
Ruby on Rails & Version ControlRuby on Rails & Version Control
Ruby on Rails & Version ControlYash Mittal
 
Migros.ch - Modularizing Magnolia for Switzerland's Largest Retailer
Migros.ch - Modularizing Magnolia for Switzerland's Largest RetailerMigros.ch - Modularizing Magnolia for Switzerland's Largest Retailer
Migros.ch - Modularizing Magnolia for Switzerland's Largest Retailerbkraft
 
CloudStack Day 14 - Automation: The Key to Hybrid Cloud
CloudStack Day 14 - Automation: The Key to Hybrid CloudCloudStack Day 14 - Automation: The Key to Hybrid Cloud
CloudStack Day 14 - Automation: The Key to Hybrid CloudMichael Ducy
 
4_25655_SE291_2020_1__2_1_Lecture 3 - Software Process Models.ppt
4_25655_SE291_2020_1__2_1_Lecture 3 - Software Process Models.ppt4_25655_SE291_2020_1__2_1_Lecture 3 - Software Process Models.ppt
4_25655_SE291_2020_1__2_1_Lecture 3 - Software Process Models.pptloloka1
 

Similar to iOS Project modularisation (20)

Bojan Veljanovski - Modular Software Architecture and Design (Code Camp 2016)
Bojan Veljanovski - Modular Software Architecture and Design (Code Camp 2016)Bojan Veljanovski - Modular Software Architecture and Design (Code Camp 2016)
Bojan Veljanovski - Modular Software Architecture and Design (Code Camp 2016)
 
Developing modular Java applications
Developing modular Java applicationsDeveloping modular Java applications
Developing modular Java applications
 
Incremental model
Incremental model Incremental model
Incremental model
 
DerbyDev_ModMonolith_290323.pptx
DerbyDev_ModMonolith_290323.pptxDerbyDev_ModMonolith_290323.pptx
DerbyDev_ModMonolith_290323.pptx
 
0121_RESOURCE_SoftwareDevelopmentLifecycles.pdf
0121_RESOURCE_SoftwareDevelopmentLifecycles.pdf0121_RESOURCE_SoftwareDevelopmentLifecycles.pdf
0121_RESOURCE_SoftwareDevelopmentLifecycles.pdf
 
Top modules
Top modulesTop modules
Top modules
 
Sdlc models
Sdlc modelsSdlc models
Sdlc models
 
Sdlc models
Sdlc modelsSdlc models
Sdlc models
 
2-SE Process Models.pptx
2-SE Process Models.pptx2-SE Process Models.pptx
2-SE Process Models.pptx
 
Incremental model
Incremental modelIncremental model
Incremental model
 
Sdlc models
Sdlc modelsSdlc models
Sdlc models
 
Software Process Models
Software Process ModelsSoftware Process Models
Software Process Models
 
Employee Management Process (Engineering Model)
Employee Management Process (Engineering Model)Employee Management Process (Engineering Model)
Employee Management Process (Engineering Model)
 
CBDW2014 - ColdBox 4 Modules
CBDW2014 - ColdBox 4 ModulesCBDW2014 - ColdBox 4 Modules
CBDW2014 - ColdBox 4 Modules
 
Serverless microservices
Serverless microservicesServerless microservices
Serverless microservices
 
ISTQB - Software development life cycle
ISTQB - Software development life cycleISTQB - Software development life cycle
ISTQB - Software development life cycle
 
Ruby on Rails & Version Control
Ruby on Rails & Version ControlRuby on Rails & Version Control
Ruby on Rails & Version Control
 
Migros.ch - Modularizing Magnolia for Switzerland's Largest Retailer
Migros.ch - Modularizing Magnolia for Switzerland's Largest RetailerMigros.ch - Modularizing Magnolia for Switzerland's Largest Retailer
Migros.ch - Modularizing Magnolia for Switzerland's Largest Retailer
 
CloudStack Day 14 - Automation: The Key to Hybrid Cloud
CloudStack Day 14 - Automation: The Key to Hybrid CloudCloudStack Day 14 - Automation: The Key to Hybrid Cloud
CloudStack Day 14 - Automation: The Key to Hybrid Cloud
 
4_25655_SE291_2020_1__2_1_Lecture 3 - Software Process Models.ppt
4_25655_SE291_2020_1__2_1_Lecture 3 - Software Process Models.ppt4_25655_SE291_2020_1__2_1_Lecture 3 - Software Process Models.ppt
4_25655_SE291_2020_1__2_1_Lecture 3 - Software Process Models.ppt
 

Recently uploaded

Chandigarh Call Girls Service ❤️🍑 9115573837 👄🫦Independent Escort Service Cha...
Chandigarh Call Girls Service ❤️🍑 9115573837 👄🫦Independent Escort Service Cha...Chandigarh Call Girls Service ❤️🍑 9115573837 👄🫦Independent Escort Service Cha...
Chandigarh Call Girls Service ❤️🍑 9115573837 👄🫦Independent Escort Service Cha...Niamh verma
 
哪里有卖的《俄亥俄大学学历证书+俄亥俄大学文凭证书+俄亥俄大学学位证书》Q微信741003700《俄亥俄大学学位证书复制》办理俄亥俄大学毕业证成绩单|购买...
哪里有卖的《俄亥俄大学学历证书+俄亥俄大学文凭证书+俄亥俄大学学位证书》Q微信741003700《俄亥俄大学学位证书复制》办理俄亥俄大学毕业证成绩单|购买...哪里有卖的《俄亥俄大学学历证书+俄亥俄大学文凭证书+俄亥俄大学学位证书》Q微信741003700《俄亥俄大学学位证书复制》办理俄亥俄大学毕业证成绩单|购买...
哪里有卖的《俄亥俄大学学历证书+俄亥俄大学文凭证书+俄亥俄大学学位证书》Q微信741003700《俄亥俄大学学位证书复制》办理俄亥俄大学毕业证成绩单|购买...wyqazy
 
Night 7k to 12k Top Call Girls Ahmedabad 👉 BOOK NOW 8617697112 👈 ♀️ night gir...
Night 7k to 12k Top Call Girls Ahmedabad 👉 BOOK NOW 8617697112 👈 ♀️ night gir...Night 7k to 12k Top Call Girls Ahmedabad 👉 BOOK NOW 8617697112 👈 ♀️ night gir...
Night 7k to 12k Top Call Girls Ahmedabad 👉 BOOK NOW 8617697112 👈 ♀️ night gir...Call girls in Ahmedabad High profile
 
Powerful Love Spells in Arkansas, AR (310) 882-6330 Bring Back Lost Lover
Powerful Love Spells in Arkansas, AR (310) 882-6330 Bring Back Lost LoverPowerful Love Spells in Arkansas, AR (310) 882-6330 Bring Back Lost Lover
Powerful Love Spells in Arkansas, AR (310) 882-6330 Bring Back Lost LoverPsychicRuben LoveSpells
 
CALL ON ➥8923113531 🔝Call Girls Saharaganj Lucknow best sexual service
CALL ON ➥8923113531 🔝Call Girls Saharaganj Lucknow best sexual serviceCALL ON ➥8923113531 🔝Call Girls Saharaganj Lucknow best sexual service
CALL ON ➥8923113531 🔝Call Girls Saharaganj Lucknow best sexual serviceanilsa9823
 
9892124323 | Book Call Girls in Juhu and escort services 24x7
9892124323 | Book Call Girls in Juhu and escort services 24x79892124323 | Book Call Girls in Juhu and escort services 24x7
9892124323 | Book Call Girls in Juhu and escort services 24x7Pooja Nehwal
 
Call US Pooja 9892124323 ✓Call Girls In Mira Road ( Mumbai ) secure service,
Call US Pooja 9892124323 ✓Call Girls In Mira Road ( Mumbai ) secure service,Call US Pooja 9892124323 ✓Call Girls In Mira Road ( Mumbai ) secure service,
Call US Pooja 9892124323 ✓Call Girls In Mira Road ( Mumbai ) secure service,Pooja Nehwal
 
Model Call Girl in Shalimar Bagh Delhi reach out to us at 🔝8264348440🔝
Model Call Girl in Shalimar Bagh Delhi reach out to us at 🔝8264348440🔝Model Call Girl in Shalimar Bagh Delhi reach out to us at 🔝8264348440🔝
Model Call Girl in Shalimar Bagh Delhi reach out to us at 🔝8264348440🔝soniya singh
 
CALL ON ➥8923113531 🔝Call Girls Gomti Nagar Lucknow best Night Fun service
CALL ON ➥8923113531 🔝Call Girls Gomti Nagar Lucknow best Night Fun serviceCALL ON ➥8923113531 🔝Call Girls Gomti Nagar Lucknow best Night Fun service
CALL ON ➥8923113531 🔝Call Girls Gomti Nagar Lucknow best Night Fun serviceanilsa9823
 

Recently uploaded (9)

Chandigarh Call Girls Service ❤️🍑 9115573837 👄🫦Independent Escort Service Cha...
Chandigarh Call Girls Service ❤️🍑 9115573837 👄🫦Independent Escort Service Cha...Chandigarh Call Girls Service ❤️🍑 9115573837 👄🫦Independent Escort Service Cha...
Chandigarh Call Girls Service ❤️🍑 9115573837 👄🫦Independent Escort Service Cha...
 
哪里有卖的《俄亥俄大学学历证书+俄亥俄大学文凭证书+俄亥俄大学学位证书》Q微信741003700《俄亥俄大学学位证书复制》办理俄亥俄大学毕业证成绩单|购买...
哪里有卖的《俄亥俄大学学历证书+俄亥俄大学文凭证书+俄亥俄大学学位证书》Q微信741003700《俄亥俄大学学位证书复制》办理俄亥俄大学毕业证成绩单|购买...哪里有卖的《俄亥俄大学学历证书+俄亥俄大学文凭证书+俄亥俄大学学位证书》Q微信741003700《俄亥俄大学学位证书复制》办理俄亥俄大学毕业证成绩单|购买...
哪里有卖的《俄亥俄大学学历证书+俄亥俄大学文凭证书+俄亥俄大学学位证书》Q微信741003700《俄亥俄大学学位证书复制》办理俄亥俄大学毕业证成绩单|购买...
 
Night 7k to 12k Top Call Girls Ahmedabad 👉 BOOK NOW 8617697112 👈 ♀️ night gir...
Night 7k to 12k Top Call Girls Ahmedabad 👉 BOOK NOW 8617697112 👈 ♀️ night gir...Night 7k to 12k Top Call Girls Ahmedabad 👉 BOOK NOW 8617697112 👈 ♀️ night gir...
Night 7k to 12k Top Call Girls Ahmedabad 👉 BOOK NOW 8617697112 👈 ♀️ night gir...
 
Powerful Love Spells in Arkansas, AR (310) 882-6330 Bring Back Lost Lover
Powerful Love Spells in Arkansas, AR (310) 882-6330 Bring Back Lost LoverPowerful Love Spells in Arkansas, AR (310) 882-6330 Bring Back Lost Lover
Powerful Love Spells in Arkansas, AR (310) 882-6330 Bring Back Lost Lover
 
CALL ON ➥8923113531 🔝Call Girls Saharaganj Lucknow best sexual service
CALL ON ➥8923113531 🔝Call Girls Saharaganj Lucknow best sexual serviceCALL ON ➥8923113531 🔝Call Girls Saharaganj Lucknow best sexual service
CALL ON ➥8923113531 🔝Call Girls Saharaganj Lucknow best sexual service
 
9892124323 | Book Call Girls in Juhu and escort services 24x7
9892124323 | Book Call Girls in Juhu and escort services 24x79892124323 | Book Call Girls in Juhu and escort services 24x7
9892124323 | Book Call Girls in Juhu and escort services 24x7
 
Call US Pooja 9892124323 ✓Call Girls In Mira Road ( Mumbai ) secure service,
Call US Pooja 9892124323 ✓Call Girls In Mira Road ( Mumbai ) secure service,Call US Pooja 9892124323 ✓Call Girls In Mira Road ( Mumbai ) secure service,
Call US Pooja 9892124323 ✓Call Girls In Mira Road ( Mumbai ) secure service,
 
Model Call Girl in Shalimar Bagh Delhi reach out to us at 🔝8264348440🔝
Model Call Girl in Shalimar Bagh Delhi reach out to us at 🔝8264348440🔝Model Call Girl in Shalimar Bagh Delhi reach out to us at 🔝8264348440🔝
Model Call Girl in Shalimar Bagh Delhi reach out to us at 🔝8264348440🔝
 
CALL ON ➥8923113531 🔝Call Girls Gomti Nagar Lucknow best Night Fun service
CALL ON ➥8923113531 🔝Call Girls Gomti Nagar Lucknow best Night Fun serviceCALL ON ➥8923113531 🔝Call Girls Gomti Nagar Lucknow best Night Fun service
CALL ON ➥8923113531 🔝Call Girls Gomti Nagar Lucknow best Night Fun service
 

iOS Project modularisation

  • 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)