我已经开发了适用于iOS的应用程序,并发现有许多重复的任务。所以我想编写即将开始的项目将子类化的基类,这样可以花费更少的时间,更轻松地跨项目跟踪代码。最关心的是
编写好的基础模型类,它有很多策略(核心数据,存档,...)。此模型类还具有一些JSON到属性的转换技术,如Mantle,因此设备和服务器上的模型是相同的
撰写优秀的基础网络课程(主要使用AFNetworking)
编写好的基础ViewController 类。我看到一些重复的任务:避免使用ScrollView键盘,记录,崩溃跟踪,从Nib加载视图,......
查找并使用UIView,UINib,Autolayout等其他优秀类别 ...
这些只是我的担忧。这似乎是一个模糊的话题,我不会问如何使用库或如何制作可重用的组件。
我只想询问有关制作这类基类的经验以及我可以从中学习的内容
答案 0 :(得分:2)
您并不是唯一一个遇到此问题的人,我在许多项目中遇到过同样的问题。 所以这个问题的最佳解决方案是开源库。好的解决方案通常会经常更新并跟上Apple的SDK版本。我将解释我用什么来保持样板代码的最小值。
基本模型 - 由于我只使用网络和核心数据模型,因此我使用MagicalRecord
表示核心数据,JSONModel
表示基于网络的模型(映射到API回复)。
网络课程 - 与AFNetworking
以及之前提到的JSONModel相结合,我发现不需要任何其他内容。我可以轻松扩展类别。
UITextField
中有许多库可以避免使用键盘UIScrollView
,但主要是我只使用自定义代码。但如果我需要,我会关注TPKeyboardAvoiding
。对于崩溃跟踪,我只使用Crashlytics或Flurry,他们提供自己的SDK,因此我不需要太多代码。我不再使用NIB了。
网络上有许多有用的类别。我创建了自己的存储库作为CocoaPod,它将所有有用的类别保存在一个pod中。我将存储库保持最新,并在需要时添加新类别和小类。它的缺点是你通常不需要所有这些,所以有时会加载太多的代码。但到目前为止,我没有注意到任何性能下降。如果您愿意,可以查看GitHub,它的外观。
不要忘记项目初始化,我一直在使用自己的自定义Xcode项目模板来解决这个问题。