在全面拥抱移动互联网的时代,传统金融机构转战移动金融应用已是大势所趋。但银行转型面临的问题非常之多,不仅仅是机构属性复杂和用户留存率的问题,在开发层面也一样陷入了开发效率较低、缺乏统一化标准、运维困难和推广精准度不足等难题之中。北京时间12月20日下午,腾讯云发布了新一代移动金融开发平台,针对上述问题,在更好地帮助开发者层面上给出了一份可行的方案。

多端服务需要架构统一

据腾讯金融云总裁胡利明介绍称,腾讯移动金融开发平台(Tencent Mobile FinTech Platform,TMF)整合了腾讯在移动产品中开发、测试、发布和运营的技术能力,针对金融产品体验差、玩法少和渠道单一的问题打造,能降低开发周期,帮助金融机构低成本高效率的打造移动金融服务。

一般来讲,移动金融应用可以有四个渠道获取用户。HTML5页面可以让用户达成初步了解,进而实现引流;微信公众号则可以给用户提供内容,帮助获取用户;而小程序则可以提供一些基础的服务,满足用户轻量级的需求;最终才是APP,可以帮助用户完成金融交易等重量级的内容服务。

在APP端有安卓和iOS两个生态,加上上述提到的H5、小程序、公众号渠道,开发者通常情况下要面对共5个不同的端口,面向不同的端口开发不同的内容。但实际上,金融机构想要完成瀑布式的研发流程,很难将这些事情全部完成。银行的业务往往提供给多个平台进行开发,每个开发商都有基于自身框架的开发方式,多个平台就意味着多个应用和框架,很难同时将其运营好。这种情况下就需要一个统一的开发平台解决多供应商生态下的统一问题。

TMF一体化开发平台则提供了“1+3+N”的方式来解决这些问题。“1”指的是统一的开发平台提供了开发、运维、运营和安全等内容统一化。“3”则是提了传播、场景和AI三大工具箱,“N”则是实现多端研发。简单点来说就是可以用一套代码在不同端口的复用,提升开发效率。

从TMF的设计体系层面来看,最外层是设计的语言,整体过程中需要使用共同的语言;第二#层,则提供共同设计原则保持框架;第三层提供金融业务为基础,基于业务展开,理解业务需求和特点,以达到进一步落地;最中心层是设计的基础层,包括了组件库、模板库、流程库和合规库。

统一框架解决不同体验问题

在金融移动客户端存在一些问题,通常不同业务有着不止一个客户端,这样带来的挑战包括:

  • 不同开发框架和开发体验的不一致,以及代码和运维运营方式的不一致,从而使机构的运营和运维变得困难;
  • 不同内容不能复用,也无法统一规划和统一使用;
  • 基于不同设计体系,用户体验设计也无法做到统一。

如果是统一框架开发,本身会有相互隔离,导致多端协同无法完成,多平台传播问题难以拉动,因而无法推动业务很好的发展。而TMF平台要解决的重要问题就包括开发框架的统一和推送的统一。

统一开发框架的设计原理与实现

在移动端开发一般有两种办法,一种是在开发过程中用纯前端——也就是H5的方式来实现,其优势在于能够跨端实现、开发效率高、在iOS和Android等多平台都支持,也可以做动态发布,但问题在于体验比较差,对原生部分调用和控制较弱。

而另一种则是在终端开发实现,利用原生代码调用控制能力比较强,体验也比较好。但问题在于开发效率比较低,而且无法跨平台实现;在发布时也比较麻烦,需要打包到应用市场才能发布,不能直接更新生效。虽然当下可以通过热补丁实现,但整体来看依然有一些瑕疵。

为了兼顾效率和效果,腾讯云决定推出一个新的开发框架Hippy,帮助使用者用纯前端的代码实现终端效果。代码采用了前端的代码实现,但效果基本能达到终端的原生效果。

如果类比java的跨平台,Java强调可以跨平台,但其本身只是在原生之上套用了一层虚拟机,通过虚拟机来驱动内容效果。因此很多原生架构是在通过纯C语言开发时性能很好,但问题在于不能跨平台,代码无法复用。Hippy在终端的情况也是类似的,于是腾讯云技术团队通过虚拟层实现跨平台,基于这种理念打造了纯粹的跨平台能力,用户也能基于此实现跨终端开发。

目前来看,大多数企业会采用H5来编写移动端页面。而在落地时,业界有很多流行的H5框架,基于对金融行业的了解来看,目前大多数开发商都在使用Vue和React来做。因此腾讯云技术团队在研发时也是支持Vue和React的,从而降低未来开发商的迁移难度。

如上图所示,Hippy的架构最上层是组件层,向下架构包括了Render解析层和SDK等。此外,配套上Hippy本身还需要提供一些发布工具,这样可以支持离线包和热更新,保证进一步提升用户体验,使其与原生体验基本一致。

Hippy与H5进行对比的话,在运行时占用空间较小,对内存占用也比较小,加载时间比较短,运行的帧率比较高,对原生的控制能力强,体验和native原生近似。同时用H5前端流行的框架Vue或React开发出跨平台的应用,兼顾H5开发的高效率和Native的体验性能。

