我的第一个Cocoapod在这里🎉—果冻1.0

是的,我的第一个Pod可供所有人使用。 Jelly 1.0 ,这是一个非常易于使用的Viewcontroller-Transition-Animation框架。 无需创建自己的Presentation-Controllers或Animator-Object即可实现精美而丰富的转换。 果冻将为您完成繁重的工作。

我一直想拥有一个公共的Github存储库,其他人可以为它做贡献,我发现自己一遍又一遍地编写自定义的Viewcontroller-Transition-Code 。 因此,为此创建一个易于使用的Pod并不是一个好主意吗?

这是关于我如何创建Jelly 1.0的故事,包括我遇到的所有问题以及找到的解决方案和工具。

塞巴斯蒂安·博尔特/果冻
Jelly仅需几行代码即可在iOS中提供自定义视图控制器转换 💪github.com

脚手架🛠

直到我开始构建Jelly 1.0为止 我与其他人创建的Pod一起工作了很多,但我从来没有一个人建造过。 因此,我开始仔细研究如何生成一个。 使用pod lib创建工作区create [NAME] 是我做的第一件事。

  pod lib创建果冻 

该命令创建了我入门所需的一切。 我只需要回答一些有关我使用哪种语言,想要包括哪些测试框架的问题。

 您要使用哪种语言?  [Swift / ObjC] 
>斯威夫特
 您想在您的媒体库中包含一个演示应用程序吗?  [是/否] 
>是的
 您将使用哪些测试框架?  [快速/无] 
>快速
 您想进行基于视图的测试吗?  [是/否] 
>否

CocoaPods为我创建了一个脚手架之后,我立即打开了工作区文件并进行了Xcode 用典型的Swift 3转换对话框提示我。 因此,出于某种原因,似乎Cocoapods模板尚未准备好Swift 3。 我自己转换了代码并尝试构建Project,但是如您所见,它不起作用。 出现错误❗️

我知道这个 ! Xcode需要为每个目标设置SWIFT_VERSION 。 因此,我在Podfile中添加了安装后阶段,该阶段可以为我完成工作。

  post_install做|安装程序| 
  installer.pods_project.targets.each做| target | 
  target.build_configurations.each | config | 
  config.build_settings ['SWIFT_VERSION'] ='3.0' 
 结束 
 结束 
 结束 

我试图再次构建它。 但是..❌(嗡嗡声错误)

加油…真的!?! Nimble目标内部出现了许多Swift语法错误,因此我将Nimble-Pod更新至5.1.1,以支持Swift 3
一切都已设置并准备就绪🎉

创建一个存储库📦

然后,我必须为我的项目创建一个Github存储库,以便以后将其连接到我的Cocoapod 。 没有比这更容易的了。 我已经拥有一个Github帐户,因此只需单击几下即可创建一个存储库,并将其添加为远程来源。

代码,代码,代码⌨️

知道是时候实际构建Pod,创建类,设计接口等了。在这里我不会谈论代码,因为这篇文章应该集中在我创建Pod所采取的顶层步骤上。 您可以在Github上的Jelly上的Github页面上单独浏览每个源文件 随意建议更改,甚至可以提出请求。 基本上,我的Pod提供了易于使用的API,用于创建基本的自定义Viewcontroller-Transitions 。 您可以自定义很多内容以使其适应您的需求。

  • 持续时间
  • 呈现的ViewController的大小
  • BackgroundStyle(模糊或变暗)
  • 角半径
  • 演示曲线
  • 解雇曲线
  • 方向滑动
  • 滑出方向
  • 弹跳

酷吧? 😎

文献资料

完成编码后,我开始记录整个过程。 在我开始之前,我查看了其他存储库,而很多存储库之上的徽章是引起我注意的第一件事。

徽章✅徽章⚠️徽章❌

一切的徽章! http://shields.io可让您为自述文件创建漂亮的徽章。 您可以为几乎所有内容创建自己的徽章。 我决定选择以下几种。

第一个徽章直接连接到Travis -CI服务,我用于构建和测试我的项目。 它显示当前的构建状态。 第二个连接到我的CocoaPods存储库,并显示Pod的版本号。 我还添加了显示许可证,操作系统以及指向我的Twitter帐户的链接的徽章。 我还使用了GIFRocket和Quicktime来创建动画的GIF,就像上面的一个一样,并将它们添加到自述文件中。

特拉维斯

就像我之前说过的,我使用Travis持续构建和测试我的项目。 Travis超级容易设置。 我刚刚使用Github创建了一个帐户,并将一个名为.travis.ymlYaml文件添加到了我的存储库中,该文件指定了环境和应执行的命令。 Pod Lib已经为我创建了一个,所以我只需要适应它即可。

我必须花一点时间才能使所有功能正常运行。 特别是正确运行Xcode并不是那么容易。 我在Github上打开了一个问题,并立即收到了回复 解决了我的问题。 您可以在这里阅读有关它的更多信息: Travis-Issue 因此,总体而言,这是一个很好的初始体验。

释放野兽

CocoaPods提供了一个叫做Trunk的东西 这是收集所有可可足类的地方。 我只需要在内部指定一个版本号和其他一些东西 项目Podspec文件 。 在将它本地整理到机器上以测试所有设置是否正确之后,我使用以下命令将其推送到了Trunk

pod trunk push Jelly.podspec 

最后,我尝试将其集成到App中,以查看它是否确实有效并且有效。 是的,我把我的第一个可可足类放到了行李箱上。

自己尝试: https : //github.com/SebastianBoldt/Jelly

下一步是什么?

  • 更多过渡
  • 对齐选项
  • 单元测试和UI /快照测试
  • 投注代码文档
  • 果冻警报视图

工具与来源

  • GIFRocketQuicktime创建Pod的动画图片
  • Travis用于自动连续地构建和测试项目
  • Shields.io 用于在自述文件顶部创建徽章
  • Github托管我的狗屎
  • Cocoapods.org上的“制作豆荚” 文章
  • Cocoapods.org上的“规格和规格回购” 文章

更新:

塞巴斯蒂安·博尔特/果冻
Jelly仅需几行代码即可在iOS中提供自定义视图控制器转换 💪github.com

在发布了这篇文章后,包括机器人娜塔莎(Natasha)iOS开发周刊iOS Dev Weekly )在内的一些博客和页面都写了关于Jelly的文章,它已经成为两个多星期以来最流行的Github项目之一🎉🎉🎉。 我也有几天的趋势开发。 感谢分享或推荐本文的所有人。