内向基金完成首轮募资
06-17
本文首发于Cloud+社区,未经许可不得转载。今年可以说是小程序元年。
各类游戏、商店、出行小程序如雨后春笋般涌现。我想在座的朋友都曾经使用过小程序。
这么受欢迎的小程序是怎么开发出来的?今天我们邀请了来自腾讯云Layabox和极推科技的五位技术专家,与大家分享一站式解析如何以低成本甚至0成本从0到1开发一款热门小游戏,让微信小程序开发真正落地实施抵达。今天我给大家带来的主题是腾讯云微信小程序解决方案。
我叫黄荣奎,是腾讯微信小程序解决方案负责人。我目前负责腾讯云上的小程序解决方案,以及如何快速帮助开发者完成开发并快速上线。
去年12月份我做分享的时候,大概有1/3的人用过小程序,现在应该更多了。我们简单回顾一下微信小程序的发展历史。
微信小程序9月份开始内测,2019年1月9日正式开放。大家真正接受的是2018年12月28日微信小程序游戏开始开放的时间,也称为跳一跳直到那时,微信小程序才被大家广泛熟知。
我简单分享一下微信小程序的分布情况。去年微信小程序的主要来源来自于工具部分。
它类似于我们生活中常用的摩拜单车和滴滴打车,但现在流行的游戏和社交网络已经超越了它的市场份额。那么小程序是如何实现的呢?首先介绍一下小程序。
这是官方的概念。小程序是一种新的开放能力。
开发者可以快速开发小程序。小程序可以在微信中快速获取和传播。
同时,他们拥有出色的使用体验。那么小程序的实现原理是什么呢?第一个是它的渲染层,即它的Webviews。
第二个是它的逻辑层,我们在这里编写业务逻辑来实现登录和支付功能。第三个可以理解为微信原生能力。
那么它是如何实现这部分能力的呢? Webviews主要负责渲染,微信底层提供了更多底层能力。我们可以看到微信为开发者提供了很多丰富的原生客户端以及自己的能力。
例如,网络发起网络请求、存储和下载。存储包括文件的读写、音视频的读写。
登录的是微信版,形成关系连接。组件就是我们常用的组件,包括提供给开发者的硬件,包括录音录像、摄像头、拍照、扫码等。
那么它是如何传输和调用消息的呢?您可以看到这是通过事件传递并返回数据的。当用户在界面上进行一些操作时,会触发一些事件并发送到原生Webview,然后发送到业务逻辑。
那么小程序是如何渲染的呢?有过小程序开发经验的人都知道,我们写了一个叫WXM2的东西,定义为Javascript,和业务打包在一起,形成了小程序。这是小程序的一种事件处理方法。
可以看到里面有Publish。 Publish是指Servive向View发送数据,Service监听View事件,Service和View触发Native层调用WX.api。
那么小程序为什么这么快呢?第一个是它有安装包缓存。刚才提到,每个小程序开发完成后,都会被编译成一个小程序包。
对比我们之前的一些开发方式,比如H5的体验,会有很不一样的感觉。 H5就是TM2,通过请求下载到用户设备,然后渲染。
如果网络比较差,比如3G或者4G信号不是很好的时候,就会出现白屏。但小程序就不一样了。
它生成程序包并可以缓存在用户设备上,这样用户下次使用时就不会重复下载。不会出现白屏或者其他情况。
当然,小程序安装包的大小也是有限制的。不可能特别大。
通常,官方之前的要求是不能大于2Mb。不知道现在有没有改善。
第二个是Webview界面。进入小程序时,并不是一键生成Webview。
生成 Webview 需要时间。当我进入小程序首页时,会生成多个Webview。
显示时,我只需要显示Webview,而不需要再次生成它们。这将大大提高加载速度。
第三,Native组件,这个页面就是原生组件,里面的一些图片也是原生的,这样就加快了启动速度。当然,它还使用了其他的东西,比如分包加载。
我们来比较一下各种开发方法。我们来对比一下小程序的体验、开发难度以及对用户的消耗。
之前H5是我们想到的跨平台解决方案。从开发角度来说,H5和小程序只需要了解前端开发就可以开发。
然而,原生开发的APP相对较大,并且具有特定平台性。 IOS和Android是不同的开发语言。
如果一个团队开发一个小程序,必须有IOS团队和Android团队,开发成本会更高。从用户体验上来说,小程序的体验只能说是更好。
如果和原生APP相比,还是差一些。但与其他周边应用程序相比,小程序的速度和性能要快得多。
而且从能力上来说,微信和小程序提供的一些功能可以操作一些硬件,但是外围APP有点困难。 Native APP拥有最好的支持,可以操作非常底层的硬件。
小程序可以通过搜索或附近推荐,因此具有更好的传播能力,支持在朋友圈分享和传播。与原生APP相比,沟通能力非常弱。
对于某些使用场景,原生APP体验很差,小程序速度很快。例如,如果我在路上看到摩拜单车,我会直接用小程序扫描它。
但还是需要下载APP。如果你想使用腾讯云开发者工具解决方案自己开发小程序,通常需要有自己的服务器,还需要配置一些证书才能运行,所以每个开发者都必须了解服务器运维知识。
同时,部署服务器代码不方便,服务器端代码调试不直观。更多的时间花在了周边环境的部署上,而不是更多地关注业务的发展。
针对这种情况,我们做了一个解决方案,称为Wafer1.0。其目的是解决服务器部署问题,提前处理好服务器平衡和服务器扩容,并在服务器中编写业务的基础服务代码。
同时,提供基本的对话服务是我们早期的解决方案。然而,该解决方案也存在一定的问题。
用户需要了解原理并自行部署服务器程序。架构过于专业化,不适合个人开发者,代码调试不方便。
我们和微信做了深度合作,开发了我们的Wafer2。 Wafer1和Wafer2有很大不同,特别是开发者用户可以上传服务器端代码,直接将代码上传到开发环境和生产环境。
开发生产环境、域名、证书、数据库都是系统提前准备好的。用户编写代码后,可以直接上传代码。
我们Wafer2还集成了腾讯云现成的能力,比如通道服务、对象存储、万象优图、智能语音等,可以看到Wafer2其实还有很多新的功能,包括一键上传代码。你不需要了解服务器端知识,只需要了解开发环境和生产环境。
我们的开发和线上环境是分开的,我们可以一键颁发和部署SSL证书。同时Node.js开发环境支持远程调试。
本套装免费,欢迎大家体验。这是我们目前微信开发者工具的能力。
右上角有一个腾讯云小图标。有了这个能力,你可以直接上传代码到开发环境,然后开始弹幕调试。
可以在后台看到当前的环境变量,重启服务,停止服务,上传代码到生产环境。腾讯云小程序解决方案完美解决了前面两个问题(需要你有一定的服务器运维知识,且部署服务器代码不方便)。
那么还剩下两个问题。一是服务器端代码调试不直观。
为了解决这个问题,我们开发了微信远程调试功能。当然,这是针对Nods.js版本的。
有Nods.js开发经验的同学肯定会很熟悉。另一个是远程调试。
这里的代码是服务器代码,可以看到断点和环境变量。除了这些功能之外,Wafer2还具有用户友好的框架。
用户只需使用Wafer2绑定腾讯云账号和小程序账号,然后创建小程序项目即可。创建完成后,我们需要点击这里上传测试代码。
这时候你的本地代码就会上传到服务器上。这里我们还为用户分配了一个域名。
用户只需在小程序中进行配置即可。参观过。
我们提供了很多能力,包括快速节点接口、登录、语音识别等,我们提供这些能力是为了保证用户在开发过程中可以方便的使用。那么在此基础上我们做了什么呢?第一个是聊天室小程序,它是基于我们自己的Sdk制作的聊天室功能,主要使用Websocket服务。
聊天主要用于双方之间的信息交互和沟通。 Websocket 提供了一种能力。
小程序登录会从服务器获取地址。其他的由 Paas 提供。
当前用户需要连接业务服务器还是需要连接当前服务器?建立联系。这样做的好处是我们在开发的时候不需要更加关注Websocket的实现。
而且websocket有一定的性能消耗。如果使用Paas,就可以避免这种性能消耗。
我们还可以监控异常情况,比如断线或者异常情况,让它们兼容。这些功能都在我们的SDK中,大家在使用的时候可以了解一下。
二是图像识别。可以看到,这是腾讯云提供的万向优图能力,比如身份证识别:用户上传身份证后,可以识别姓名、出生日期、性别、地址等。
当然,这只是腾讯云提供的部分能力。优图还可以提供实时验证,您可以稍后了解。
本文还没有涉及它。除了这些之外,接下来我们还应该做什么呢?目前版本控制的现状是这样的。
用户开发小程序时,代码是在客户端编辑并由用户自己存储的。当然,这会带来很多缺点,比如代码版本管理。
很多情况下无法在客户端进行版本比较。如果用户开发完成后需要部署服务器,则需要自行完成代码部署。
另一个缺点是初始化项目复杂,版本控制与服务器无关,代码无法回滚,开发者工具不支持GIT操作。针对这一情况,我们与微信进行了进一步的合作。
结合腾讯云的TGIT,这是腾讯内部使用的代码管理。然后在部署方面,我们采用的是程序集成,也就是说我们可以直接使用开发者工具来发布到服务器上。
这个服务器可以是用户自己的服务器,也可以是其他的服务器。有了这些能力,我们就可以一键快速初始化代码。
开发者可以快速查看、比对和回滚代码,准确发布和回滚代码,然后TGIT提供免费的私有仓库。目前我们的小程序开发工具支持GS和PSP。
后期可以支持C++、Java的发布和编译。集成这种持续继承后,其优点是可以在发布前预编译代码,支持编译型语言,支持定制化的持续集成,可以在发布前部署运行。
就是这样。谢谢大家。
QA: 问:正如前面提到的,发布期间会有生产和开发。我自己的配置需要两台服务器吗?一是开发,二是生产。
答:您不需要手动执行此操作。您只需绑定腾讯云账号和小程序即可。
该服务器是免费生成的。问:这个服务器不需要付费吗?答:目前,开发是免费的。
生产环境最近可能会收费。以前是免费的。
问:我可以选择其他服务提供商提供的服务器吗? A:您可能需要自己部署。我们将在后续运营和发布过程中允许用户自行部署服务器。
Q:如果我想使用一个小程序接收多种服务,我可以拥有服务器吗?该服务器可以支持多个小程序吗? A:是的,你需要自己在代码中做一些兼容性。问:我们现在有方便的示例或 SDK 吗?答:还没有。
Q:现在需要自己调整代码逻辑吗?答:好的,没错。问:您好,请问IOS版小程序和Android版小程序的开发语言一样吗? A:目前小程序其实是跨平台的,也就是说你写一段代码,就只有一份。
它可以兼容IOS和Android平台。它的语言是nodejs,更偏向于前端开发。
问:我想问一个关于万向优图的问题。刚才你说可以识别身份证。
我们的一些定制的可以被认可吗?也就是说,打印出来的箱子能被识别吗? A:目前有打印识别,身份证识别只是其中之一。我可以帮你联系优图的同事,看看他们是否有这个能力。
问:我们OCR进行身份证识别时,是直接上传图片吗? A:可以,直接上传,给个链接地址,界面就能识别了。Q:我之前尝试过AI,需要转换图片。
我刚刚了解到内部小程序可以这样转换。社区里有人表示这个??功能还没有实现。
以后会对外开放这个功能吗? A:转换为64的方法应该有很多,如果没有开放,可以使用开放接口。
版权声明:本文内容由互联网用户自发贡献,本站不拥有所有权,不承担相关法律责任。如果发现本站有涉嫌抄袭的内容,欢迎发送邮件 举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。
标签:
相关文章
06-17
06-17
06-17
06-17
最新文章
【玩转GPU】ControlNet初学者生存指南
【实战】获取小程序中用户的城市信息(附源码)
包雪雪简单介绍Vue.js:开学
Go进阶:使用Gin框架简单实现服务端渲染
线程池介绍及实际案例分享
JMeter 注释 18 - JMeter 常用配置组件介绍
基于Sentry的大数据权限解决方案
【云+社区年度征文集】GPE监控介绍及使用