序言
最近做了一些组件化方面的工作,一步一个坑的走了过来,这篇文章就是写一下感受吧
为啥要组件化
• 随着项目的不断迭代,各个模块会越来越复杂,各个模块相互依赖,而且每个模块可能会有共同的业务逻辑,导致整个项目维护起来比较麻烦。
• 可以采用组件化,把每个业务逻辑和模块分离,单独管理,这样比较方便维护,各个开发人员只需要关心好自己的模块就好了。
组件化好处
• 分工更加明确,提高开发效率
• 复用性更好,能迅速的组成更多的App
组件化思想
• 就好比封装控件,复杂的控件一般都会封装,组件化只不过是把每个模块单独抽出来,作为一个小工程,然后在组件一个一个完整的项目。
如何组件化
• 接下来就不多说,先来一个damo
首先新建一个项目,名字叫PodSpecTest.
接着需要到github上面新建一个repository,名字叫PodSpecTest

新建Repository后就需要将项目和这个Repository建立连接,打开终端cd到之前新建的项目下面,接下来输入下面命令:
git remote add origin https://github.com/MacJi2015/PodSpecTest.git
建立连接之后我们还需要添加cocoaPods开源许可文件,用下面这个命令:
echo MIT>FILE_LICENSE
接下来到了重点啦,我们需要新建podspec文件 ,用下面这个命令:
pod spec create PodSpecTest
接下来就是用命令来修改文件:
Pod::Spec.new do |s|
s.name = "PodSpecTest" # name项目名称
s.version = "0.0.1" # version版本号,可以随意填
s.summary = "I'm GuoJia.My E-mail is 1439125361@qq.com." # summary 描述
s.description = <<-DESC
I'm GuoJia.My E-mail is 1439125361@qq.com
DESC
s.homepage = "http://github.com/MacJi2015/PodSpecTest" # homepage主页,可以任意地址
s.license = { :type => "MIT", :file => "FILE_LICENSE" } # license 必须是MIT
s.author = { "guojia" => "1439125361@qq.com" } # author作者信息
s.platform = :ios, "7.0" # platform平台限制
s.source = { :git => "http://github.com/MacJi2015/PodSpecTest.git", :tag => "#{s.version}" } # source 代码资源
#source_files代码文件,不能放xib什么的,只能放h,m,mm,c结尾的文件
s.source_files ="PodSpecTest/PodSpecTest/**/*.{h,m,mm,c}"
#resource_bundles资源库文件,xib,png,图片什么的
s.resource_bundles = {
'PodSpecTest' => ['PodSpecTest/PodSpecTest/**/*.{storyboard,xcassets,xib,png}']
}
现在这里就不详讲podspec文件的编写啦,改天我用一个篇目专门讲这个podspec的编写
podspec文件编写成功之后,我们可以先用下面的命令来验证文件编写是否正确
pod spec lint PodSpecTest.podspec --allow-warnings
但第一次使用的时候需要先把代码上传github,然后再使用上面的命令。出现下面的就成功啦

这样就完成了一大部分的事情,接下来就是上传spec文件到cocoapod上,上传代码之前需要先注册trunk账号,用下面的命令
pod trunk register xxx@xx 'Your name' --description='macbook air'
验证一下,是否注册成功可以用下面的代码:
pod trunk me
如果出现下面的情况,说明你已经注册成功啦:

注册成功之后就上传spec啦:
pod trunk push PodSpecTest.podspec --allow-warnings
接下来就可以用 pod search PodSpecTest来查询一下啦。
如果没有查询成功可以先用rm ~/Library/Caches/CocoaPods/search_index.json,删除一下缓存,然后再重新搜索就可以。
但是我悲剧啦,PodSpecTest这个名字好多人用过啦,但是你们可以用其他名字。
到此就结束啦,希望可以帮到你们
网友评论