版权声明:本文由贺嘉原创文章,转载请注明出处: 
文章原文链接:https://www.qcloud.com/community/article/145

来源:腾云阁 https://www.qcloud.com/community

最近2天,互联网圈和技术圈的热点话题非微信“小程序”莫属。有些文章从产品角度探讨哪些类型的服务适合做成应用号,也有直接发布内应用号的开发教程的。做为腾讯云的技术布道师,我想换个不一样的角度,从我熟悉和关注的移动开发技术栈的演进角度,讲讲移动开发技术下来可能会发生的变化,以及对于移动应用开发者可能带来的三点重大影响。

HTML5在国内的流行与微信息息相关,一个小小的创业团队用业余时间开发的“围住神经猫”这样一个轻游戏轻松就获得了上亿次访问,做为一款现象级的产品直接拉动了国内企业与市场对于H5开发者的需求。核心的优势在于开发过程的足够轻量,但同时这样轻的技术语言本身也不是完美无缺,“围住神经猫” 这款游戏本身没有建立自己的用户体系,带来的实际问题就是上亿次的用户访问并未沉淀在这个创业团队手上,成为他们真正的用户资产。

React-Native做为Facebook开源的移动开发语言,基本的理念是能不能JavaScript类的语法做移动端的开发,开发者只要去写一次代码,就能同时在ios和Andriod两类手机操作系统上运行,减少移动APP开发的工作量。

我们可以看到应用号应该是通过API的方式将部分系统级的权限和微信独有的社交和支付接口开放给了应用号,同时实现了React-native设计的初衷,一次开发,两端运行。应用号所提供缓存、文件操作和websocket等接口,让腾讯云上的移动开发者有机会把自己的“小程序”做的比H5游戏更重一些,这也意味着开发者可以更好地在微信应用号的平台上沉淀属于自己的用户资产。

图1 移动开发技术栈的演进

微信应用号的开发语言是HTML标签语言的子集,而且语言设计上有着React-Native的影子,有这两种语言基础的开发者学习应用号开发会更容易

今天,我在国内主流搜索引擎搜索“应用号开发“结果 2,660,000个,搜索”ReactNtive“ 结果 2,140,000个。结果也可以看出,已经流行了1-2年的react-native技术在热度上比不上新出的应用号开发。我的预期是会有不少学React Native的人开始转向应用号开发学习,没有内测资格的会先学习微信服务号开发。


图2 Html5-应用号开发语言-ReactNative三种语言接口、功能对比
注:以上应用号信息来自于腾讯科技报道

微信应用号所开放的手机LBS、文件处理、重力感应等“系统级接口” 加上微信自身的社交、支付接口,将会为移动开发者极大赋能,开发者可以更轻量级地开发出更多新的玩法

通过上表开发语言的对比看出,HTML5语言里面虽然设计了一定的地理定位、系统信息获取等涉及手机客户端的底层能力,但实际上由于手机操作系统的权限设计限制,这些接口的访问都是需要系统授权的。
下图是我分别在Safari浏览器和微信内置浏览器中运行HTML5的 获取地理位置方法的结果:

1) Safari浏览器中getCurrentPosition的系统授权请求被屏蔽了,没有提示,也无法返回结果。
2) 微信中能够弹出getCurrentPosition的系统授权请求,在点击“同意”后,可以反馈出手机对应的经度纬度。

图3【LBS位置读取】Safari浏览器 vs 微信内置浏览器

小程序(应用号)可以让你的应用火,而云计算可以让你在火了之后不会宕机

下图是我个人预计大部分应用号的前后台技术架构,应用号的前端的开发语言基本上应该是应用号扩展的HTML标签语言+CSS+JavaScript,后台服务的开发其实不论是用Python或者是Node.js应该都是可以的。

但是对于预计访问量较大,需要实现HA高可用的应用号而言,就需要考虑使用CLB负载均衡,CDN内加速,云缓存等服务来保证应用的访问体验;如果涉及电商秒杀场景还可以考虑使用腾讯云的CMQ消息队列;对于安全性要求较强的金融与游戏类应用,则需要考虑接入大禹服务来抗DDOS攻击、接入天御防刷服务来抵御恶意用户。


图4 预期的应用号技术架构

小结:

微信小程序(应用号)的出现,伴随着更开放的手机“系统级”接口和微信社交+支付接口,让创业者有机会和H5时代一样,打造出下一批现象级的互联网应用。但云计算能够给这些受欢迎的应用号,提供高可用、高扩展与安全性。

一句话总结,“小程序可以让你火,云计算可以让你在火了之后,不会宕机”。

附:我们这边写的一个小程序demo,1小时就可以快速搭建。

