Android开发前的设计

谈一下自己对App的整体框架的看法,感觉就是建立一套规范,让我们的开发思路更清晰明了,写代码更高效,代码更易于拓展和维护;我感觉一般就是考虑项目架构、功能模块、需要用到的技术、框架、需要用到的界面控件、数据的存储和需要的一些工具类和测试工具;

了解APP的功能

设计App的整体框架,首先要清楚我们要做的是什么,清楚需要做哪些功能和一些细节,这样才能保证我们之后的设计和决定是正确的;

项目架构

常见的架构有MVC、MVP、MVVM,项目的架构一般是根据项目的大小和功能来决定的。项目比较小,功能比较简单,也不准备后期继续迭代开发,选择MVC简单点快速完成开发就可以了;稍微复杂点,大一点的项目可能就需要MVP或者MVVM来开发,界面和数据分离,保证代码是清晰干净的,易于维护;要是项目的业务比较复杂,业务变化较为频繁,可能选择MVP-clean,每个业务单独写一个用例,保证代码可复用性、灵活性;要是界面数据是经常刷新变化的,使用MVVM自动刷新也挺好;要是项目很大,那可能使用组件化开发比较好…其实也取决于其他开发成员对架构的理解和使用情况

开源框架

网络请求

根据项目的功能来选择一些框架,比如接口多是使用HTTP的话,选用Retrofit或者其他网络框架,即时通讯可能使用Mina或者其他socket框架;

接口设计和加密

会考虑一下接口如何设计,制定一个统一的协议;同时数据的加密也是需要考虑,使用什么的方法加解密

图片加载

网络图片加载比较多可能选择一下Glide、Picasso、Fresco等图片加载框架,有动态图片可能选择Glide、android-gif-drawable

数据库

数据存储,数据少可能使用OrmLite这种简单易用的就行,数据多了考虑速度快的框架比如Realm;

热门框架

是否使用比较热门的技术来编写代码,比如rxjava、eventbus、Dagger2、Kotlin

界面布局

主要是项目里面有没有什么特殊的控件,有没有使用什么动画,或者material design,可能一些界面还需要用到网页

技术难点

先看一下需要用到哪些技术,能实现的,规划一下怎么去实现;没法实现的比如地图、支付什么的,考虑使用什么三方SDK;

功能模块

根据业务划分一下功能模块

测试和优化

使用一些测试的工具来帮助开发,比如内存泄漏检测LeakCanary、界面卡顿检测BlockCanary;运行时出错如何收集错误;如何检测发生了ANR;还有统计用户爱好习惯什么的;就是如何完善APP

框架搭建

新建项目,先分一下层,集成一些基础类,集成一些工具类;

代码规范

代码规范什么的就不用讲了,其实每个项目都一样;

结语

这些都是自己的一些看法,肯定还有一些没有考虑到的地方,会不断的更新;有时间也会不断的完善每一步具体的内容

    原文作者:Tyhj
    原文地址: https://www.jianshu.com/p/8799d9fc3897
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