小程序和H5或者RN有什么区别?优越性在哪里?

长期以来,移动互联网界一直在寻找一种既能获得Native原生的体验,又可以低门槛快速开发的技术。在这个过程中出现了很多尝试,例如React Native(RN),RN本质上是轻量化Native开发,在Native基础上做减法;H5的特点是开发成本较低,可以做到比较灵活,但缺点在基础信息获取方面(如地理位置、手机信息、播放器等)和顺滑体验方面无法做到Native的效果;

就在这个背景下,微信小程序也给出了自己的方案,它的做法是在H5的标准上做Native能力的加法,赋予了小程序很多Native的能力,微信通过自行研发的小程序运行时,为小程序提供了大量的API层面能力支持,如地图、导航、画布、滚动视图等方面都能提供支持。

小程序的优越性体现在既保留了H5开发的便利和灵活性,又可以达到媲美Native体验,配合微信11亿用户的社交网络,越来越开发者选择微信小程序的技术的。

据小程序团队透露,目前已经50万+的开发者在从事实际的开发,小程序已经成为移动互联网领域“事实”的标准。伴随着这种趋势,阿里、百度分别在2017年的8月和2018年的3月启动了自己的小程序项目,围绕着支付宝和手机百度APP几个超级APP在移动互联网领域再次攻城略地。小程序已然成为近几年最炙手可热“现象级”技术。

小程序是如何运行的?它的工作原理是什么?

小程序的出现不是一蹴而就,而是在移动互联网近10年的业务、场景积累上逐步发展起来的。Web开发具有高效、灵活、门槛低的特点,但弊端在于所有的页面都依赖浏览器的渲染,浏览器的能力就是的web研发的上限和边界。为了克服这个问题,于是便有了JS-Bridge这种方式,将很多常用组件内置到应用中,当内嵌组件足够多的时候,再做一层封装,形成了JS-SDK,其本质没有差别。

小程序在JS-SDK的基础上,一方面进一步开放和拓展原生的能力给到Web前端调用,另一方面,页面渲染(Webview Render)的UI层和逻辑层,使用了两个独立的线程。如下图所示:

什么是小程序运行时?

小程序运行时本质上是一个处理Web页面渲染、数据逻辑交互的虚拟机,这个虚拟机提供了丰富的原生能力供小程序调用(API、组件、AI能力等),极大的拓展了Web应用的能力边界,尤其是在诸如滚动视图(scrool-view)、导航(navigator)、图片预览(cover-image)等组件的提供,使得前端开发人员在使用现有的web前端技术,就可以开发出接近原生体验的应用。

其实微信可以分成两部分:即时通讯部分(IM)和小程序的运行渲染引擎(运行时)。小程序的运行的离不开运行时,它作为一个基础支撑已经深度和微信整合。正是利用了微信11亿的巨大的社会协同网络,赋予了小程序方便的转发、分享能力,为商业应用创造了一个崭新的蓝海,所有人都可以利用的这个平台去更好的触达、服务客户。

当你获得这么一个引擎,你会如何改造你的App?

以往业务部门要发布一些新的功能的时候,用户必须要主动更新App,而且任何一个局部功能的变化升级需要去重新去应用市场再操作一次,成本很高。由于并不是所有的用户都去更新,造成IT团队需要花费大力气去维护多个不同的版本。这种方式造成用巨大的资源浪费和用户体验的不便利。

如果用小程序,这个问题会迎刃而解。首先,小程序可以独立的去更新,App作为了一个载体,很长的一段时间内,不需要被频繁更新。其次,每个小程序可以按照业务具体需要去独立发布各自的版本,不同的小程序之间的更新升级彼此独立、互不干扰。最后,由于小程序运行的沙箱机制,保证了不论是哪个小程序出现Bug、崩溃等情况,不会拖累应用本身,即便出现严重问题,也不过就是把它下线即可。

凡泰小程序运行时是面向全行业的“小程序解决方案”,它借鉴了被大家广发熟知的微信小程序概念,在技术上对微信小程序做兼容,开发工程师在现有的技能上可以直接上手。企业可以基于这套合规、安全的小程序运行时,配合整个小程序的上下架运营平台,自己就成为了一个“微信”。真正把这些技术赋能于现有的业务,App的更新也不再束手束脚,既松绑了业务,也松绑了IT研发。

那小程序对用户来说,会不会有门槛?

并不会。首先,小程序的体验和原生几乎没有差别,对用户的来说是“透明”,不细致观察,用户甚至都不知道自己在使用小程序。其次,因为用户其实每天都在接触各种各样的小程序,已经实际上已经嵌入到我们生活的方方面面。比如用户在使用微信坐地铁、买电影票就在用小程序;打开淘宝购物,许多商铺就是小程序;打开百度搜索,出现的还是小程序。

互联网公司实际上已经对用户完成了“教育”和普及。接下来券商可以考虑如何利用好小程序的技术,结合小程序的优势、特点,逐步把现有App的一些业务切换到小程序上来。每个业务单元可以基于小程序进行敏捷迭代,好的产品离不开10000小时定律,让产品团队可以不断的围绕业务场景去打磨、优化,以提供更好的体验和服务。同时借助小程序一次开发多次上架的特点,更好去利用微信的社交网络优势,在获客、触达、营销方面可以做更多的创新和尝试。

任何事物的发展都具有周期性,显然小程序的这波红利已经到来, 今天的创新可能就是明天的标配。当务之急,尽早上船拿到“船票”。

文章来源:凡泰极客微信公众号finogeeks