此外,TMF的一个重要方向是通过API开放,其核心一是要解决安全问题,二是在架构层实现微服务化。所以目前TMF在统一开发框架上通过接口实现了与微服务技术的打通,前端服务可以被拆成组件和模块来看待,在后端调用上则直接采用的是微服务思路。

总结来看,借助一份代码实现多端复用的的核心在于开发的语言用的是H5,本身就有多端实现的特色,但是整体呈现效果可以实现原生效果,因此可以一份代码多端使用。

统一开发下的移动推送能力实现

在TMF平台中,移动推送能力也是值得重点关注的一点。其具有每分钟1800万推送的能力,单推毫秒级和全推秒级的能力,与腾讯系应用共享推送通道能够保障高抵达率和稳定长连接,并且能够精准分析用户按上百种标签实现精准效果推送。那么这些是怎么实现的呢?

首先需要明确的是,在移动端推送主要需要解决的问题是推送和营销的问题。从底层核心技术来说,TMF平台主要是基于LBS技术的位置推送。平台的优势主要有以下四点:
第一,具有统一推送能力。TMF除了具备自身推送的通道,还可以和厂商的推送通道进行打通和互补,整体具有统一性;
第二,推送的核心保护率很高。通过SDK实现保活,因此只要用了SDK保障活跃性就可以保证触达。但问题在于,有的硬件平台和软件可能会杀掉部分进程,这就导致用户收不到Push消息。因此,想保障推送效率就需要借助一些高频服务,保活共享SDK通道,实现多端保活。
第三,平台支持基于LBS定位的推送。可以针对某个商圈的人进行高精度的推送,让整体推送从通知的属性变成营销的属性。
第四,平台支持公众号、短信、各类厂商、智能家居等各种内容分发方式,不同的接口提供推送,同时,平台也支持按照标签的进行的定向推送。移动推送技术架构如下图所示:

统一化运维提升运营效率

开发框架的统一解决了开发的基础,但想进一步提升效率还需要在后续的运维和运营阶段继续进步。平台在这两个方面主要提供了数据埋点模板化、A/BTest常态化、统一发布工具等能力。

在数据运营方面,数据分析人员80%的时间在数据提取和处理上,传统的数据采集需要进行全埋点导致效率不高。TMF平台提供埋点方式全埋点、可视化埋点和代码埋点三种埋点方式,并根据不同的需求场景,结合不同的埋点方式。

全埋点数据多但需要进行数据清理和找到关键数据;可视化埋点可以针对热点调整集中性的变化,也可以由分析人员进行埋点,由于本身具有可视化因此可以有非开发性埋点,便捷而且具有标准化模板;针对一些个性化问题难以解决时,就可以用代码埋点解决,多个方式综合使用来解决不同场景下的不同需求。TMF平台提供的6大分类,27小类,80+个指标,可以改变本末倒置的数据分析问题,提高数据应用效率。

为提升发布效率,借助A/Btest提供系统化的版本,可以提升整体开发效率。具体流程如下:首先需要提供整体开发框架,支持做两个版本;然后需要能够发布,数据分析平台可以提供不同标签的用户进行不同的验证工作,然后把AB版本推给打有不同标签的用户群进行试用并收集用户反馈;再是提供预设的工具,进行大规模的预演,当看到数据后改进业务数据和体验,再进行数据预设,然后构建产品,做ABTest。当然,这些测试都需要系统化和工程化的理论体系来支撑。

进一步来讲,一些相对简单的需求可以通过可视化开发让业务人员基于开发平台完成,在发布时可以免于测试,灰度能力支持预览可以先检验问题。可视化开发在UI上的调整是在平台框架上进行的,不会触及代码就不会产生Bug。另外,开发往测试转移的流程也已经在需求方完成,所以不会涉及漏洞和问题,这样既完成了需求测试,也可以实现免测试发布。

为了继续提升开发效率,平台还提供了三大工具箱。传播工具箱能够释放社交玩法,基于LBS和腾讯大数据库准确引导用户;场景工具箱则是为应用提供跨界互通的能力,基于社交生态触达用户。AI工具箱则可以拓展智慧玩法,可以提供静默活体检测等方式降低人脸识别使用门槛,产品设计的创新与AI能力的应用可以提供更多玩法,吸引用户使用。

在安全方面,平均每款金融APP存在65个漏洞,并且其中23%为高危漏洞。因此产品需要增强用户的安全信心,具体做法可以有三个方面,首先,APP需要有相关品牌的背书,强绑定自家品牌;其次,操作安全要求在一些操作中设计为可逆的,当错误不可被避免时,应该对用户进行明确引导;第三,实时呈现收益让用户腾出更多的时间来明确感知财产。

整体来看,TMF平台对于金融移动端开发的效率提升具有重大意义,能够跨平台实现统一。无论对用户还是开发者而言,都可以拥有更好的使用体验和更丰富的场景体验。

