iOS软件开发框架理解

这个东西是硬伤,框架?自带的mvc? 自带的UIViewController UIView UINavigationController 这些算不算?当然算的,cocoa框架嘛,大家都知道。

其实,我想分享的是:整个软件设计的代码结构管理。在阅读了不少源码后,总结出来的好的设计代码结构分布逻辑。

一开始,我们学会了简单的使用UIButton,UIImage等这些常用的视图类的时候,我们其实已经能够写出来一般的软件了。常见的功能,这里添加一点,那里添加一点,这里一个网络请求,这里一个bool类型判断,例如常见的:isDownding? reLoading?

这些,我们经常在ViewController中就直接写了,于是,飞快的打出来:@property(nonatomic, assign)BOOL reLoading; 然后代码中,多处引用的地方进行处理。

而如果加上一个网络请求,数据柔和,加上几个成员变量,NSArray, NSDictionary, 什么的,再接着,多上几个又臭又长的正则匹配什么的。可以想象,这个ViewController已经非常长了。上图演示:

好了,我们开始来改进代码了,第一步,把基本的view独立出来一个view文件的存放,分离出来。这样子至少省了3分之一的代码,再viewController中,而且极大的提高了代码阅读效率。直接看viewController就能看完整体逻辑。而可以先不管具体实现。

然后接着,我们又觉得还是不够,不够精简。对。于是,我们把数据独立出来。对抽象独立出来。建立专门的对象存储数据对象。可以发现,无一例外的,所有的大型软件都会这么做。也可以省了好多代码,提高阅读代码体验,极大的解耦了代码。这两种方法相当的基础,基本上做完了。至少代码可阅读了。入门了。现在的文件结构是这样的:

好看了好多。

好了,我们已经基本排版好了文件结构以及基本的代码分布问题。但是,这只是入门了而已。

下面的就是基于软件的复杂度需求进行变更的:

1.抽离出来网络请求的部分:

  原因如下:a.网络请求,总会有错误返回码,能方便的增删查减,代码更容易找。

       b.网络请求,虽然自带的网络请求也是可以一句话,BLock返回处理结果,但是,要基于自己的业务逻辑进行封装,一定程度上减少藕合度,提高复用性。

       c.对于特俗的网络请求,例如http的post请求,就需要自己独立进行封装数据格式了。

2.基于数据的复杂度,进行相应处理,可以添加自己的业务逻辑的数据库处理操作。可以添加各种自定义类型的数据类。这样做的好处,也是抽离代码,减少耦合。

最后上传一张前人总结的,仅供参考的图片:

这里的分类方式真的只能仅供参考,具体情况还要基于实际项目的分析,不能一概而论的。

That‘s all。

时间: 2024-11-01 21:51:23

iOS软件开发框架理解的相关文章

iOS软件代码规范

在梳理团队开发流程,收集相关流程资料时,在百度文档上发现的一篇iOS软件代码规范文档:写的非常完善,具有很强操作性.百度上下载时花了一个下载币,现和大家共享.下载地址:http://download.csdn.net/detail/smallhorse87/8660881 在此基础上,我添加了客户端上线前收尾工作的备忘事项: APP中是否装备了必备功能:统计,日志收集及发送,版本检测以及自动更新,用户反馈: 确保产品经理和设计师体验过了APP,签字画押.确保APP体现了产品和设计的构想,没有理解

Enterprise Solution 企业管理软件开发框架

Enterprise Solution 开源项目资源汇总 Visual Studio Online 源代码托管 企业管理软件开发框架 Enterprise Solution 是一套管理软件开发框架,在这个框架基础上开发出一套企业资源计划系统Enterprise Edition. 现将Enterprise Solution开发过程中遇到问题时的解决方案资源共享出来,供参考. 项目源代码地址是 https://enterpriseedition.visualstudio.com/ 1  工具软件界面

IOS软件国际化(本地化Localizable)

IOS软件国际化(本地化Localizable) iPhone是支持语言最多的手机,它支持各国语言及中国少数名族如蒙古等语言,这也是好多少数名族都用苹果的原因.在这一点上我们自主品牌还是要多学习学习.在IOS软件开发中,可以通过几步简单的设置让软件支持多国语言. 言归正传,现在说说如何让自己开发的应用支持多国语言,具体操作如下: 一.新建ios工程,工程名随便,我这儿用的是Localizable联系(本地化). 二.新建完成打开后,点击项目结构树最上面的项目名Localizable联系(本地化)

Enterprise Solution 开源项目资源汇总 Visual Studio Online 源代码托管 企业管理软件开发框架

Enterprise Solution 是一套管理软件开发框架,在这个框架基础上开发出一套企业资源计划系统Enterprise Edition. 现将Enterprise Solution开发过程中遇到问题时的解决方案资源共享出来,供参考. 项目源代码地址是 https://enterpriseedition.visualstudio.com/ 访问帐户[email protected],密码是abc!12345 1  工具软件界面原型 Management Studio 工具类程序的界面原型,

iOS软件体系结构之核心服务层(Core Service)

我们讲到了iOS软件体系结构中的基础层Core OS,那么在核心操作系统层之上的就是iOS系统的核心服务层Core Service,核心服务层主要由两个部分组成:核心服务库和基于核心服务的高级功能.本文对这两种功能做一详解. 一.核心服务层所包含的库如下: 1.Address Book Framework 用于地址簿管理,开发者可以通过这个库管理电话联系人列表,访问联系人列表的数据库,然后进行添加.删除和编辑等其他操作. 2.CFNetwork Framework 提供了一系列的接口,可以让开发

Cisco 4507R交换机IOS软件升级方法

现有设备信息 XIASW#show version Cisco IOS Software, Catalyst 4000 L3 Switch Software (cat4000-I5S-M), Version 12.2(25)EWA7, RELEASE SOFTWARE (fc1) Technical Support: http://www.cisco.com/techsupport Copyright (c) 1986-2006 by Cisco Systems, Inc. Compiled M

如何删除IOS软件更新包

iOS软件更新包是什么? 每次通过iTunes 更新iPhone, iPad 或者 iPod软件的时候,下载的ios更新文件就会保存在mac中.当更新完成之后,这些更新文件就不在需要了,删除它们将释放大量的mac空间.如果你还需要这些文件,可以重新下载. 如何手动删除iOS软件更新包? 1.启动Finder,在菜单栏中点击“前往”-“前往文件夹”. 2.如果是iTunes文件,可以在~/资源库/iTunes中找到要删除的软件更新. 3.同样的,iPad固件文件将被保存在 ~/资源库/iPad中:

iOS应用开发 iOS开发 iOS软件定制

ios应用开发入门课程:ios安装工具 要开发一个应用,就必须用到 iOS 软件开发套件(SDK)以及苹果公司的集成式开发环境(IDE)Xcode.要创建一款优秀的 iPhone.iPod touch 和 iPad 应用,Xcode 可以满足你所有 的需要.其内容有源代码编辑器.图形用户界面编辑器以及其他多种功能,从可定制构建到源代码仓库管理等.Xcode 采用单窗口的形式,并将这种形式称为"工作区窗口",你所需要的大 部分数据都在这个工作区窗口里面.熟悉 Xcode 以后,你就能轻松

iOS开发SDWebImageOptions理解

iOS开发SDWebImageOptions理解 原文 http://www.cnblogs.com/WJJ-Dream/p/5816750.html typedef NS_OPTIONS(NSUInteger, SDWebImageOptions) { SDWebImageRetryFailed = 1 << 0, SDWebImageLowPriority = 1 << 1, SDWebImageCacheMemoryOnly = 1 << 2, SDWebImag