iOS端设计文档

2017-07-25  本文已影响131人  白石洲霍华德

引言

项目版本管理

使用git管理代码,便于团队开发!

开发环境

操作系统:Mac os
开发软件:Xcode8.0
手机系统:iOS8.0~iOS10.3.3

安全策略

在涉及个人帐户信息有关网络请求,采用https方式,通过非对称密钥对请求串加解密,加密方式(MD5、AES )

框架目录结构

项目目录.png

工具箱

工具箱.png

工具箱:开发中用到的常用工具,让开发者的开发更加简易

基类(XLBBase)

基类继承关系图
XLBBase.png
项目基类列表
项目基类列表

网络请求 (XLBNetwork)

采用AFNetworking,目前被95%以上的app所采用,并进行了二次封装,加入了缓存策略。采用block进行回调,返回成功、请求异常、请求失败。

项目基类列表
XLBNetWork.png
使用工具
示例代码

<pre> WEAKSELF
[self showProgress];

[BaseHttpRequstManager loginu_name:u_name u_passwd:u_passwd type:type listener:^(NSString *error, NSDictionary *resultDic) {
    
    if ([CommonUtils IsOkNSDictionary:resultDic]>0) {
        
        if ([resultDic[@"code"] isEqualToString:@"CSD000"]) {
            
            [weakSelf HttpLoginResponse:resultDic];
        }
        else{
        
            [weakSelf hideProgress];
            
            NSString  *error=resultDic[@"msg"];
            NSString  *code=resultDic[@"code"];
            [self checkRetCode:code str:error];
        }
        
    }
    else{
        
        [weakSelf hideProgress];
    }
    
    
}];

</pre>

项目开发模块目录

项目开发模块.png
业务模块开发
业务模块开发

开发模块设计模式

MVC设计框架
基本流程

Model请求并对数据进行处理,将处理后的模型数据传递给viewcontroller,viewcontroller拿到数据后控制view的显示。
MVC 设计模式,显示模块与功能模块的分离。提高了程序的可维护性、可移植性、可扩展性与可重用性,降低了程序的开发难度


MVC模型图.png

界面布局

使用Masnory工具,对Autolayerout和Size Classes的布局方式进行了封装,简单实用,节省了大量代码

数据存储方式

根据产品需要,数据从服务器下载和本地存储,本地数据分缓存和内存保留,经常读取的写入缓存,内存数据按大小,小的写入plist文件,大的写入数据库,用FMDB

地址信息:
plist文件写入。路径:(沙盒/Library/Caches)
用户数据本地化:
NSUserdefuat 本地存储。路径:(沙盒/Library/Preferences)
本地文件路径使用规范
1.Documents:
只有用户生成的文件、其他数据及其他程序不能重新创建的文件,应该保存在<Application_Home>/Documents 目录下面,并将通过iCloud自动备份。
2.Library:
可以重新下载或者重新生成的数据应该保存在 <Application_Home>/Library/Caches 目录下面。举个例子,比如杂志、新闻、地图应用使用的数据库缓存文件和可下载内容应该保存到这个文件夹。
3.tmp:
只是临时使用的数据应该保存到 <Application_Home>/tmp 文件夹。尽管 iCloud 不会备份这些文件,但在应用在使用完这些数据之后要注意随时删除,避免占用用户设备的空间

事件处理

有通知,代理和block(使用代理最多)

模型定义

使用MJExtension对请求数据进行model转化,是一套字典和模型之间互相转换的超轻量级框架,能对不同数据类型和不同数据结构进行处理。

网络图片加载

采用SDWebImage库进行处理,可以对图片进行异步加载并缓存

热补丁

ReactNative(跟王者荣耀一样)

支付功能

支付宝,微信,银行等支付功能严格按照文档开发,并做二次封装

地图

高德地图,百度地图(推荐使用百度,百度的定位准,开发简单)

代码规范

按照自己定制的代码开发规范进行开发,规范文档和代码要上传git,或者svn

统计

友盟统计,TalkingData

项目打包

通过蒲公英快速打包,生成二维码提供给出测试扫码下载

模块功能细分

由于整个APP都是我一个人做,我就是不细分了

总结

GitHub地址: https://github.com/jwh1650715313/app_demo

上一篇 下一篇

猜你喜欢

热点阅读