iOS App架构上的一些具体设计
非大神,只作个人记录用,大家将就着看看,欢迎指正和讨论。
忽略代码的组织形式,忽略构建工具例如:maven,cocoapods,gradle之类的东西,我觉得这些只是我们将代码集成起来构建工程的一个工具,或者换句话说是你打算把代码放哪儿,怎么放;这些内容先不在这个里面做讨论
大方向上用继承,小方向上用扩展
多年前一位老大的经验之谈吧,想想是很有道理的。先我们拉个文件夹叫Core,里面放上类似以下文件结构目录:
|
|
大方向上用继承
Base里是一些类似对UIKit之类的继承,比如BaseViewController在这里面我们可以把一些常用的接口进行声明or定义。
|
|
有人会说这些个空方法没啥意义,确实没啥太大的意义。它们只是改变以后你自己的代码讲一些UI写在哪里,将通知事件写在哪里;好比这个地方,我们的通知事件就已经包装在addNotifiaction和removeNotifiaction两个方法里了,包括正常情况下是在viewcontroller的viewWillAppear方法里去增加事件监听,在viewWillDisappear方法里去移除监听。
再比如configUI以后我就只需要将所有的ViewController继承BaseViewController,那么所有的UI初始化的东西都可以丢到configUI这个方法里去做,以后哪部分代码有问题都容易查找,并不会显得杂乱。
小方向上用扩展
再看另一个地方Base下有个BaseExtension文件夹,这个是干嘛的咧,所谓的小方向用扩展嘛,extension关键字是很有用的,会让你的代码更加的简洁而又不需要继承这么厚重。这里面就是一个简单的应用场景,我们在开发App的时候总有一些提示tips想展示给客户,这种tips一般有通知的形式的,我们可以稍作封装一下就不用每次都去写tips的字体,显示时间等一些代码了。懒,很重要~!
|
|
这样子,在一个ViewController里需要展示通用的tips的时候只需要一句话
|
|
OK~这样子project代码的整洁度包括可读性都会有一个不错的提升,当然有童鞋会喷,你的ViewController里怎么啥都有耦合严重,额,确实需要改改,but先看这些部分吧~~相信这部分总有一些简单而实际的启发。先这样子吧 O(∩_∩)O哈哈~