1、代码管理
虽然Github名气比较大,但是因为免费的用户不能创建私有的代码仓库,所以我选择了Bitbucket,这个代码管理平台可以免费创建无限个5用户的私有代码仓库,这正好满足我的这个小型开发团队。
2、网络请求组件
网络请求:为了产品后期的高可维护性,采用目前比较流行且成熟的第三方开源框架Okhttp3+Retrofit2+RxJava2来构建本产品的网络请求框架。
Json解析:移动互联网产品与服务端通信的数据格式,如果无特殊原因,一般是采用Json格式的。目前Json解析的开源实现主要有Gson,Jackson和FastJson等框架,各有优劣。本次开发采用Google出品的Gson。
3、本地数据持久化
个人的相关信息等少量数据的本地持久化采用SQLite文件数据库,软件参数等信息保存在轻量级存储类SharedPreferences中。由于原生的SQLite语言复杂繁琐,不易使用,所以将会借助GreenDao对对象数据进行持久化处理。
4、图片相关部分
图片加载:本应用中有多处圆形图片,还有诸如课程详情介绍的大图。为了更好管理和使用内存,本次采用Facebook出品的具有三级缓存机制的强大的图片加载组件fresco,唯一的不足的地方是较Picasso,Glide的体积有点儿过大。
大图浏览:根据手势对图片进行缩放平移都是每一个应用中不可或缺的功能。本次采用Photoview组件来实现对图片的缩放和平移。
5、视频播放模块
不采取第三方播放器,准备用原生的组件封装属于自己的视频加载、播放框架。
- MediaPlayer
- TextureView
6、分享模块
- 社会化分享:采用社会化分享组件Sharesdk,大家都在使用这个sdk,就没有什么可说的。
- 二维码相关:学生证的二维码和课程分享链接的二维码的生成和识别采用Google的开源项目zxing就可以了,无需寻找其他解决方案。
7、推送
目前Google的FCM已经可以在中国大陆使用了,所以此次推送不再使用诸如友盟,小米等推送框架,采用Google的FCM来向手机端推送消息。
※ 所有技术框架优先采取社区活跃,仍旧在维护的框架或者组件。