一夜之间,微信小程序刷爆了行业网站和朋友圈,小程序真的能如张小龙所说让用户“即用即走”吗?

其功能能和动辄几十兆安装文件的APP相比吗?

开发小程序,是不是意味着移动应用开发的一次推倒重来,企业的运营成本会不会因此增加?

近日,笔者参加了一次腾讯自选股介绍小程序开发过程的内部沙龙,自选股小程序产品经理Poppy和首席开发工程师小K的一番海聊,从开发技术和行业走势两个方面为我们揭开了小程序的秘密

今年7月,腾讯自选股团队接到微信的邀请,做一个Web+的应用测试。当时他们还不知道,这就是微信小程序的首批开发内测。而当时,其实连“小程序”这个名字也还没有确定。

三个月后,“腾讯自选股”成为第一个开发成功的微信小程序。相比于原来身量庞大的APP,它无需用户下载、安装,即可在微信内一键即达,并可实现盯盘、看盘、在线交易等APP的核心功能。自选股的用户无需离开微信,就可以边聊天边看盘乃至进行股票交易,与身处大户室的感受几乎无异。

这三个月,是小程序拨云见日、从无到有的三个月,自选股团队为探索开发一款完美的小程序奏响了先声。

揭秘一:在内容上有所取舍,更符合小程序所适配的场景

小程序的特点在于“轻”。自选股小程序的安装包只有900K,轻装的实现,首先来自于取舍的理念。

“小程序不是对APP的原样照搬。”Poppy介绍说,自选股小程序对APP中深度、专业的资讯服务做了取舍,只收录了支持个股的部分资讯。因为在微信里,用户可以通过订阅号、服务号等多种渠道收看资讯,小程序不必再做重复建设,而是主要适配交易与交流同步的应用场景。

小程序开发团队对自选股做了重新设计。围绕用户的核心需求,在自选股小程序的页面上,最终只保留了自选、行情和设置三个页卡,轻巧而清晰。

揭秘二:采用WebSocket协议实现数据实时性

显示实时行情是股票应用核心功能之一,但实时数据传输最为占用网络资源,也影响到小程序应用的流畅性和用户体验。

自选股小程序采用WebSocket完美解决了这个问题。小K说,以往数据更新多采用轮询机制,即客户端按照一定的周期频率发起数据请求,对网络资源的占用较大。自选股小程序的解决方案是采用WebSocket,当服务器有数据更新时主动PUSH,从而降低了无效的网络传输,使数据的实时性更强。

揭秘三:数据缓存加速数据呈现

自选股小程序通过数据缓存,加速页面的数据呈现。本地缓存文件最大可以达到10M。

10M缓存量是根据自选股用户的偏好来设置的。数据显示,80%用户的自选股不超过20支,一只股票的缓存数据大约300K,10M的缓存空间足够缓存30支以上的股票。这对于绝大多数用户来说已经足够了,而且实现了用少量数据支持页面的流畅呈现。

揭秘四:响应式绘图完美适配不同机型

Canvas在使用前需要设置大小以便占位。而在小程序里面,目前Canvas不支持RPX的方式,Canvas需要动态添加图形的宽高数据。

为了更快渲染Canvas,且不出现闪屏效果,自选股小程序在启动程序时即在后台记录用户所用设备的屏幕尺寸。进入Canvas绘制页时在OnLoad方法中计算Canvas大小并设置画布。这完美地解决了在小程序中实现响应式绘图的问题。

揭秘五:简洁的UI平衡美观与实用

自选股小程序的UI十分简洁。与iOS开发完全不同,从UI到整体前端处理大部分都采用CSS做渲染。对个别需要用到PNG的设计元素,对PNG做无损压缩。这让小程序在页面的美观与程序的轻灵之间找到了平衡。

揭秘六:人性化优化很重要

对于股票应用来说,任何一支股票的异动都需要马上看到变化,否则对于用户来说是致命的缺陷。开发团队认识到,小程序之轻绝不能以牺牲核心功能和用户体验为代价。因此,在自选股团队的建议下,微信团队专门开发了小程序动画支持功能。现在,自选股小程序中,股票一旦发生价格变化会自动闪烁,提醒用户重点关注,让小程序的功能完全不输APP。

