objection 是一个轻量级的依赖注入框架,受Guice的启发,Google Wallet 也是使用的该项目。「依赖注入」是面向对象编程的一种设计模式,用来减少代码之间的耦合度。通常基于接口来实现,也就是说不需要new一个对象,而是通过相关的控制器来获取对象。2013年最火的PHP框架 laravel 就是其中的典型。 
 假设有以下场景:ViewC            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-02-27 14:42:32
                            
                                25阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            业务背景 豆瓣在 2014 年聚合了移动端业务,推出了一款叫“豆瓣”的App。随着豆瓣App 的发展,豆瓣越来越多的业务线被纳入其中。豆瓣App 代码量越来越多,功能越来越复杂,体积越来越庞大。为了更从容地应对这种状况,使整个项目更健康,我们实施了模块化。模块化的最终目的是独立出几个业务模块,使得各个业务模块互不干扰,可以独立开发。但其实在当前的豆瓣,豆瓣App 的开发仍然由是一个团队负责,并没有            
                
         
            
            
            
            # iOS模块化开发与CocoaPods的集成
在现代iOS开发中,为了提高代码的复用性和维护性,模块化开发成为了一种重要的设计理念。通过将应用划分为多个模块,可以让不同的开发者并行工作,减少冲突,提升开发效率。在这种背景下,CocoaPods作为iOS第三方库管理工具,成为了模块化开发的重要组成部分。
## 什么是模块化开发?
模块化开发就是将一个大型应用拆分成多个独立的模块,每个模块封装            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2024-10-30 03:39:45
                            
                                41阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            模块化开发架构  为什么使用模块化架构开发方式  在项目组开发过程中,一个项目业务有很多,每个成员都负责一部分业务开发,这个时候业务代码全部都糅杂在一起,不管是后面维护和代码阅读,都是很困难的,这个时候我们就想到使用模块化方式开发,也就是把每一块的业务独立出来开发,每个人负责自己的模块,分工明确、工程结构清晰、互不干扰…思想:  我们使用生产环境来控制我们的模块之间的关系,测试环境每个模块独            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-07-12 18:44:51
                            
                                142阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
                 由于公司项目拆分的版本太多,而且每个版本之间还有相同的功能模块,外加上平时自己定义了一些工具类以及封装的小控件,所以将项目模块化势在必行。利用cocoapod进行模块化就是很好的选择,他可以规范化的管理代码,功能更新后只需要修改相应的模块,更新到github上,再在项目进行相应的更新即可。省去了手动修改模块的麻烦。同时还可以进行版本管理,可以根据业务上的需求            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-11-02 06:23:26
                            
                                102阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            jiaModuleDemo项目是为了解决关于项目中如何进行模块化开发而编写的实例,包含如何进行路由式、本地模块间交互的实现;目前还是在页面层级进行抽离,对于项目中各个模块共有的基础功能也进行提取,可以结合私有Pods进行管理; 项目中存在的问题 问题一:页面耦合严重  上面这张图中左边体现了目前项目中存在的问题,对于页面之间相互耦合,而页面之间的传参也各不相同,由于不同的开发人员或者简便方式等原            
                
         
            
            
            
            ******阅读完此文,大概需要20分钟****** 一、方案背景有这么一个需求,需要做一个展示信息详情页,内容可能会比较多,超过一屏,最终还需要生成一张完整的详情页截图(UIImage), 如果我们直接基于UIScrollView(UITableView)去截屏,只会生成UIScrollView的frame的size大小的图片,不能生成contentSize大小的图片,所以,我们需要基于UIVi            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-12-16 11:52:42
                            
                                51阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            # iOS模块化:提升开发效率与代码质量
