Swift是苹果2014年发布的编程开发语言,可与Objective-C共同运行于Mac OS和iOS平台,用于搭建基于苹果平台的应用程序。Swift已经开源,目前最新版本为2.2。我们知道Objective-C是具有动态性的,能够通过runtime API调用和替换任意方法,那Swift也具有这些动态性吗?
MVC
任何一个正经开发过一阵子软件的人都熟悉MVC,它意思是Model View Controller, 是一个在复杂应用设计中组织代码的公认模式. 它也被证实在 iOS 开发中有着第二种含义: Massive View Controller(重量级视图控制器)。它让许多程序员绞尽脑汁如何去使代码被解耦和组织地让人满意. 总的来说, iOS 开发者已经得出结论: 他们需要给视图控制器瘦身, 并进一步分离事物;但该怎么做呢?
MVVM
于是MVVM流行起来, 它代表Model View View-Model, 它在这帮助我们创建更易处理, 更佳设计的代码.
在有些情况违背苹果建议的编码方式不是很能讲得通。我不是说不赞成这样子, 我指的是可能会弊大于利。比如我不建议你去实现个自己的 view controller 基类并试着自己处理视图生命周期.
带着这种情绪, 我想提个问题: 使用除苹果推荐的 MVC 之外的应用设计模式是愚蠢的么?
不,有两个原因。
- 苹果没有为解决重量级试图控制器问题提供真正的指导. 他们留给我们来解决如何向代码添加更多清晰的思路. 用 MVVM 来实现这个目的想必是极好哒. (在今年 WWDC 的一些视频中, 苹果工程师在屏幕上的示例代码的确少许出现了 view-model, 不知道是否因为有它才成为了示例代码)
- MVVM, 至少是我将要在这里展示的 MVVM 的风格, 都跟 MVC 十分兼容. 仿佛我们将 MVC 进行到下一个逻辑步骤.
我不会提及 MVC/MVVM 的历史, 因为其他地方已经有所介绍, 并且我也不精通. 我将会关注如何用它进行 iOS/Mac 开发.
cocoapods就不用介绍了,是iOS开发的一个第三方库管理工具。
本文主要介绍如何自己写一个pod,然后注册到CocoaPods上,并将代码放到Github上供别人下载。这基本上是任何一个pod的“标准”上架流程。当然你也可以将pod放到其他的git平台上。
大家可以先看一下我自己写的一个pod,gitub地址,如果你觉得本文对你有帮助,欢迎start和fork ^ ^
前言
一直以来想写一个pod来练练手,但是很多时候都是写到一半就不了了之了,这次写的这个pod,是从之前做过的一个项目中提炼出来的,代码量不大,实现也不是很复杂。主要还是想通过写一个pod来了解pod的发布流程。所以本文的重点不是在代码本身上。
准备工作
本文是假设读者对pod和git有一定了解的基础上进行的。
git,pod该安装的安装好,没安装的自己去Google吧。我这次使用的pod版本是v0.36,不过版本对本文的影响应该不大。