白癜风是怎么回事 https://m-mip.39.net/news/mipso_5969989.html上篇《大话大前端时代:Vue与iOS的组件化(上)》主要描述了Vue的组件化,下篇将描述iOS的组件化,并对两者做一个对比。精彩继续。
2.iOS篇2.1组件化的需求
在iOSNativeapp前期开发的时候,如果参与的开发人员也不多,那么代码大多数都是写在一个工程里面的,这个时候业务发展也不是太快,所以很多时候也能保证开发效率。
但是一旦项目工程庞大以后,开发人员也会逐渐多起来,业务发展突飞猛进,这个时候单一的工程开发模式就会暴露出弊端了。
项目内代码文件耦合比较严重
容易出现冲突,大公司同时开发一个项目的人多,每次pull一下最新代码就会有很多冲突,有时候合并代码需要半个小时左右,这会耽误开发效率。
业务方的开发效率不够高,开发人员一多,每个人都只想关心自己的组件,但是却要编译整个项目,与其他不相干的代码糅合在一起。调试起来也不方便,即使开发一个很小的功能,都要去把整个项目都编译一遍,调试效率低。
为了解决这些问题,iOS项目就出现了组件化的概念。所以iOS的组件化是为了解决上述这些问题的,这里与前端组件化解决的痛点不同。
iOS组件化以后能带来如下的好处:
加快编译速度(不用编译主客那一大坨代码了,各个组件都是静态库)
自由选择开发姿势(MVC/MVVM/FRP)
方便QA有针对性地测试
提高业务开发效率
iOS组件化的封装性只是其中的一小部分,更加关心的是如何拆分组件,如何解除耦合。前端的组件化可能会更加注重组件的封装性,高可复用性。
2.2如何封装组件
iOS的组件化手段非常单一,就是利用Cocoapods封装成pod库,主工程分别引用这些pod即可。越来越多的第三方库也都在Cocoapods上发布自己的最新版本,大公司也在公司内部维护了公司私有的Cocoapods仓库。一个封装完美的Pod组件,主工程使用起来非常方便。
具体如果用Cocoapods打包一个静态库.a或者framework,网上教程很多,这里给一个链接