分享

超千万注册用户APP技术实现简析

 素心如简涵 2020-05-25
一,通过反编译apk以及使用chalres抓包工具,得知
  1. 其答题界面使用webview react实现,并非使用android原生实现

  2. 并且使用体验并不卡顿,webview是使用腾讯X5浏览器内核.

  3. 前端技术实现填空题可输入复杂的数学公式符号,这功能要是用原生实现,简直无法想象,能否实现这么复杂的数学符号输入,都有点悬.(技术选型的重要性啊!!!猿题库中的填空题就是用原生实现,)

    洋葱数学答题体验.gif

二,洋葱数学android版本值得借鉴的地方:
  1. 其采用mvvm架构.市面上真正在项目中真正用上mvvm还是不多的,由此可见洋葱数学在架构上还是挺有追求的.

  2. 采用lottie 非常多的动态效果,并且较为流畅,界面灵动.有句话怎么说来着,静态界面会显得死气沉沉,而一定的动态效果,app质感顿生.

  3. 部分界面采用React native,技术上的多样化尝试.

  4. 大量使用h5(包含答题界面)非常节省开发成本

  5. 其中h5也是采用React实现,前端开发可以做这么多事情,不单单局限于网页实现,也能为移动端添砖加瓦.

  6. 基础Activity类封装有rxlifecycle ,针对Rxjava内存泄漏进行了处理

  7. 其视频播放也只是采用Bilibili/ijkplayer开源库,我们项目中如果以后涉及到需要视频播放的,可以借鉴.(ios和android皆有开源:https://github.com/Bilibili/ijkplayer)

  8. 使用fresco,感觉他们在技术上的尝试更加大胆,关于图片的操作能省心不少.即使fresco会使apk增大几M,仍然还是用了.两个字,欣赏.

CifTln.png

CifSqf.png

CifYsx.png

三,反思

无论是《作业盒子教师端》出题列表界面,还是《学海》,亦或是《洋葱数学》都大量采用前端技术,而用原生实现的非常少.
而我们项目则是偏重于用原生实现,这就导致了在面对很多关于题目的需求时有些束手束脚,比如说:

  1. 学生端填空题因为有很多特殊符号无法输入(如:分数)而导致学生口算题答题体验较差

  2. 答题以及出题体验在低端机型上并不流畅


四,总结:

移动端的开发需要更多前端技术的添砖加瓦,不一定说要完全重构出题,答题的流程,可以在其他功能需求上采用前端技术.

前端技术在移动端上:

  1. 更具有需求的适应性(对于我们项目来说,公式以及特殊符号的显示)

  2. 也能节省不少的开发成本(不用ios以及android同时开发相同的功能)

  3. 前端移动框架已经非常成熟(如vue,react),而且开发的app并不卡.


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多