揭秘七:人人可做小程序

“自选股小程序代表了目前微信小程序开发的标杆和极限。”Poppy对此十分自信。股票类应用本身是比较复杂的移动应用。自选股小程序开发成功,相当于厘定了小程序开发的边界。只要你的应用不比自选股更复杂,就一定能实现小程序应用。

微信小程序作为一个轻应用,它的优势之一在于使开发变得相对容易。自选股小程序的研发之所以走过了三个月时间,是因为他们作为微信小程序应用开发的拓荒者,和微信小程序研发团队共同经历了开发、完善底层技术的全过程,甚至客观上成为小程序开发标准的参照。

小程序到底该有多大才算“轻”,在小程序开发之初,微信团队对此也没有概念。当得知自选股小程序最终完成的安装包只有900 K后,他们将小程序安装包体量的上限定在了1024K。

揭秘八:对流量入口的争夺将再次开启

小程序规避了过去加载应用必需的扫码、下载、安装等繁复过程,更容易触发用户应用,更方便商家留存用户信息。月活量已经超过八亿用户的微信已经成为了一种实实在在的生活方式,其中集合了丰富的生活场景入口。微信小程序的出现,可以帮助O2O行业获取更多用户,是个绝对的利好。Poppy认为:“基本上,服务类的商家都适合做小程序。”

小K认为,相对APP,小程序的开发更为容易,只需一套代码就适配所有机型,视应用复杂程度,最多五六个人一个月就可以搭建出来,成本优势十分明显。

有人说,互联网APP创业的风口正在关闭。但小程序所倡导的基于微信环境的轻型应用的理念,为已陷入增速减缓的互联网移动应用带来一股清流,为服务类APP的转型发展带来了启发。

「H5程序俱乐部」是一个专注微信小程序学习交流,相关外包/招聘需求信息发布的微信公众号。

如何开发一款堪比APP的微信小程序(腾讯内部团队分享)的更多相关文章

  1. 小程序语音红包开发中 汉字转拼音的问题 微信小程序红包开发遇到的坑

    公司最近在开发微信小程序的红包功能,语音红包需要用到文字转拼音的功能. 之前介绍过怎么将中文的汉字转为拼音的,具体看下面这篇文章. 微信语音红包小程序开发如何提高精准度 红包小程序语音识别精准度 微信 ...

  2. 动手开发一个名为“微天气”的微信小程序(上)

    引言:在智能手机软件的装机量中,天气预报类的APP排在比較靠前的位置.说明用户对天气的关注度非常高.由于人们不管是工作还是度假旅游等各种活动都须要依据自然天气来安排.跟着本文开发一个"微天气 ...

  3. 手机APP和微信小程序能否取代域名?

    有人说现在App是主流,手机上装几个App就可以了,以后域名的重要性会越来越低,直至App完全取代域名的域名无用论.真的是这样吗? 关于这个话题已经有很多先人前辈探讨过,这次誉名网从另外一个角度给各位 ...

  4. App唤起微信小程序和回调

    在同一开放平台账号下的移动应用及小程序无需关联即可完成跳转,非同一开放平台账号下的小程序需与移动应用(APP)成功关联后才支持跳转. 可在“管理中心-移动应用-应用详情-关联小程序信息”,为通过审核的 ...

  5. 用Python快速实现一个垃圾分类APP|附带微信小程序

    最近北京开始实行垃圾分类,导致大家对垃圾的研究热度突然涨高,垃圾们也纷纷表示从来没有获得过这么高的关注度.其实,上海市去年已经开始实行,网上已经有不少成熟的教程了,像什么<垃圾分类从入门到精通& ...

  6. 从0开始,手把手教你开发并部署上线一个知识测验微信小程序

    上线项目演示 微信搜索[放马来答]或扫以下二维码体验: 项目源码 项目源码 其他版本 Vue答题App实战教程 Hello小程序 1.注册微信小程序 点击立即注册,选择微信小程序,按照要求填写信息 2 ...

  7. 自家APP打开微信小程序,可行吗?

    小程序的通用解决方案,今天为大家介绍一下FinClip.它的最大特点,就是能够让任何 App 运行小程序. 只需要在你的 App 里面,引入它的 SDK,就能加载运行外部小程序了.除了 SDK,它还提 ...

  8. 手持式停车收费管理系统全套案例,支持车牌识别,包含了android版app,微信小程序查询,响应式管理后台,云端大数据存储

    先展示几个app效果图片吧,使用起来非常方便,关联了机器的快捷键操作,操作速度提高了不少,摄像头车牌自动识别,车牌识别无网络情况下离线也可以使用   再来一张后台截图,停车场信息完整显示,今日数据实时 ...

  9. uniapp保存图片到本地(APP和微信小程序端)

    uniapp实现app端和微信小程序端图片保存到本地,其它平台未测过,原理类似. 微信小程序端主要是权限需要使用button的开放能力来反复调起,代码如下: 首先是条件编译两个平台的按钮组件: < ...

