一个教育类App的前世今生(3)—— 技术选型

技术选型 / 来自网络

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来向手机端推送消息。

※ 所有技术框架优先采取社区活跃,仍旧在维护的框架或者组件。

你可能感兴趣的:(一个教育类App的前世今生(3)—— 技术选型)