iOS A/B Test 方案探索

引子

公元2016年末,2017年初,某做旅行产品的互联网公司内,产品经理疯狂的提 A/BTest 需求,以至于该司程序猿谈AB色变,邪恶的产品经理令程序猿们闻风丧胆,苦不堪言…咳咳,扯远了。

近期团队做了很多 AB Test 的业务需求,在这种需求日益见多的情况下,我们不得不提升我们的代码组织方式,以适应或更好的在此类需求上维护我们的代码。所以有了本文,本文主要阐述了业务团队在做 AB Test 的一些想法和思路,才疏学浅,不灵赐教。

A/B Test

A/B Test 是什么?

既然产品经理在 A/B Test 胯下疯狂的输出,那我们就要弄清楚,什么是 A/BTest?为何产品经理如此痴情于 A/B Test ?

去哪儿网络电话VOIP技术解析

随着出境旅游的需求不断攀升,出境WIFI、当地玩乐、在线向导等服务受到了更多客户青睐,去哪儿需要在游客走出国门之后,做好从接机、联系当地向导到落地接待等整体服务升级,才能赢得口碑,留住客户。

如何让游客在国外也能找到回家的感觉,随时随地、轻轻松松地和去哪儿取得联系,在遇到困难的时候,能够及时地向去哪儿寻求帮助,是去哪儿一直在努力提升的地方。

为了保证游客在国外也能和国内无缝衔接,去哪儿App的用户可以直接通过免费网络电话拨打国内的客服电话。在没有任何宣传推广的情况下,上线7天已经有超过30%的用户选择网络电话入口呼叫接入,这个数据显示用户对于网络电话的认可度是很高的。

Android NestedScrolling嵌套滑动机制

Android在发布5.0之后加入了嵌套滑动机制NestedScrolling,为嵌套滑动提供了更方便的处理方案。在此对嵌套滑动机制进行详细的分析。

嵌套滑动的常见用法比如在滑动列表的时候隐藏相关的TopBar和BottomBar,增加列表的信息展示范围,让用户聚焦于App想展示的内容上等。官方出的Design包里也有很多支持该机制的炫酷控件,比如CoordinatorLayout,AppBarLayout等,在用户体验上有很大的进步。

Pitcher无线接入系统

Pitcher是用Go语言实现的订制化的反向代理。

Pitcher处于流量入口的位置,其稳定性是设计时首要考虑的目标,于是提出了一核多路的思想。即一个涵盖基本功能且稳定运行的核心 + 多个扩展功能的旁路系统。和微服务的理念有相似之处。

指尖上的数据分析—Qunar QAV

动互联网时代核心便是怎么样让产品更快速的前进,而怎么得到第一手快速准确的数据便是各个team面临的最重要的问题,传统的有埋点方式在做深度业务挖掘、公司整体商业分析等重要项目上是不可替代的。

但在面对庞大的长尾数据需求时明显力不从心,QAV这种无埋点技术具有极强的通用性,能全面的收集用户行为数据、方便的在多客户端上快速移植搭建,正好能够与业务自身的有埋点方式达成高低搭配,让各种简单琐碎的数据需求在无埋点的体系下被快速解决,各个业务部门的数据团队腾出更多的时间对业务数据进行深度挖掘,这样才能一起驱动公司良性的成长发展。

Qotector——客户端安全平台

App中包含有如此多的敏感信息,那么目前市场上的App足够安全吗,能否被轻易的破解呢?

  • 资源安全:安装包文件可随意被反编译,资源、隐私文件泄露,外部存储信息泄露

  • Java代码安全:破解者可以随意的修改未经保护的Java代码能,以达到绕过检验等目的。
    下面展示的是一个阅读类App,图中左边的是App的原始代码,检查了用户是否登录、是否购买该文章,然后决定显示购买提示或者文章内容。破解者经过简单的反编译、修改代码、重打包,就可以将判断语句改成:未购买则显示文章内容。

  • Native代码安全:既然Java代码能够被轻易的反编译,那么C/C++编写的Native代码能否保证App的安全呢。多年前确实存在有这样的说法,因为直接反编译Native代码,得到的是下图中的汇编代码,非常不容易阅读,修改。

当前网速较慢或者你使用的浏览器不支持博客特定功能,请尝试刷新或换用Chrome、Firefox等现代浏览器