[干货] 有了微信小程序,谁还学ReactNative?的更多相关文章

  1. 用 React 编写的基于Taro + Dva构建的适配不同端(微信小程序、H5、React-Native 等)的时装衣橱

    前言 Taro 是一套遵循 React 语法规范的 多端开发 解决方案.现如今市面上端的形态多种多样,Web.React-Native.微信小程序等各种端大行其道,当业务要求同时在不同的端都要求有所表 ...

  2. 从0到1构建适配不同端(微信小程序、H5、React-Native 等)的taro + dva应用

    从0到1构建适配不同端(微信小程序.H5.React-Native 等)的taro + dva应用 写在前面 Taro 是一套遵循 React 语法规范的 多端开发 解决方案.现如今市面上端的形态多种 ...

  3. 【腾讯Bugly干货分享】微信小程序开发思考总结——腾讯“信用卡还款”项目实践

    本文来自于腾讯bugly开发者社区,未经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/58212d0fa7a7574c4f4cc3c5 作者:peggy 小程序概述 1 ...

  4. 【腾讯优测干货分享】微信小程序之自动化亲密接触

    本文来自于腾讯优测公众号(wxutest),未经作者同意,请勿转载,原文地址:http://mp.weixin.qq.com/s/HcPakz5CV1SHnu-U8n85pw 导语 山雨欲来风满楼,最 ...

  5. 干货,看微信小程序后台用户数据如何演变和递增

    这几天发现附近小程序又多了好几家,其中有普通小程序和门店小程序,把它们做一个对比,门店小程序更多的像一张名片,只有基本的企业名称.地址.营业时间.电话和门店照片,和普通小程序相比显得逊色许多.楼下的水 ...

  6. 一个Accecc_Token生成和缓存和读取类,微信/小程序开发必须学

    Access_Token是调用微信和小程序各种接口的临时凭证,有效期2小时(7200秒),很多接口都需要调用access_token接口生成一个access_token的,例如微信支付,微信分享,公众 ...

  7. 微信小程序初体验(上)

    版权声明:本文由练小习原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/204 来源:腾云阁 https://www.qclo ...

  8. 微信小程序框架探究和解析

    何为框架 你对微信小程序的技术框架了解多少? 对wepy 框架进行一系列的深入了解 微信小程序框架解析和探究 小程序组件化框架WePY 在性能调优上做出的探究 开发者培训班上海专场PPT分享:小程序框 ...

  9. Java的家庭记账本程序(H) :微信小程序 image 标签,在模拟器中无法显示图片?(已解决)

    日期:2019.2.25 博客期:036 星期一 吼!今天我还是继续研究了自己的微信小程序,还没有连接数据库,只是在xml的设计上添加了不少东西,大家可以看我的截图,嗯~说到今天的收获,就是 marg ...

随机推荐

  1. oops_根据epc定位linux_kernel_panic位置

    韩大卫@吉林师范大学 2014.12.10 转载请表明出处 ***************************************************** 关于内核报错 “Unable t ...

  2. Spark编程模型(RDD编程模型)

    Spark编程模型(RDD编程模型) 下图给出了rdd 编程模型,并将下例中用 到的四个算子映射到四种算子类型.spark 程序工作在两个空间中:spark rdd空间和 scala原生数据空间.在原 ...

  3. 单网卡绑定多个ip, 多个网卡绑定成一块虚拟网卡

    Linux网卡配置与绑定   Redhat Linux的网络配置,基本上是通过修改几个配置文件来实现的,虽然也可以用ifconfig来设置IP,用route来配置默认网关,用hostname来配置主机 ...

  4. 字符串移位:如“abcdefghi”右移2位后变成“cdefghiab”

    函数头: //pStr 是指向以'\0'结尾的字符串指针 //steps 是要求移动的步数 void LoopMove(char *pStr, int steps) { //...... } 使用库函 ...

  5. 安装 Windows SDK for Windows 7 时遇到的一个问题及解决办法

    最近试着用 VS2010 + Qt 开发程序,发现 VS2010 里面没有提供单独的调试器 cdb,这样用 Qt Creator 时就无法设置断点调试,很不方便.想起 Windows SDK for  ...

  6. Geometric deep learning on graphs and manifolds using mixture model CNNs

    Monti, Federico, et al. "Geometric deep learning on graphs and manifolds using mixture model CN ...

  7. Spring 4 官方文档学习(十)数据访问之OXM

    http://docs.spring.io/spring/docs/current/spring-framework-reference/html/oxm.html Java Object 与 XML ...

  8. e1086. if/else语句

    The if statement encloses some code which is executed only if a condition is true. The general synta ...

  9. 关于HTTP keep-alive的实验(转至 http://my.oschina.net/flashsword/blog/80037)

    前面一篇文章提到,HTTP1.1中持久连接已经是默认配置,除非设置Connection为close,否则默认都会进行持久连接.但是我们知道事实标准跟教科书还是可能会有一定差距的,所以不妨自己尝试一下. ...

  10. html学习笔记五

    关于服务端和client的校验问题 上述的表格信息填写后发现,即使有些信息不添,依旧能够提交 所以针对此问题,我们要在client进行数据填写信息的增强型校验(必添单元,必须填写有效信息,否则无法提交 ...