美文网首页
组件化开发

组件化开发

作者: wpf_register | 来源:发表于2020-05-28 17:18 被阅读0次

    一.组件化介绍

    组件化模块划分

    基础组件: 宏定义/自定义分类/自定义工具类
    功能组件: 项目中常用功能,如:定位/推送/分享
    业务组件: 根据具体业务而定,如:聊天/商城
    中间组件: 负责界面路由/传参/回调
    宿主工程: 类似一个壳子,组合各个组件,形成一个完整的App

    组件化实质

    组件化其实是把每一个功能模块拆分成一个一个的Pod库;比如项目中要用到AFN,只要Pod一下,便触手可及~;
    我们制作自己的Pod库,然后把它集成到项目中.

    二.基础学习

    索引文件(.podspec文件)
    1. 记录一个组件的名称/版本/资源储存路径/维护者信息等
    2. 每个组件都必须有一个索引文件
    索引文件库(Spec Repo)
    1. 存放索引文件的仓库
    2. 储存在CocoaPods服务器上,我们下载或更新Pod的时候会把这个仓库拷贝一份到本地,
      本地存放路径:~/.cocoapods/repos/
    3. CocoaPods提供一个公共库,储存在本地的路径为:~/.cocoapods/repos/master/
    4. 创建私有仓库,储存在本地的路径为:~/.cocoapods/repos/自定义仓库名
    组件模板
    1. CocoaPods提供用于快速创建组件的模板
    2. 里边可以制作我们的代码,可以做单元测试等,包含一个对应的索引文件
    3. 组件化就是以这个模板为基础,制作自己的组件

    三.创建私有组件

    1. 在码云(或者其他Git仓库)创建一个私有的仓库,
      当做<私有索引文件仓库>,后边用来储存索引文件(项目名称:mySpecs)

    2. 在码云(或者其他Git仓库)创建一个公开的仓库,
      当做<组件仓库>,后边用来储存组件(项目名称:WFPodlib)

    3. 关联私有索引文件仓库
      把创建的索引文件仓库关联拷贝到本地

      pod repo add [仓库名] [仓库URL地址]
      
    4. 本地新建文件夹(名称:testPod)
      下载组合模板到testPod

      cd [文件夹全路径]/xxPod
      

      设置组件名(WFPodlib)

       pod lib create [组件名]
      

      组件基本设置

    // 使用哪种系统的模板
    What platform do you want to use?? [ iOS / macOS ]
    > ios
    // 使用哪种语言
    What language do you want to use?? [ Swift / ObjC ]
    > objc
    // 是否创建测试Demo
    Would you like to include a demo application with your library? [ Yes / No ]
    > yes
    // 使用哪种测试框架
    Which testing frameworks will you use? [ Specta / Kiwi / None ]
    > None
    // 是否需要测试视图
    Would you like to do view based testing? [ Yes / No ]
    > No
    // 测试Demo的类前缀
    What is your class prefix?
    > WF
    
    1. 代码制作
      把自己的代码(类文件)直接复制到xxPod/WFPodlib/WFPodlib/Classes里

    2. 配置组件索引文件

      cd [文件夹全路径]/xxPod/WFPodlib
      //检查本地索引文件(passed validation 表示通过验证;--allow-warnings可忽略警告)
      pod lib lint
      
    3. 制作好的代码Pod 到组件测试工程中,可以进行编译 运行

      cd [文件夹全路径]/xxPod/WFPodlib/Example
      pod install
      
    4. 把做好的组件推送到自己的组件仓库

      // cd 到组件根目录
      cd [文件夹全路径]/xxPod/WFPodlib/
      //初始化git
      git init
      git add .
      //提交一个Git版本
      git commit -m "xxKit组件初始化"
      //关联码云上的组件仓库
      git remote add origin [组件仓库URL]
      //推送版本到master分支(-f强制推送,覆盖掉之前的所有文件)
      git push origin master -f
      //添加版本标签(标签号必须与索引文件里的标签号一致)
      git tag 0.1.0
      //标签推送到组件仓库
      git push --tags
      //检查远程索引文件(passed validation 表示通过验证)
      pod spec lint
      
    5. 关联CocoaPods服务器

      //cd 到xxKit组件根目录
      cd [文件夹全路径]/xxPod/WFPodlib
      //推送组件的索引文件到服务器,并告诉服务器存在哪个私有仓库中
      //[私有仓库名] : xxSpecs
      //[组件名] : WFPodlib
      pod repo push [私有仓库名] [组件名].podspec --allow-warnings
      查看本地的CocoaPods仓库(可看到公共库和自己的私有库)
      pod repo
      
      
      //更新本地CocoaPods仓库
      pod repo update
      //搜索刚才制作的组件
      pod search [组件名]
      
      

    项目中引用私有组件

    1. 新建一个工程,并添加 Pod
    2. 配置Podfile文件
    //全局添加
    source 'https://github.com/WFregister/mySpecs.git'
    //单独添加
    pod 'WFPodlib', :git => 'https://github.com/WFregister/WFPodlib.git'
    

    相关文章

      网友评论

          本文标题:组件化开发

          本文链接:https://www.haomeiwen.com/subject/ewlaahtx.html