「技术」如何快速开发一款APP?


近日 , 蚂蚁金服开展了“共战‘疫情’ , 技术破局”数字课堂线上直播 , 我们将系列演讲整理并发布在 “蚂蚁金服科技” 公众号上 。
今天 , 将为大家分享围绕支付宝在移动端如何实现轻耦合、弹性动态的开发模式 , 深度解析其技术选型及实战经验 。 演讲嘉宾是来自蚂蚁金服mPaaS客户端核心开发的温盛章 , 以下为演讲整理全文:
我们提供了一个移动开发平台叫做mPaaS , 现在在阿里上面已经正式的发布了 。 他首先是源自于我们支付宝的一个移动端的组件 , 目的是为了打造快速迭代的架构和动态化的能力 。 它是一整套的方案 , 包括了移动端的开发SDK , 然后移动端的构建工具和后端的一整套的服务和工具作为一个整体体系的产品 。 我们主要要做的事情是使用移动开发平台mPaaS来打造一个性能更优的APP 。 今天我们在这边直播分享的内容是 , 支付宝使用mPaaS的过程中的一些动态化的实践 。
弹性动态的端上架构解析 我们在这边 , 首先要介绍的一个点是弹性动态端的能力 。 首先我们在支付宝中面临的一些问题是有海量的业务 , 然后传统方面上的一些Hybrid方案 , 这是一个老生常谈的话题了 。 然后第二个是高可用和及时快速发布的监控运维体系 , 这里面包含了像局部条件、灰度的能力 , 然后快速回滚的能力和快速迭代的一些能力 。 然后第三点就是开放出来我们的Hybrid的一些解决方案 。
Part1:利用 Hybrid 架构应对海量业务需求
第一部分我们介绍一下如何使用一个Hybrid的价格去应对海量的业务需求 。 我们知道支付宝它是一个国民级的APP , 它里面承载了非常多的业务 , 如果使用传统的迭代方式 , 肯定满足不了我们现在这些业务的需求 , 比如说我可能需要一个双11的活动 , 双十二的活动或者是一些别的运营活动的时候 , 我们需要非常快速的一些迭代的能力 , 不仅在IOS端和安卓端都需要有 , 而且也需要进行一些快速回滚 。 我们目前的话 , 在移动的端上有4种这样的能力 。 这里是举个例子的4种能力 , 一种是Native , 然后是Html5 , ReactNative , Flutter是最新的一个跨端的解决方案 , 目前也是在我们尝试的范围之内 。
「技术」如何快速开发一款APP?
本文插图
我们可以看一下这4个能力 , 它的对比的情况是这样的 。 对于Native的开发同学来说 , Native的开发成本是最低的 , 因为我们出身于Native开发 , 所以基本上不需要去学习一些什么特殊的东西 , 所以我们对整套的一个UI架构的体系和UI的API的调用之类的都是非常的熟悉 , 然后它的用户体验也是低的 , 我们基于像iOS UIKit以及 Android一整套的UI架构 , 如果是使用原生方案的话 , 它的体验在目前的移动端的硬件能力上体验都是非常好的 , 但是他的动态性就变得非常的弱了 。
我们没有办法去下发新的Native一些能力 , 包括甚至去写一个营销组件 , 这样的方式也是做不到的 。 由此我们再找移动端早期的时候 , 为了引用重大问题 , 我们第一想到的就是Html5的方案 。 他的话是基于WebView的这么一个技术栈 , 然后把前端的页面写进来 。 同时为了和Native这边进行交互 , 我们介入了当时讲了非常多的一个叫JsBridge的一些组件 , IOS的JsBridge和安卓的JsBridge规律 。 基于两套的JsBridge的方案 , 我们可以跟Native之间的能力进行打通 , 打通之后我们能获得一些简单的交互上的简单的交互和复杂的运营的能力 。
比如说这个时候我们需要动态的下发一个运营页面 , 那么我们可以使用Html的写一个Html的网页 , 然后把它发布到我们的平台上 , 然后这时候下发到Native端 , 快速的去渲染出这样的页面 。 在随着 Html5技术的发展 , 我们开始去思考能否使用Html这种DSL去写 , Html去写一些我们想要的东西 。 在当时那个阶段的话 , 我们就产生了像React-JS、React-Native这种这种方案 。


推荐阅读