iOS组件化开发流程
iOS组件化开发流程
- 前期准备工作
- 注册仓库账号(gitHub/gitLabel/码云)
- 注册trunk
- 创建组件模版
- 在组件模版里编写自己的代码
- 修改.specs文件
- push到仓库
- 给组件打一个tag
- 校验specs文件
- 关联私有仓库或上传cocoapods
前期准备工作
组件化开发之前,我们先了解一下,什么是组件化,为什么要组件化开发
举个很简单的例子,我们平时在开发的时候用的第三方库,我们直接pod下来就可以使用,跟项目是分开的独立模块,就可以理解为一个组件,为什么要组件化开发呢,当我们的项目越来越庞大的时候,各模块之间耦合度比较高,尤其存在多个项目时,有的模块是一样的,那么我们就可以把这个模块分离处理,单独维护,供多个项目使用,节约开发和维护成本
注册仓库账号(gitHub/gitLabel/码云)
开头说到,我们要把公用或者项目不相关模块分离出来,那么这个分离出来的组件,这个分离出来的模块我们放在远端仓库,通过cocoapod管理,那么我们需要有远端仓库的账号,如果是公司项目,一般这个组件存放在自己公司gitLabel,如果公用组件可以放在gitHub上
1.这里以gitHub为例 ,在gitHub上创建一个仓库,名字跟你的组件名叫一样;
2. 拷贝仓库地址,备用,这里我以LQAlertViewKit为例子;
注册trunk
首先查看是否注册过,命令如下:
pod trunk me
如果没有注册,使用如下命令进行注册:
pod trunk register '邮箱地址' 's-ITBoy'
然后您的邮箱会受到一条信息,点击其中的链接进行验证,这样既完成注册了
接着您就可以操作如下命令进行查看:
pod trunk me
创建组件模版
我们可以在桌面新建一个文件夹,用来存放自己的组件,使用终端cd到这个文件夹下,使用 pod lib create [组件名],
例如pod lib create LQAlertViewKit
在组件模版里编写自己的代码
在创建的组件模版下面,有个classes文件,把自己写好的类,拷贝到这里面来,
删除replace文件,pod install,你会发现项目会出现这两个文件,如果你的组件有依赖库,还需如下图
修改.specs文件
push到仓库
cd到目录下,commit代码,然后push到仓库
git push origin master -f
给组件打一个tag
git tag 0.1.0
版本号需要和specs版本号一致,如上图
git push --tags
校验specs文件
1.如果我们需要把组件索引存放在自己私有仓库里,那么我们还需要在github上建一个私有仓库,例如
然后把liqiuSpecs文件 添加到本地repo
pod repo add [仓库名] [仓库URL地址]
,仓库url地址https://github.com/qingqiusuomeng/liqiuSpecs.git
然后验证specs文件
pod lib lint LQAlertViewKit.podspec —sources='https://github.com/qingqiusuomeng/liqiuSpecs.git,https://github.com/CocoaPods/Specs.git' --verbose --allow-warnings --use-libraries --skip-import-validation
关联私有仓库或上传cocoapods
验证通过后推送组件索引到git,
pod repo push liqiuSpecs LQAlertViewKit.podspec --allow-warnings
1.如果443,取消代理
git config --global http.sslVerify false
如果要上传到cocoapos验证方式
pod lib lint —verbose --allow-warnings
pod trunk push 组件名.podspec --verbose --allow-warnings
iOS组件化开发流程相关推荐
- iOS组件化开发从开始到完整总结
一.组件化介绍 需求来源 随着项目规模不断扩大,业务模块增多,开发过程中会有多条产品线(多人或多小组开发不同的功能);如果用传统的开发模式,会导致代码臃肿,编译速度越来越慢,开发效率低下,代码维护成本 ...
- iOS组件化开发实践
目录: 1.组件化需求来源 2.组件化初识 3.组件化必备的工具使用 4.模块拆分 5.组件工程兼容swift环境 6.组件之间的通讯 7.组件化后的资源加载 8.OC工程底层换swift代码 9.总 ...
- 组件化开发之-我们有什么必要使用组件化开发?
原创 2016-05-19 背景介绍: 首先简单说一下为什我会写这篇文章呢? 源于今天讨论,提到这个组件化开发和以前没有多大区别,都需要合作编码,共同开发某些相同模块,本来之前都是按照模块划分来开发的 ...
- iOS 的组件化开发
2019独角兽企业重金招聘Python工程师标准>>> 在一个APP开发过程中,如果项目较小且团队人数较少,使用最基本的MVC.MVVM开发就已经足够了,因为维护成本比较低. 但是当 ...
- 【iOS】利用CocoaPods创建私有库进行组件化开发
之前使用CocoaPods管理过第三方库,前面也有翻译文章介绍过CocoaPods的配置方法,随着项目越来越大,很多公司会使用CocoaPods进行组件化开发,下面利用一个demo介绍一下. ###什 ...
- iOS 组件化,插件化,模块化设计思路分析
iOS 组件化,插件化设计思路分析 前言 随着用户的需求越来越多,对App的用户体验也变的要求越来越高.为了更好的应对各种需求,开发人员从软件工程的角度,将App架构由原来简单的MVC变成MVVM,V ...
- NOW直播——Flutter组件化开发方案
作者:腾讯NOW直播 -koudleren(任晓帅) 前言 前面讲了Flutter和Native的混合开发模式,Flutter作为Native工程的一个Module存在,这样可以有效的将Flutter ...
- Android之组件化开发
转载请标明出处:[顾林海的博客] 个人开发的微信小程序,目前功能是书籍推荐,后续会完善一些新功能,希望大家多多支持! ##前言 在以前的项目中都是建一个基础库,项目依赖基础库,主项目中集成了所有的功能 ...
- android组件化开发视频教程,教你打造一个Android组件化开发框架
作者简介 本篇来自 lucky_billy 的投稿,分享了他的开源组件化框架,详细地讲解框架形成的思路,希望对大家有所帮助. lucky_billy 的博客地址: 解读开源框架设计思想 B站学习视频 ...
最新文章
- linux环境变量管理器,运维 - linux(ubuntu) 环境变量管理 (持续更新)
- NET中验证控件表达式汇总
- softened softmax vs softmax
- java中数组属于哪种类型_在Java中,关于数组描述正确的是
- 邓公数据结构C++语言版学习笔记1
- java cxf实现webservice接口方式之不依赖spring
- GUI中axes使用subplot时的清空及axes大小的固定的解决方法
- 网络原理 | TCP/IP中的连接管理机制 重要协议与核心机制
- python json删除字段_如何使用python删除json对象?
- python集合的元素可以是_Python - 集合与元素之集合定义和基本操作方法
- 人员优化浪潮下,苟住要紧。
- STM32单片机蜂鸣器实验
- wow.js动画插件
- MATLAB图中图绘制(局部放大图)
- 搜狐财报:年度盈利,长跑依旧
- mysql sus bench_susbench性能测试工具
- 企业管理中育人的一些心得
- 研华PCI1716L的C#编程
- 如何更高效、系统地学习3D视觉?
- 谁的青春不似梦,谁的梦里不青春