随机推荐

  1. Angular杂谈系列1-如何在Angular2中使用jQuery及其插件

    jQuery,让我们对dom的操作更加便捷.由于其易用性和可扩展性,jQuer也迅速风靡全球,各种插件也是目不暇接. 我相信很多人并不能直接远离jQuery去做前端,因为它太好用了,我们以前做的东西大 ...

  2. .NET 提升教育 第一期:VIP 付费课程培训通知!

    为响应 @当年在远方 同学的建议,在年前尝试进行一次付费的VIP培训. 培训的课件:点击下载培训周期:10个课程左右,每晚1个半小时培训价格:1000元/人.报名方式:有意向的请加QQ群:路过秋天.N ...

  3. SQL Server-聚焦计算列或计算列持久化查询性能(二十二)

    前言 上一节我们详细讲解了计算列以及计算列持久化的问题,本节我们依然如前面讲解来看看二者查询性能问题,简短的内容,深入的理解,Always to review the basics. 持久化计算列比非 ...

  4. iOS开发之App间账号共享与SDK封装

    上篇博客<iOS逆向工程之KeyChain与Snoop-it>中已经提到了,App间的数据共享可以使用KeyChian来实现.本篇博客就实战一下呢.开门见山,本篇博客会封装一个登录用的SD ...

  5. CRL快速开发框架系列教程十一(大数据分库分表解决方案)

    本系列目录 CRL快速开发框架系列教程一(Code First数据表不需再关心) CRL快速开发框架系列教程二(基于Lambda表达式查询) CRL快速开发框架系列教程三(更新数据) CRL快速开发框 ...

  6. Spring获取ApplicationContext

    在Spring+Struts+Hibernate中,有时需要使用到Spring上下文.项目启动时,会自动根据applicationContext配置文件初始化上下文,可以使用ApplicationCo ...

  7. 中国CIO最关心的八大问题(下)

    中国CIO最关心的八大问题(下) 从调研数据还可以看出,在企业级IT建设与投资上,CIO们并非是一群狂热的技术信徒,他们更多的是从企业发展阶段.信息化程度.技术成熟度.ROI等方面进行综合评估. 五. ...

  8. SqlServer之数据库三大范式

    分析: 数据库设计应遵循三大范式分别为: 第一范式:确保表中每列的原子性(不可拆分): 第二范式:确保表中每列与主键相关,而不能只与主键的某部分相关(主要针对联合主键),主键列与非主键列遵循完全函数依 ...

  9. 机器指令翻译成 JavaScript —— No.3 流程分割

    上一篇 我们讨论了跳转指令,并实现「正跳转」的翻译,但最终困在「负跳转」上.而且,由于线程模型的差异,我们不能 1:1 的翻译,必须对流程进行一些改造. 当初之所以选择翻译,而不是模拟,就是出于性能考 ...

  10. ABP理论之CSRF

    返回总目录 本篇目录 介绍 ASP.NET MVC ASP.NET WEB API ASP.NET Core[以后补上] 客户端类库 内部原理 介绍 CSRF[Cross-Site Request F ...