小程序定位
小程序是连接产业互联网利器。未来微信小程序开发生态还将从操作系统底层,为跨系统开发难题给出中国方案,凭借小程序一次开发,促进芯片行业迭代升级,帮助产业争取更多空间。
微信最开始做小程序说的是为了线下场景的拓展,不过事实证明,微信小程序主要还是在挖掘线上下沉的社交流量。
小程序非常适合电商和游戏领域,据阿拉丁数据统计,前100名的小程序光是游戏和电商就占据了超过一半的比例。
小程序的由来
微信的功能越来越强大,很多底层的硬件调用,都由这款APP做了,从而提供API服务,用户的网页只需要调用微信的API即可,这就是小程序的由来。
小程序很有可能就是下一代移动互联网产品。互联网技术的周期平均在8到10年,好的技术符合四个标准,即效率革命、成本下降、信息重构、认知缩短,小程序恰好满足这些标准。
在小程序中,可以实现互相跳转、互联互通,从而惠及普通民众,因此小程序让移动互联网使用进入全民时代。
什么是小程序
小程序是一种不需要下载安装即可使用的应用,它实现了触手可及的梦想,用户扫一扫或者搜一下就能打开应用,也实现了用完即走的理念,用户不用安装太多应用,应用随处可用,但又无须安装卸载。
微信小程序是一种全新的连接用户与服务的方式,它可以在微信内被便捷地获取和传播,同时具有出色的使用体验。小程序本身也是一种可插拔的外接应用。
小程序和公众号彼此独立,但可以相互跳转。小程序没有粉丝量,只有访问量。小程序不是通过流量分发,而是当用户有需求时,以触达用户的方式来完成使用。小程序用过之后,可以在历史菜单中快捷找到。
无需订阅这一点对于用户来说,以后就不用担心收到源源不断的推送消息了。但也不是完全禁止,如果你在使用时选择接收消息,便会通过其他形式收到。
小程序技术的灵活性因素,包括允许内嵌 webview,Js 动态加载等。小程序提供的是一套前端框架,服务内容是由服务端动态呈现、随时变化的,甚至是千人千面。
小程序特点
张小龙说小程序是“触手可及”,“用完即走”,“无处不在”的一种应用。他所谓的用完就走,其实你根本走不出门口,不过是从微信的一个房间走到另一个房间。用户不用关心是否安装太多应用的问题。
小程序最大的特点就是无需安装、即点即用、运行速度快、运行需要的内存需求小、对手机性能要求低,所以,如果你喜欢的App有功能基本相同的小程序,就可以毫无挂虑的把App卸载了。
简单、高效、方便、快捷的用户体验,这些都是小程序的优点。小程序提供的环境更加灵敏和友好。
小程序不需要安装就可以快速开始使用,只需要加载必要的资源就可以尽快展现用户需要的页面。
小程序绕过应用商店体系,意味着应用商店排名、移动广告投放等等已经趋于成熟的商业生态都可能被重新洗牌。平台上的小程序可以直接绕过应用市场的禁锢,实现几乎一样的效果。
小程序绕开应用商店、无需下载等等优点,的确对用户有着不小的吸引力,但即用即走、缺乏主动唤起路径的实际情况的确很难让用户留存。
我们提供了一种新的开放能力,让开发者可以快速地开发一个小程序。小程序的开发框架包含两大块内容:API与组件。
小程序生态
目前,有150万开发者加入小程序开发生态,小程序应用数量超过100万,覆盖200个细分行业,日活达2亿,目前已在很多城市支持地铁公交服务,有400万广东用户通过“粤省事”小程序办理100多项民生服务。
小程序的限制
页面层级不超过10级。因为考虑到循环嵌套的情况,防止页面丢失后无法按照原路径返回;整个小程序所有分包大小不超过8M;单个分包/主包大小不能超过2M;本地缓存数据最大10M;不能分享到朋友圈、不能IAP支付、不能复用H5的页面。
历史与发展
小程序从2017年1月9日正式上线,到2018年底应用数量已经超过230万个,而2017年苹果App Store 应用总数为210万个,小程序仅仅用了不到两年的时间就超越了苹果10年的应用数量。
目前小程序形成3+1个山头:微信小程序、支付宝小程序、百度小程序+今日头条小程序。小程序日活用户3.5亿、200亿元广告费市场规模。
小程序用户的月度留存率从1月的13.3%上升到11月的18.3%,整体上升了5个百分点;小程序用户日人均打开次数从1月的2.61次上升到了12月的4.25次,一年中提升了63%;与年初相比,日人均打开次数提高63%。
小程序革命
小程序一来,讲起来是提供用户方便,实际上是革命啊。革谁的?革终端厂商们、特别是想着转型的终端厂商们的命。所以说,蠢蠢欲动们的厂商当然也要做出行动了,毕竟我掌握终端,比你更近一步开发。
稀缺性
小程序缺乏使用价值上的稀缺性。线上使用时大部分移动应用,已经能满足用户所有的需求,线下使用时又常常和微信公众号、移动支付二维码等等功能产生生态位重叠。
小程序产业格局
小程序BATT的格局已经形成,2019年或还将有其他互联网公司加入,但腾讯、阿里、百度、头条四强地位无法撼动,因为它们占据了中国移动互联网7成以上使用时长。
微信占据先发优势,在小程序之争中率先突围,阿里、百度也紧跟其后。小程序已成为用户在超级APP上连接世界的重要入口,然而超级APP不同的基因属性,也决定了其平台上小程序生态的相异。
小程序已经成为中国编程者一个非常热门的编程环境和正在热情学习的语言环境。百度、支付宝和抖音等互联网企业先后进入小程序领域,这说明小程序已经成为互联网下半场的竞争方向。
微信小程序主要还是在挖掘线上下沉的社交流量,支付宝则主要聚焦在线下的商业与生活服务上,而百度是通过AI技术赋能,主打开源生态。
头部效应
2018年小程序服务超过1000亿人次用户,年交易增长超过600%,创造了超过5000亿的商业价值。结合QuestMobile数据我们会发现,微信小程序呈现着极强的头部效应,除了209个MAU大于500万的玩家,其他玩家并没有分食到太多的红利。
截至2018年底,微信用户经常使用的小程序类型为小游戏、生活服务、内容资讯、网络购物等,占比分别达到42%、39%、28%、28%。
小程序与网站
企业小程序类似于PC端的网站,用户能够更快捷地获取服务,但体验会比网站好很多,也不需要很多步骤。
诞生环境
今天为止,整体网络环境和平台特性都已经发生了变化。我们的手机性能更强大、网络连接速度更快,可以运行更复杂的小程序。同时,平台方面也在不断累积自身能力,让这些能力成为有利于小程序开发的工具。
依托微信
小程序的核心优势还是在于腾讯的社交链条,社交中是很容易触发场景的。小程序其实就是微信的功能延展。它使得微信在除了社交之外,几乎可以做所有事情。小程序已经成为微信生态最具发展潜力的一部分。
小程序是依托于微信提供的开发框架,在H5页面基础上,更升级了一步,还提供了调用系统功能的应用。
小程序的开发过程会用到大量HTML5相关的技术,但并不是使用HTML5开发。所以,微信小程序的运行并不需要一个完整支持HTML5特性的标准浏览器内核。
微信一直有一个贯穿的JS-SDK在不断演进。小程序的API部分由于可以跳出浏览器的框架,理论上肯定可以是JS-SDK的超集。
微信自己定义了一套DSL,而不是用HTML来开发页面。这样就不能让开发者随意开发,而是在微信的DSL框架中开发。
微信需要通过这种方法来转化开发者,这些开发者未来会逐渐演变成“微信OS平台”的忠实开发者。
小程序SDK
小程序输出的 SDK 包含两个部分:基础引擎和能力插件。
基础引擎是必须的、不可替换的,它承载了小程序的基础能力,包括前端框架和容器的核心能力,以及提供渲染的内核。
它提供了小程序核心的运行时和基础的核心组件和 JSAPI,同时提供了能力插件的插件容器,插件容器具有良好的隔离性,不会因为插件的 crash 导致容器的 crash,保障了小程序核心运行时的稳定性。
小程序流量入口
微信聊天主界面下拉栏排名第一,占比为44%;朋友圈分享名列第二,占比为40%;主动搜索排名第五,占比仅为27%,附近的小程序排名倒数第二,占比为14%。
连接与效率
微信的核心愿景之一是“连接一切”,小程序是腾讯实现这个愿景道路上的重要一步。不是为了连接而连接,连接是为了提供服务。无论是BAT的小程序,还是手机厂商的快应用,它们本质上并不是服务的本身,而只是服务的桥梁,提升服务效率的工具。
小程序强调的是连接和效率。用户在获取信息与服务时,需要在不同的 app 之间来回的跳转。小程序连接 app 之间的信息孤岛,避免跳转所损耗的效率,提升了连接服务的效率。小程序解决信息孤岛的目的,正是广告主与内容生产者以更多形式进行商业化的想象空间。
小程序生命周期
小程序的生命周期!包括应用生命周期和页面生命周期。
应用生命周期:1用户首次打开小程序,触发 onLaunch;2小程序初始化完成后,触发onShow方法,监听小程序显示;3小程序从前台进入后台,触发 onHide方法;4小程序从后台进入前台显示,触发 onShow方法;5小程序后台运行一定时间,或系统资源占用过高,会被销毁。
页面生命周期:1小程序注册完成后,加载页面,触发onLoad方法;2页面载入后触发onShow方法,显示页面;3首次显示页面,会触发onReady方法,渲染页面元素和样式,一个页面只会调用一次;4当小程序后台运行或跳转到其他页面时,触发onHide方法;5当小程序有后台进入到前台运行或重新进入页面时,触发onShow方法;6当使用重定向方法wx.redirectTo(OBJECT)或关闭当前页返回上一页wx.navigateBack(),触发onUn。
小程序与浏览器
浏览器是为数不多从 PC 时代延续至移动互联网时代的产物。当小程序的内容被自然地嵌入浏览器产品内,用以替代原来的H5页面的时候,人们几乎感觉不到任何学习成本,只能感受到更顺畅的浏览体验。
浏览器这一产品形态的优势即在于,它并不只是一个内容平台,先天就有着可信度高、上手门槛低、内容聚合等优点。移动浏览器是一个由于入场早而被严重忽视的流量入口。
目前 QQ 浏览器小程序目前已经内置了小程序引擎,兼容适配了微信小程序的 API,开发者只需要做一些基础的适配,就可以将微信小程序移植到QQ浏览器上运行。
小程序是嵌在浏览器里的应用程序,可以利用本地系统的一些特性。无论是小程序,还是轻应用,和桌面一样需要寻找,只是操作对象从应用商店换成了搜索引擎。
封闭
曾经自由、开放、共享的互联网,正伴随着 APP 的出现,而变得封闭――而小程序,则是将这种封闭推到了极致。
搜索与调用
目前小程序规范的页面结构很方便实现应用内搜索。以后使用微信的搜索功能,可以直达小程序内部的某个特点内容页面。这是App时代的超连接系统,App的信息孤岛也许就此打破。
微信小程序会从本地数据读取开始,进化出一定的云端API。这种规范的设计,也方便实现小程序之间的互相访问,可以通过一个类似wxapp://appid/pageid/的URL直接导航到另一个小程序的某个特定页面。
标记语言
微信小程序是运行在微信应用内的,不是运行在浏览器上,所以JS的一些DOM操作在这里不适用。小程序有自己的一套标记语言(wxml)、样式语言(wxss),与web开发的html和css思想是一致的。
小程序底层还是基于Webview来实现的,并没有发明创造新技术。整个框架体系,比较清晰和简单。基于Web规范,保证现有技能价值的最大化,只需了解框架规范即可使用已有Web技术进行开发。
小程序与html5
HTLM5页面经常会出现加载缓慢、加载超时、卡顿等现象,但是微信小程序不会出现这种情况。小程序在功能和体验上是可以秒杀掉HTLM5页面,从另外一个角度也体现了小程序的体验更流畅。
微信为小程序赋能
采用类似 HTML5 的 HTML+CSS+Javascript 开发,但是在运行时则调用微信 APP 的接口以原生程序的形态来执行,从而实现一次开发 + 原生应用的性能这样鱼和熊掌兼得的极佳体验――这就是微信小程序给我们带来的美丽新世界。
微信还为小程序提供了一套基础组件库,可以满足开发的基础开发需求,从而实现简单的快速开发。
小程序可以调用比H5更多的手机系统功能来进行开发,例如GPS定位、录音、拍视频、重力感应等,能开发更丰富的使用场景。
所有资源在初次加载时,均会保存在微信为小程序开辟的本地存储空间中,再次进入时无需加载。
微信小程序上线,H5会让众多O2O、新闻媒体、社交等领域的移动应用向浏览器靠拢,依附在微信生态的旗帜之下。
微信已经从H5技术上大幅度推进了其系统级生态的步伐,借助H5打造微信的系统级生态。大部分日常使用到的应用服务,都可以在微信生态内直接用浏览器解决。
H5技术蔓延发展到视频、动画、广告、VR等多个领域,大部分日常使用到的APP服务,或许都可以在微信生态内直接用浏览器解决。微信全方位支持H5标准,能让移动浏览器实现从前原生APP才能实现的效果,包括应用、游戏等。
微信推出的小程序,提供了丰富的框架、控件和系统调用能力,包括并不限于:框架、视图、各类基础控件、表单、多媒体支持、地图、画布、WebSocket、数据存储、位置信息、设备信息(包括系统信息、重力感应、罗盘等),这些能力最终都会以 JS SDK 的方式开放出来。
本次全面升级意味着,微信将全方位支持H5标准,这能让移动浏览器实现从前原生APP才能实现的效果,包括应用、游戏等。基于这些能力,对于互联网服务来说,小程序已经可以做出超过现有 Web App 的功能了。
小程序扫码
除了通过扫码,发送朋友,搜索,附近等常用入口外,还能与公众号关联,群发文章嵌入,公众号菜单链接等。
桌面小程序
在安卓手机上可以将小程序添加到手机桌面,看上去跟原生APP差不多,这样使得使用起来更便捷。
小程序与app
在交互设计中,小程序的设计和APP设计最大的区别在于顶栏的操作。微信小程序是没有顶栏操作内容的,它只有两个按钮,有点像是我们在浏览web网页时的关闭按钮。小程序的开关有两个功能,切换和关闭。
微信导航栏分为:导航区域、标题区域以及操作区域。为减少开发代码量,在设计时尽量遵循微信默认交互逻辑,尽量减少使用较大的静态资源(图片等)。
在实际的用户体验上,小程序并不比具体的APP更好,但小程序可以减少手机上越来越多的APP个数,节省内存和我们的精力。因此,小程序并不会完全颠覆APP,但会是App的有效补充。
有大量碎片化空余时间的用户,以及不愿意再下载、使用更多独立 app 的用户,都在向微信集聚。功能越来越强,边界越来越大的小程序,甚至可能威胁到诸多超级应用的大本营。
无需下载安装
无需下载/安装/卸载、无需注册、用完既走,让用户便捷、迅速、简单、高效的获取服务。由此带来两大好处:一是用户使用没有心里负担;二是省了APP下载的漏斗转化过程。
要知道一个产品从广告展示→到下载安装→到注册激活的漏斗路径,很多时候是惨不忍睹的。绝大部分潜在用户直接被挡在了下载安装这一环节。
无需下载只是表象,真正的核心是它更易触发和获得。在随地WiFi、流量便宜的时代,下载APP其实不是什么困难,真正困难的是时间和等待。
页面加载速度
小程序具有出色的使用体验,页面加载速度比H5页面快20%-30%,获取用户成本相对较低。我们启动小程序时,仍然有点延迟的感觉,这是小程序正在从CDN和WEB服务器上下载资源所导致的延迟。
Google 的统计表明,页面打开时间超过 3 秒用户会流失 13%,超过 6 秒用户会流失 60%。反过来,打开时间每减少 1 秒可提升 27% 的转化率。
跨平台
小程序借助的是JSBridge实现了对底层API接口的调用,所以在小程序里面开发,开发者不用太多去考虑IOS、安卓的实现差异的问题,安心在上层的视图层和逻辑层进行开发即可。小程序本身磨平了各平台差异化,开发门槛非常低。
热起动
在后台把小程序相关的资源尽可能地提前加载好,在用户使用小程序时可以快速地启动起来。由于高频应用长期在系统层面处于活跃状态,所以高效的优化方式就是预加载。
冷起动
不预加载的小程序启动为冷启动。对于低频应用,更多采取的是冷启动。在这种情况下,我们更多的是从技术的角度来优化每一个环节的性能。
首页的加载和渲染对于冷启动是非常关键的,为了减少用户在首页显示前的等待时间,我们采用离线缓存的方式来优化加载的流程。
在用户首次展现首页后,我们会把首页的 UI 页面保存下来,在用户下次重新打开小程序的时候,会首先渲染上次保存下面的首页 UI 页面,把首页展现给用户,然后在后台继续加载前端框架和业务的代码,加载完成后再和离线缓存的静态首页 UI 进行合并,给用户展现动态首页。
由于在渲染完离线缓存的静态首页 UI 到真正的业务代码加载完成,这个之间的时间大概在 1 秒左右,所以在用户看到首页并做出反应时动态首页已经合并完成,并可以对用户的操作做出响应。
由于小程序启动是受到生命周期的控制,从 onLaunch -> onLoad -> onShow -> onReady -> 用户操作 -> 离开首页这个流程,在这个过程中的任意一个环节都有可能被客观或者主观的原因打断,也就有可能导致保存的离线页面不准确,在启动的时候给用户呈现错误的页面。
所以对于首页离线缓存渲染的效果,保存页面的时机很重要,我们提供让开发者可以配置的时机,配置的时机有两个:渲染完成和离开首页前。
对于渲染完成就是首页渲染完成,用户还未执行任何的操作前把页面保存下来作为离线缓存的页面。离开首页前就是指用户在首页执行了一系列的操作后,跳转到其他页面前用户看到的页面保存下来作为离线缓存的页面。
加载
对于正常的加载逻辑,用户在点击小程序图标后就开始启动的过程,下载并解压小程序离线包,找到入口的页面 index.html,作为参数传给浏览器内核开始加载小程序页面。
在浏览器开始加载小程序页面时,会先出现三个圆点的 Loading 页,然后在开始加载小程序的前端框架,在前端框架加载过程中会启动异步的 worker 线程加载业务的 js 逻辑代码,前端框架则继续加载小程序的页面,并渲染出首页展现给用户。
闪屏
闪屏问题发生的场景是因为缓存页面和真实渲染的页面是分离的,是两个独立的页面,缓存页面是静态的页面,真实的页面是通过 js 动态创建的页面,所以常规的做法就是当真实页面创建完成后替换缓存的页面,这样的情况下就会发生闪屏。
这个问题,我们是采用虚拟 dom 来解决的。在加载缓存页面的时候,把缓存页面放入初始的虚拟 dom 里面,真实页面创建后产生的虚拟 dom 跟缓存页面的虚拟 dom 进行 dom diff,把变化的内容通过 patch 传给浏览器内核,渲染对应的页面,这样就可以只更新局部有变化的页面内容,避免了整个页面的更新,也保证内容的准确性和实时性。
通过实测数据显示,这个优化可以将小程序的冷启动实现秒开
小程序与操作系统
其实,小程序可以干的任何事情本的,本该是操作系统,它做这件事更有优势。因为操作系统离用户近,更方便地让用户触发快应用,运行速度也快,同时在后台的管理服务也会优于小程序。
小程序出来的时候,就有人说它要成 wechat OS,这背后其实是在抢夺MIUI、EMUEI等国产操作系统的注意力经济。
所见即所得
张小龙畅想未来的程序形式,应该是类似于眼镜类的工具,不需要安装程序,呈现的屏幕也比现在的智能手机要大的多,一定是无处不在,随时能访问的状态,所见即所得。应用将无处不在,随时可用,但又无需安装卸载。
小程序代表了一种表达方式。在未来,万事万物可能都是包含信息,所有的信息都需要用某一种方式被人触达、跟人沟通,小程序刚好是这样一种信息的组织方式或者说是一个信息的载体。
所以,小程序最终的目的,不光是在线上可以玩一个游戏或者获取一个服务的信息。对于线下更多的场景,它就代表了我们所能接触到的、所能见到的任何事物,它背后的信息以及对于它背后信息的访问方式。
微信小程序将线上与线下很好地结合起来,简化了很多的操作流程。
问题
自从小程序推出以来,流量红利有限,盈利变现困难,而且小程序即用即走的模式不能沉淀客户,对电商来说就是鸡肋。
现在没有数据显示小程序的体验会比H5更好,也没有数据证明用小程序导购的转化率能比H5更高。
用完即走
任何一个工具都是帮助用户提高它的效率的,用最高效率的方法去完成它的任务,这是工具的目的,工具的使命。
什么是最高效的方法?最高效的方法就是用最短的时间去完成任务,那也就是说一旦用户完成了它的任务,它就应该去做别的事情,它就不会停留在产品里面,这就是用完即走的含义。
一个好的软件,一个好的工具应该让用户用完即走。
用完即走会体现在微信产品的方方面面,它意味着我们尽可能帮助用户提高它的效率,去缩短它完成同样一个任务所需要的时间,并且努力的不去用一些无谓的功能去消耗它的时间。