项目建议

作者: Stark_Dylan | 来源:发表于2016-04-04 12:53 被阅读485次

从项目创建开始

  • 版本支持 建议iOS 7.0+

  • 语言选择:** Objective-C**
    OC,Swift。 OC对于大多数iOS开发者来说都没有问题,Swift只有部分开发者熟悉并且运用自如。 创业公司建议使用OC,这样便于后续人员的维护以及扩展,等到时机成熟了接入Swift进行混合开发即可。如果喜欢Swift开发或者熟悉这门语言的话可以直接用。

  • 工程结构:主工程 + cocoapods
    现在的iOS项目一般都离不开第三方库,所以要选择合理的第三方库管理,使用OC当然要配合cocoapods,如实使用Swift可以选择carthage等。不建议自己手动管理第三方库。

  • 原生/H5: 建议原生为主+H5

关于用原生好还是用H5好,一直在争论,其实适应项目最重要。如果我们不止要做这些:AndroidApp, iOS App, 微信公众号;
如果我们的H5人员很缺,并且职业技能不是很好,并且公司中恰好有人对原生开发很熟悉,并且开发效率很高,那么还是优先选择原生的,某些小部分的界面可以使用H5开发。相反,则以H5为主,原生为辅助,App中,iOS、Android、微信公众号等相同的界面使用H5开发,App转悠的部分,比如说导航条,标题栏,登录等界面才使用原生实现,另外,webView里边有H5的点击事件,也许是URL链接,也许是JS,都不要让他直接在当前web容器中跳转,要在native端做一下截获,使用原生跳转。如果要使用一些已经开源的框架,比如说ReactNative,一定要慎重,这些框架学习的成本比较高,而且效率、性能未必好。

如果本地以web为主,那么就要优化这里的显示。webView分为两种方式,一种是加载本地的h5界面,另一种是加载服务器端的h5界面。加载服务器的比较简单,直接load一下就好了,加载本地的h5界面,相对比较复杂,但是加载速度要快于前者。

  • 架构选型 MVC/MVP/MVVM 建议使用MVC
    • MVC 经典模式 Model-View-Controller
    • MVP 解耦V M
    • MVVM 优化MVP,双向绑定,View的变动自动映射到VM,反之亦然。

别的架构模式在设计,不知道要比MVC复杂了多少倍,为了降低成本,还是直接使用大家都熟悉的MVC比较好。

项目
  • 网络层 使用手机号码+验证码登录

网络层开发已经相对成熟,有很多的成熟框架,比如说afnet,mknet等、所以要注意的只有安全的问题。 现在大多数的app的登录流程就是 用户名加密码登录,然后获取到token存到本地,很容易被抓包拦截然后模拟请求。所以这里强烈建议使用手机号码+验证码登录的方式,设计简单,而且很安全。

接口数据一定要使用JSON,但是这里服务端要额外的注意JSON的数据类型,举个例子,JSON不支持Date类型,如果传的话,可能会被解析成 某年某月某日时区这样的,客户端很难处理,有些bool会直接返回true,false字串,甚至还会返回null,这些都会导致客户端显示出错或者解析出错。 所以服务端一定要保证数据类型与数据的正确,给客服端开发减轻压力。

一般的JSON格式

{
 error : 0, //错误码
 message : "hello", // 提示信息
 data : {...}, //数据
}

另外接口的设计一定要加上版本号,在客户端也有方便的切换版本的地方。举例: /v2/login.api -> /v3/login.api 在客户端可以直接封装一个小方法 path('/login'), 这个path方法就是自动加上版本号的,便于统一升级等。

  • 数据层 缓存一定要做好,使用数据库

阅读类的App需要做本地的缓存,这个可以看一下简书,最好缓存一定的文章给读者看。 这里缓存策略一定要做。 最好在本地自己维护数据库,然后把每次网络请求的数据更新到数据库中,然后加上过期时间等策略控制本地缓存大小,提供缓存清理等功能。

  • 展示层 SB/XIB + 纯代码

界面的开发上建议选择 SB/XIB + AutoLayout与纯代码结合开发。 因为App中大部分的几面比较简单,使用SB可以加快开发的速度。

  • 基类的定义

ViewController, NavigationController最好定义基类,便于统一操作以及一些代码便捷。

参考内容
  1. 项目的结构:

总体看起来是这样的


每一个模块内是这样的


  1. 代码规范需要注意。

  2. 关于部分第三方库的选择。

JSON->Model : YYModel, JSONModel
Network : AFNetworking
ImageSyncLoad: SDWebImage, YYImage(yyimageView提供了gif等支持)
WaterFlow: CHTCollectionViewWaterfallLayout
HUD,alert: SVProgressHUD, LGAlertView
DB: FMDB
Debug: FLEX
Animated: pop, canvas.

相关文章

  • 项目立项管理

    立项管理内容 项目立项一般包括提交项目建议书、项目可行性研究、项目招标与投标等内容。 项目建议书 项目建议书应包括...

  • 项目建议

    从项目创建开始 版本支持 建议iOS 7.0+ 语言选择:** Objective-C**OC,Swift。 OC...

  • 1.11 项目立项管理

    项目立项管理 一、项目立项 项目立项一般包括提交项目建议书,项目可行性研究、项目招标与投标等内容。 一)、项目建议...

  • 信息系统项目管理师知识要点

    一、项目立项管理 提交项目建议书 项目可行性研究 项目论证 项目评估 项目招投标 签订合同 二、项目建议书内容 项...

  • 眼观六路 耳听八方 看似可有可无的项目建议书忽视不得(参考)

    庙算多者胜——多维度编制项目建议书 许多项目为了完成立项,才编制项目建议书。许多项目建议书纯粹是为了应付立项。自从...

  • 项目建议书

    项目建议书:又称立项申请,是项目建设单位向上级主管部门提交的项目申请文件,是对拟建项目提出的总体设想。项目建议阶段...

  • 项目立项管理

    项目立项一般包括提交项目建议书、项目可行性研究、项目招标与投标等内容。 项目建议书(又称立项申请)是项目建设单位向...

  • 合同能源管理项目的实施流程

    1、 项目双方接触。 2、 用能诊断。 3、 项目建议: 节能服务公司(EMCo)向客户提交节能项目建议书,介绍节...

  • 软考笔记之3项目立项管理

    项目建议书 项目建议书,又称立项申请,是项目建设单位向上级主管部门提交项目申请时所必须的文件; 是对拟建项目提出的...

  • 3.1 项目立项管理

    一、立项管理内容 项目立项一般包括项目建议书、项目可行性研究、项目招标与投标等内容 1. 项目建议书 又称立项申请...

网友评论

  • rolei:json还是用第三方库 Mantle 比较方便,好处多多
    Stark_Dylan:@rolei 嗯但是Mantle上手姿势略复杂于JSONModel 哈哈 都ok的
  • 无夜之星辰:请教一下 项目中的三方库越多 是不是会越卡
    Stark_Dylan:@蔡宛峰 项目卡 指的是?

本文标题:项目建议

本文链接:https://www.haomeiwen.com/subject/jdgulttx.html