美文网首页
组件化开发

组件化开发

作者: 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'

相关文章

  • Android组件化和插件化开发

    Android组件化和插件化开发 什么是组件化和插件化? 组件化开发 就是将一个app分成多个模块,每个模块都是一...

  • 滚动栏的开发

    滚动栏的开发 1.组件化在开发之前2.组件化在开发之后 组件库开发流程将控件封装成pod库1.pod lib cr...

  • Android 组件化开发实践

    Android组件化开发实践(一):为什么要进行组件化开发?Android组件化开发实践(二):组件化架构设计An...

  • Android组件化和插件化开发

    Android组件化和插件化开发 什么是组件化和插件化? 组件化开发就是将一个app分成多个模块,每个模块都是一个...

  • Vue组件化开发

    ✍目录总览:(组件化概念、组件注册、数据存放、组件数据共享、组件插槽、使用步骤) 一、组件化概念 1. 组件化开发...

  • Gradle实战——组件化的gradle build优化

    组件化gradle build优化 关于组件化,大家可以看我之前的文章,Android组件化开发实战[https:...

  • Android组件化开发实践笔记

    一、什么是组件化和插件化?   组件化开发就是将一个app分成多个模块,每个模块都是一个组件(Module),开发...

  • 浅谈Android插件化

    如今,插件化与组件化的开发越来越广泛的被我们所使用,尤其是许多大公司。 什么事插件化,什么是组件化呢?组件化开发:...

  • Vue 组件化开发

    组件化开发思想 现实中的组件化思想体现(1)标准(2)分治(3)重用(4)组合 编程中的组件化思想体现 组件化规范...

  • iOS端组件化架构开发与管理

    iOS组件化参考: Casa大神的iOS应用架构谈 组件化方案 组件化架构漫谈 开发管理 得益于Git&Cocoa...

网友评论

      本文标题:组件化开发

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