如果希望了解更多小程序运行时的细节或者具体应用场景可以访问凡泰小程序开放平台

小程序运行时如何助力传统APP转型?的更多相关文章

  1. 小程序学习三 一切的开始app() 小程序的注册

    现在打开 app.js //app.js App({ onLaunch(options) { //小程序初始化 // console.log("小程序初始化", options) ...

  2. 微信小程序开发——前端如何区分小程序运行环境

    前言: 之前用vue做h5项目,对于接口请求,都是根据前端访问域名来判断运行环境,然后自动适配对应的服务器地址的.这样的好处就是在开发.测试及发布上线全程都不需要手动去改接口请求地址,只要提前配置好就 ...

  3. c/c++编译时,指定程序运行时查找的动态链接库路径

    http://blog.csdn.net/tsxw24/article/details/10220735 c/c++编译时,指定程序运行时查找的动态链接库路径 分类: c/c++ linux 2013 ...

  4. C# 获取程序运行时路径

    Ø  前言 开发中,很多时候都需要获取程序运行时路径,比如:反射.文件操作等..NET Framework 已经封装了这些功能,可以很方便的使用. C# 中有很多类都可以获取程序运行时路径,我们没必要 ...

  5. java程序运行时内存分配详解

    java程序运行时内存分配详解 这篇文章主要介绍了java程序运行时内存分配详解 ,需要的朋友可以参考下   一. 基本概念 每运行一个java程序会产生一个java进程,每个java进程可能包含一个 ...

  6. Java程序运行时内存划分

    1.Java程序跨平台运行的原因 主要原因是:各种平台的JVM和字节码文件 Java源程序--具体平台的机器代码文件---被编译器翻译成平台无关的Class文件,又用特定JVM运行字节码文件,JVM在 ...

  7. 小程序开发时PC端调试返回结果和手机端IOS不一致问题

    IOS11登录时遇到一个请求与PC返回不一致情况, 在小程序调试时IOS上始终没有wx.request() 不能发送请求 尝试解决方法 打开微信小程序调试的设置, 将TLS设为可信任的域名 设置 -- ...

  8. 微信小程序来了 要杀死一切App

    从昨晚一些自媒体开始陆续爆料,到微信官方宣布,这一次只隔了短短几小时.就在刚刚,今天早晨,微信官方正式宣布“应用号”开始内测,并暂定名为“小程序”. 应用号变成小程序 腾讯高级副总裁张小龙也在其朋友圈 ...

  9. 小程序—银行、券商们下一代APP的进阶方向

    传统金融机构们的App——尤其以手机银行.手机证券为最,发展到今天,已经产生一系列的问题:从用户角度看,体验普遍不好.高度同质化:从业务运营角度看,几乎没有什么“运营”的抓手:从IT角度看,投入产出比 ...

随机推荐

  1. JSP+Servlet+C3P0+Mysql实现的网上蛋糕店

    本文存在视频版本,请知悉 项目简介 项目来源于:https://gitee.com/PositiveMumu/CakesShop/tree/master 这次分享一个蛋糕商场系统,还是很简单的系统.界 ...

  2. go语言周边

    博主收藏的go语言资料,分享一波~~~ 官网 https://golang.org/ (被墙) 镜像: http://docscn.studygolang.com/ 下载镜像: https://gom ...

  3. 从源码学习Java并发的锁是怎么维护内部线程队列的

    从源码学习Java并发的锁是怎么维护内部线程队列的 在上一篇文章中,凯哥对同步组件基础框架- AbstractQueuedSynchronizer(AQS)做了大概的介绍.我们知道AQS能够通过内置的 ...

  4. NLPer入门指南 | 完美第一步

    介绍 你对互联网上的大量文本数据着迷吗?你是否正在寻找处理这些文本数据的方法,但不确定从哪里开始?毕竟,机器识别的是数字,而不是我们语言中的字母.在机器学习中,这可能是一个棘手的问题. 那么,我们如何 ...

  5. 编译原理:非确定的自动机NFA确定化为DFA

    1.设有 NFA M=( {0,1,2,3}, {a,b},f,0,{3} ),其中 f(0,a)={0,1}  f(0,b)={0}  f(1,b)={2}  f(2,b)={3} 画出状态转换矩阵 ...

  6. Dome 多人人脸识别 face_recognition

    Dome 多人人脸识别 face_recognition 注意 face_recognition 依赖 face_recognition_models 中文字体文件需要自己下载 1.多人人脸识别 # ...

  7. Cplex教育版申请

    任何人:直接在公众号"毒书 彼记" ,“资源下载” 板块下载: 如果你的学校没有购买cplex软件没那么,你就不可以下载教育版的cplex软件,如过下载免费板,它的功能会有一些限制 ...

  8. Java 配 Shell 等于美酒加咖啡

    化学中我们得知「氢气加氧气在点燃的情况下会生成水」. 生活中我们得知「良辰加美景的情况下会得到千金春宵一刻」. 技术上又何尝不是如此呢?先假设一个场景:BOSS 让你实现一个服务监控的指挥室,能看到每 ...

  9. #VScodd集成Git Bash 命令行 #怎么把Git Bash集成到VScode

    配置 Step1. File-Preferences-Setting Step2. 搜索"terminal>integrated>shell A" Step3. 找到t ...

  10. PTA数据结构与算法题目集(中文) 7-32

    PTA数据结构与算法题目集(中文)  7-32 7-32 哥尼斯堡的“七桥问题” (25 分)   哥尼斯堡是位于普累格河上的一座城市,它包含两个岛屿及连接它们的七座桥,如下图所示. 可否走过这样的七 ...