开发一个优秀的APP需要考虑哪些方面
发布时间:2018-10-25
最近要开始一个新的app,鉴于之前开发过程中遇到的一些问题考虑到如果搭建app的时候考虑周到的话会比较省劲否则遇到坑的话容易崩溃,所以研究了一下app开始前的一些准备工作。
1、App的设计:虽然对于一个开发者来说基本没啥决定权,但是如果设计不好看大大降低了用户体验和开发的成就感。所以尽量与产品和美工沟通设计成MD(Material Design)风格。
2、版本支持 考虑到大部分手机市场占有率,以及用户体验我们app选择支持4.0以上版本,开发过程中难免用到一些三方库由于少到api限制会要求最低版本不得低于4.0也就是Api应该是18吧。当然api如果大于23也要做6.0适配等问题。
3、网络模块 原来项目用的Xutils但是后来为了安全起见需要将网络http改成https,但是Xutils不支持,这也就是说要选择一个比较靠谱的框架,ok,retrofit很多大项目也在使用应该是比较好的选择。当然网络请求这块分装也是边角重要的,万一所有接口都要加个参数,加密处理等,如果有统一封装改一个地方就好,而不是一个一个改。
4、App图片处理部分 调取相册相机也是大部分app需要的,这里代码还比较多所以建议选择一个能满足需求的开源框架,matisse,图片加载Glide。
5、数据缓存GreenDao。
6、文件管理模块可以提供一个全局的文件管理模块,负责文件的增删改查,支持文件的上传与下,对于下载需要支持多线程并发下载,断点续传等功能。
7、组内,组间通信机制,通信类型可以分为点对点和点对面,点对点只有唯一的接受者可以响应消息,点对面则类似与消息广播,即所有注册过的都可以响应消息,在android中,通常使用消息机制来实现,但消息机制的耦合度比较高。目前也有一些通信框架,如EventBus,Otto等事件总线框架,这些框架极大地降低组件间的耦合,但无法实现点对点通信,因此建议消息机制和事件总线机制结合使用。
8、数据处理框架,当发出数据数据请求后(走子线程),经网络模块返回数据(一般为JSON格式),json数据一般不能直接交给View层使用,需要解析成对应的Model,同时如有需要,还要缓存数据,因此这些流程可以抽象成一个数据处理框架,这个框架可以人为接收数据请求的url,并将数据Model返回给Activiy或Fragment,对于JSON数据解析,建议使用fastjson,速度快且稳定,缺省值也比较完善。
9、其实Android中有很多操作,如数据、下载图片,清除缓存都需要在子线程中执行,往往很多时候都是直接起一个Thread来做,这样就会很乱而且线程多了难以管理,因此可以抽象出一个线程调度模块,他维护一个线程池,如果有需要线程的花就通知线程调度模块模块取线程来做,这样就方便统一管理。当然当然第三方库中的线程操作我们无法归到线程调度模块来管理,但其他涉及到线程的操作都应该统一来处理。
10、App的安全性考虑
Android app安全问题很少有人重视,但这的确是一个很严重的问题,一些好的app经常被人破解,建议将一些核心算法写成。so库重要的逻辑放在服务器端。数据请求采用加密,另外打包时候APk时至少要混淆代码,还可以采用APK加壳机制,这类的防范措施永远不嫌多。
---------------------
作者:guoyanfang_yuge
来源:CSDN
原文:https://blog.csdn.net/guoyanfang_yuge/article/details/79580440
版权声明:本文为博主原创文章,转载请附上博文链接!