一套代码称霸5大端口,移动金融应用还能这样开发?相关推荐

  1. Google 重磅发布 Flutter 2 !一套代码横扫 5 大系统

    (图片来自谷歌官方) 整理:郑丽媛 今日,谷歌重磅发布了下一代 Flutter -- 专为 Web.移动和桌面而构建的 Flutter 2! 作为谷歌免费开源的 UI 工具包,Flutter 帮助许多 ...

  2. Linux网络编程——端口复用(多个套接字绑定同一个端口)

    在<绑定( bind )端口需要注意的问题>提到:一个网络应用程序只能绑定一个端口( 一个套接字只能绑定一个端口 ). 实际上,默认的情况下,如果一个网络应用程序的一个套接字 绑定了一个端 ...

  3. 多重影分身:一套代码如何生成多个小程序?

    前言 影分身术,看过火影的都知道,一个本体,多个分身. 大家肯定要问了,那小程序开发跟影分身术也能扯上关系?没错,那自然就是:一套代码,多个小程序啦. 各位先别翻白眼,且听我细细说来. 如今小程序发展 ...

  4. 老手机能升级华为鸿蒙,华为正式发布鸿蒙2.0!实现手机、平板等多平台共用一套代码!...

    1. 华为发布HarmonyOS 2,向万物互联时代迈进 华为消费者业务软件部总裁王成录在HarmonyOS2及华为全场景新品发布会上表示,鸿蒙操作系统是一个全栈解耦的架构,一套代码可以在手机上使用, ...

  5. 如何让一套代码适配所有iOS设备尺寸?

    简介:随着移动互联网设备和技术的发展,各种移动设备屏幕尺寸层出不穷,折叠屏.分屏.悬浮窗等等,面对越来越多样的屏幕,如果为每种尺寸单独进行适配,不仅费时费力,还会增加端侧代码的开发与维护压力.如何让一 ...

  6. api 微信内置浏览器js_多端开发框架uni-app入坑指南,一套代码适用微信、头条等小程序...

    前言 hello 小伙伴们,现在我已经正式入坑 uni-app 了.uni-app 已经发布好几个月了,期间也是踩坑无数,但是官方秉承着不抛弃不放弃的精神,积极解决开发者的各种简单的.复杂的问题,在此 ...

  7. 使用 Gradle 实现一套代码开发多个应用

    代码地址如下: http://www.demodashi.com/demo/11297.html 在文章 使用 Gradle 对应用进行个性化定制 中,我们能够针对一个应用的正式服.测试服.超管服等其 ...

  8. 一套代码两端运行不靠谱?是时候放弃 C++ 跨 Android、iOS 端开发!

    「Write once,run anywhere!」想必是很多开发者以及企业梦寐以求的愿望,但是在分析跨平台中的种种成本之后,我们不禁发问,这种策略真的靠谱吗? 近日,云存储公司 Dropbox 就此 ...

  9. 【一套代码小程序NativeWeb阶段总结篇】可以这样阅读Vue源码

    前言 前面我们对微信小程序进行了研究:[微信小程序项目实践总结]30分钟从陌生到熟悉 在实际代码过程中我们发现,我们可能又要做H5站又要做小程序同时还要做个APP,这里会造成很大的资源浪费,如果设定一 ...

最新文章

  1. 人脸检测--Scale-Aware Face Detection
  2. MySQL数据备份语句
  3. opengl加载显示3D模型AC类型文件
  4. URLCache探索
  5. 内联函数和编译器对Go代码的优化
  6. 继承之接口知识点和思考练习
  7. oracle判断数据出现交叉,Oracle move table分析
  8. python telnetlib怎么下_Python telnetlib模块使用
  9. python基础之小数据池,is和==区别 编码问题
  10. C# RabbitMQ(一)介绍
  11. boot idea无法识别spring_基于gradle和springboot的IDEA项目@SpringBootApplication无法识别,怎么办?...
  12. JAVA: 初级项目之基于Swing界面的仿QQ(一)
  13. 图像处理保研面试_北航信息与通信工程方向保研面试题集
  14. 【案例】某市规范性文件合法性审核信息管理系统和行政执法监督平台建设案例
  15. 软件工程技术专业的大一新生们,咱们一起讨论一下如何学好这门专业罢(喜
  16. 如何返回正确与错误信息
  17. 不用USBASP芯片也可用USB,纯AVR实现USB通讯:AVRUSB
  18. 南理工计算机学院贾修一,南京理工大学考研研究生导师简介-贾修一
  19. 在与SQL Server建立连接时出现与网络相关的或特定于实例的错误
  20. 《Android 应用 之路》 聚合数据SDK

热门文章

  1. GitHub发福利:30多万元资源,学生可以免费用
  2. Django1.11模型使用
  3. Python每日一练0004
  4. Apache(httpd)配置--用户认证,域名跳转和访问日志配置
  5. 启动oracle em命令
  6. git学习(持续踩坑中
  7. [2010山东ACM省赛] Greatest Number(数的组合+二分搜索)
  8. 您的安全设置不允许网站使用安装在您的计算机上的ActiveX控件的解决方法
  9. Segment Routing — SRv6 — SRv6 协议解析
  10. EdgeGallery — MECM — 系统架构