美文网首页ReactiveNativeAndroid开发经验谈Android开发
超千万注册用户APP技术实现简析-android《洋葱数学》

超千万注册用户APP技术实现简析-android《洋葱数学》

作者: 绮怀先生 | 来源:发表于2018-04-23 21:43 被阅读809次

    洋葱数学

    零,前言

    洋葱数学完成超1.2亿元C轮融资
    这个产品今年年初刚融资一个多亿,估值几亿人民币,因此想看看他们程序员水平怎么样,学习借鉴一下


    一,通过反编译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并不卡.

    相关文章

      网友评论

      • 冰冰的冻结:大佬你们的公式在安卓上是用什么渲染出来的呢
        绮怀先生:@冰冰的冻结 举手之劳:blush:
        冰冰的冻结:@心灵捕手__ 谢谢啦
        绮怀先生:@冰冰的冻结
        不是大佬 :joy:
        1,这不是我们的产品,我们没有做这个功能,只是看一下洋葱数学是怎么做这个键盘的
        2,js 当然也能混淆,不过也是防君子不防小人
        3,加固过的apk比较难还原反编译出来(我不会):grin: 不过市面上比较多的apk都只是混淆核心代码,不会去加固
      • 冰冰的冻结:大佬你们也是教育吗 公式键盘有实现demo吗
        绮怀先生:@冰冰的冻结 恩,不过洋葱数学的自定义键盘是用js实现的,经过了混淆,很难剥离出来.
        冰冰的冻结:@心灵捕手__ 像一般加固后的app能反编译出来吗
        绮怀先生:@冰冰的冻结 这个没有喔:joy:

      本文标题:超千万注册用户APP技术实现简析-android《洋葱数学》

      本文链接:https://www.haomeiwen.com/subject/kbkrlftx.html