在iOS开发中,模块化是一种重要的架构设计理念。它通过将应用程序拆分为多个独立的模块,有效提高了代码的可维护性、可复用性和团队协作的效率。本文将探讨iOS模块化的基本概念、优势及其实现方式,并提供具体的代码示例。
## 什么是iOS模块化?
模块化是将一个复杂的系统分解为多个相对简单、可管理的模块的过程。在iOS应用程序中,模块可以是功能模块(如用户            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2024-10-28 06:33:01
                            
                                38阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            一、为什么要组件化1.实现之间解耦、减少项目的编译时间,提升业务开发效率。通常一个工程中会有多个模块,而模块之间会有依赖关系,比如A调用B,那么在A模块中就会引用B模块的头文件,同时可能B模块又会依赖C模块,C模块又会依赖A模块等等,最终的结果是各模块高度耦合,特别是大型的工程,耦合特别严重。如下图所示       如果想避免耦合,那么我们需要设计一种结构避免,各模块之间耦合,可以如下图所示结构:            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-10-14 22:24:12
                            
                                209阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            背景:由于目前所在公司的iOS项目的依赖管理是比较原始的状态,但是APP功能又是越来越复杂的,这就带来的很多问题,比如开发时编译时间过长、模块间耦合严重、模块依赖混乱等。最近又听说这个项目中的部分功能可能需要独立出一个新APP,本着Don't repeat yourself的原则,我们试着抽离出原项目中的各个模块,并在新的APP中集成这些模块。最近算是初步完成了新APP的模块化,也算是从中总结了一            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-06-12 21:36:44
                            
                                100阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            关于iOS模块化开发解决方案网上也有一些介绍,但真正落实在在具体的实例却很少看到,计划编写系统文章来介绍关于我对模块化解决方案的理解,里面会有包含到一些关于解耦、路由、封装、私有Pod管理等内容;并编写的一个实例项目放在git进行开源[jiaModuleDemo],里面现在已经放着一些封装的功能模块;会不断的进行更新,假如你感兴趣可以Star一下,项目也不断的更新完善优化;如果你有更好的方案或者说            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-11-21 19:12:21
                            
                                93阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            一个工程多个模块,是由一个或者多个Project和多个framework包裹在一个Workspace里面的一种架构。其主要目的是为将不同的功能分割开,由不同人员进行开发与维护。这里的多个project可以由MainProject(主项目),PartProject(功能项目,可多个),多个framework:NetworkManager,Extension等组成。一、创建Workspace创建Wor            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-07-17 13:39:18
                            
                                279阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            随着项目的发展,代码越来越复杂,管理起来也就越来越麻烦。尤其是在多人合作开发的项目中,代码的维护也变得越来越艰难,随之而来的问题也就越来越多,如果此时进行代码重构,把工作量是非常大的。
模块化管理项目就是把当前项目分成多个模块,单独管理,这样比起整个项目来说单独的模块管理更方便。对于一个成熟的项目要做模块化还是很有挑战的既要兼顾项目的开发任务还要去分离模块,同时对于模块的粒度划分也是一个很复杂的问            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-11-12 23:44:41
                            
                                80阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            组件化是近几年流行起的概念,它是当代码扩张到一定程度时,所采取的一种代码组织架构策略。阿里、蘑菇街等大厂也在近几年陆续完成了其代码组件化的过程。 提到组件化,给人的感觉似乎很高大上,很神秘的感觉。但是,正如大多数真正优秀的架构一样,组件化的代码实现并不是很困难。 本文主要在Casa的文章以及WeRead团队博客文章的基础上,对组件化思路和实现方式做一个总结。组件 vs 模块初次接触组件化,很容易混            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-09-04 21:01:13
                            
                                1415阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            背景:由于目前公司的iOS项目的依赖管理是比较原始的状态,但是APP功能又是越来越复杂的,这就带来的很多问题,比如开发时编译时间过长、模块间耦合严重、模块依赖混乱等。最近又听说这个项目中的部分功能可能需要独立出一个新APP,本着“Don't repeat yourself”的原则,试着抽离出原项目中的各个模块,并在新的APP中集成这些模块。 最近算是初步完成了新APP的模块化,也算是从中总结了一些            
                
         
            
            
            
            # iOS Workspace 模块化:构建可扩展的项目结构
在当今移动应用开发中,随着项目规模的增加,维护一致性和可扩展性变得愈加重要。iOS 开发中的模块化是一个强有力的技巧,它通过将代码分解为可独立开发和测试的模块,帮助开发者在复杂项目中保持高效。在本文中,我们将探讨 iOS Workspace 的模块化设计,并给出相应的代码示例。
## 什么是 Workspace 和模块化?
Wor            
                
         
            
            
            
            1.概述       模块化架构设计是指项目只有一个主工程,包含若干了按照功能划分的子模块,子模块以framework方式进行开发,以静态库或动态库集成到主工程。这样做的好处是代码结构更加清晰,主工程代码少、更加干净,模块之间互相解耦,方便cocoaPod依赖库的统一管理等。工程代码结构如下:1)主工程:iOS;2)子工程:Home、WebView、Vide            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-08-29 13:39:06
                            
                                166阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            # iOS 模块化通信实战指南
在现代iOS开发中,模块化通信是提高代码可维护性和可扩展性的关键。通过模块化,我们可以将应用程序分割为多个模块,每个模块负责特定的功能。这样,不同模块之间可以通过一种优雅的方式进行通信。今天,我将教会你如何在iOS项目中实现模块化通信。
## 流程概述
以下是实现模块化通信的基本步骤。我们将其整理成一个流程表格,如下所示:
| 步骤 | 描述            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2024-08-29 04:56:37
                            
                                41阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            随着移动互联网的迅猛发展,尤其是 iOS 平台的不断壮大,项目的复杂性与日俱增。为了提高开发效率、减少维护成本,iOS 项目模块化成为了一种必然的选择。本篇文章将详细记录 iOS 项目模块化的过程,分析业务场景,经过架构的迭代,设计高可用方案,攻坚性能优化,最终复盘总结可复用方法论,并探讨开源贡献的应用。
## 背景定位
在过去的几年中,公司 iOS 项目的用户增长迅速,业务规模不断扩大,团队            
                
         
            
            
            
            文章目录模块化的意义模块化的粒度组件组件化方案MGJRouter 的路由映射CTMediator 中间者Category的编写 模块化的意义当项目大到一定程度,开发人员也多,所有的代码都集中到一个仓库,提交修改都要等其他人提交完成不报错才能开始,非常麻烦。再者就是代码之间耦合严重,到处引用,穿插错综复杂,往往改变一个变量,需要修改很多处代码,很容易出错。对于这种情况,就要进行架构整治,模块化无疑            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-07-20 13:17:35
                            
                                23阅读
                            
                                                                             
                 
                
                                
                    