iOS端架构、基本组成与使用说明
一、 app整体描述
app的描述:需求文档+接口文档+程序架构。
说明:新入手的开发人员必须拿到这三个说明文档才能整体了解app功能。
二、app架构描述
1、架构视图

2、分层结构说明
【1】 app主结构分层
| 分层结构 | 功能 | 使用数据 |
|---|---|---|
| UI视图层 | UI数据展示 | Entity |
| crontroller层 | UI跳转组织与简单业务逻辑 | Entity |
| servicer层 | 服务层、处理上层请求 | Entity |
【2】 业务逻辑层说明
整合业务逻辑处理模块、数据访问层、数据处理模块,使用facade模式为上层提供服务支持。 屏蔽底层业务逻辑、数据获取、数据处理细节。
使用继承抽象机制剥离出基本功能,建立起稳定的抽象层依赖; 对外提供依赖注入点。
【3】 数据访问层
| 组成 | 说明 | 使用数据 |
|---|---|---|
| 网络数据访问 | 网络引擎模块 | json |
| 本地缓存数据访问 | 本地文件管理模块 | 归档文件或数据库 |
| 全局内存缓存 | 全局内存数据存储获取 |
三、 各层次类库引进与定制
| 说明 | 备注 | |
|---|---|---|
| UI表示层(View) | 提供开发规则、提供部分基础类库 | 复杂界面提供html5支持 |
| UI控制层 | 提供开发规则 | 归档文件或数据库 |
| Entity基类 | 提供抽象类 | 继承定制、提供参量配置接口 |
| 业务逻辑层 | 提供抽象层 | 继承定制 |
| 数据访问层 | 提供网络访问、本地缓存模块 | 在业务逻辑层配置使用 |
| 数据处理模块 | 全局内存数据存储获取 | 提供加解密、格式转化等功能模块 |
1、 UI表示层(View)
UI组件的开发规则: 1)数据与表示的分离; 2)根据根、干、叶的规则对复杂视图进行分拆开发设计。
普通视图:按设计需求定制; 统计、饼状图、柱状图:目前使用第三方库https://github.com/zzf073/PieChart 后期使用混合开发。
2、 UI控制层
视图跳转控制器: 大部分由系统提供:tabbar、导航控制; 左右滑动菜单:第三方库或自己定制;
单功能复杂控制器:按照容器控制器原则拆分逻辑、或者按照mvvm模式进行设计。
3、 业务逻辑层
按照facade模式设计,对UI层屏蔽业务逻辑处理和数据获取处理功能。 UI层模块将请求操作交给业务处理层或service层处理。
4、 数据访问层
主要设涉及到网络访问模块和本地数据存贮模块。
现在已有成熟的模块可供使用。
5、 数据处理模块:
处理加解密、数据格式转化、编解码处理、常用格式化功能等模块组成。
已有成熟的模块功能可供使用。
三、 业务逻辑层的使用步骤说明
1、获取或配置业务逻辑模块
单例模式:
[FQLoginManager sharedFQLoginManager].userName = self.userName.text;
普通模式:
self.modelManager = [[FQModelManager alloc] initWithModelName:@"FqHomeModel"];
2、配置请求参量
3、发起请求
[[FQLoginManager sharedFQLoginManager] loginWithParams:dic];
iOS端架构、基本组成与使用说明的更多相关文章
- 新浪微博iOS客户端架构与优化之路
新浪微博iOS客户端架构与优化之路 随着Facebook.Twitter.微博的崛起,向UGC.PGC.OGC,自媒体提供平台的内 容消费型App逐渐形成了独特的客户端架构模式.与电商和通讯工具类 ...
- iOS应用架构谈(三):View层的组织和调用方案(下)
iOS客户端应用架构看似简单,但实际上要考虑的事情不少.本文作者将以系列文章的形式来回答iOS应用架构中的种种问题,本文是其中的第二篇,主要讲View层的组织和调用方案.下篇主要讨论做View层架构的 ...
- iOS应用架构谈(二):View层的组织和调用方案(中)
iOS客户端应用架构看似简单,但实际上要考虑的事情不少.本文作者将以系列文章的形式来回答iOS应用架构中的种种问题,本文是其中的第二篇,主要讲View层的组织和调用方案.中篇主要讨论MVC.MVCS. ...
- iOS应用架构谈(一):架构设计的方法论
当我们讨论客户端应用架构的时候,我们在讨论什么? 其实市面上大部分应用不外乎就是颠过来倒过去地做以下这些事情: 简单来说就是调API,展示页面,然后跳转到别的地方再调API,再展示页面. 那这有什么好 ...
- iOS应用架构谈 view层的组织和调用方案
当我们开始设计View层的架构时,往往是这个App还没有开始开发,或者这个App已经发过几个版本了,然后此时需要做非常彻底的重构. 一般也就是这两种时机会去做View层架构,基于这个时机的特殊性,我们 ...
- iOS应用架构谈 开篇
iOS应用架构谈 view层的组织和调用方案 iOS应用架构谈 网络层设计方案 iOS应用架构谈 动态部署方案 iOS应用架构谈 本地持久化方案 缘由 之前安居客iOS app的第二版架构大部分内容是 ...
- iOS应用架构谈 组件化方案
转载: iOS应用架构谈 组件化方案 简述 前几天的一个晚上在infoQ的微信群里,来自蘑菇街的Limboy做了一个分享,讲了蘑菇街的组件化之路.我不认为这条组件化之路蘑菇街走对了.分享后我私聊了Li ...
- iOS应用架构谈 本地持久化方案及动态部署
转载: iOS应用架构谈 本地持久化方案及动态部署 前言 嗯,你们要的大招.跟着这篇文章一起也发布了CTPersistance和CTJSBridge这两个库,希望大家在实际使用的时候如果遇到问题,就给 ...
- iOS应用架构现状分析
iOS从2007年诞生至今已有近10年的历史,10年的时间对iOS技术圈来说足够产生相当可观的沉淀,尤其这几年的技术分享氛围无论国内国外都显得异常活跃.本文就iOS架构这一主题,结合开发圈里讨论较多的 ...
随机推荐
- CodeForces985F:Isomorphic Strings (字符串&hash)
题意:取出字符串Str里的两个串S,T,问对应位置的的字符在否有一一映射关系. hash:对于每个字符s=‘a’-‘z’,我们任意找一个i,满足Si==s,(代码里用lower_bound在区间找到最 ...
- module+standard library.py
#导入模块 import sys sys.path sys.path.append('D:\program files\Python34\PyWorks') #hello.py文件路径 #不用appe ...
- 【BZOJ 2818】 GCD
[题目链接] 点击打开链接 [算法] 线性筛出不大于N的所有素数,枚举gcd(x,y)(设为p),问题转化为求(x,y)=p的个数 设x=x'p, y=y'p,那么有(x,y)=1且 ...
- 实现列表两端完全对其text-aligh:justify 和display:inline-block
dispaly:inline-block 对于块级元素,在IE8-下是不兼容的,所以一般不要用在这些元素上,可以用在inline元素上:span text-align:justify实现子元素完全对齐 ...
- ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 22. 再讲Tag Helpers
深入的讲Tag Helpers 加载app下面的所有的文件夹以及各自文件夹下面所有的js文件. exclude是排除掉Services文件夹和其下面的子文件夹 使用cdn加载远程的js文件 找hidd ...
- ccflow_005.请假流程-傻瓜表单-审核组件模式
ccflow_005.请假流程-傻瓜表单-审核组件模式 ' 用审核组件演示各个流程应用 首先设置节点,填写请假单的 表单方案.选择内置傻瓜表单.我们之前创建的表单就回来了. 可以点击下面的设计傻瓜表单 ...
- hdoj5387【模拟】
题意: 略: 思路: 把所有的角度按照分母的形式写,中间不要约,不要除...(然后我就wa了),本来是想保证结果的正确性,最后会造成约好以后分子很大..>360°: /* 这个案例不错,妈的,随 ...
- hdoj1257【疑问】(贪心)
这完全可以达到3*1e4个啊...如果这样子,这复杂度就炸了吧?... #include<iostream> #include<cstdio> #include<math ...
- bzoj 3238: [Ahoi2013]差异【SAM+树形dp】
首先只有lcp(i,j)需要考虑 因为SAM的parent树是后缀的前缀的最长公共后缀(--),所以把这个串倒过来建SAM,这样就变成了求两个前缀的最长公共后缀,长度就是这两个前缀在parent树上的 ...
- bzoj3195: [Jxoi2012]奇怪的道路(状压dp)
Description 小宇从历史书上了解到一个古老的文明.这个文明在各个方面高度发达,交通方面也不例外.考古学家已经知道,这个文明在全盛时期有n座城市,编号为1..n.m条道路连接在这些城市之间,每 ...