首次开发小程序,完成了一个简单的功能(半成品),有所思,有所感
始末
2017年1月9日,微信小程序上线,朋友圈里铺天盖地的各种截图,足见其火爆。诸多移动应用大厂纷纷上线各自的小程序版本,笔者所在的D公司也悄悄发布了小程序,看来是在保密情况下开发的,在之前一段时间里自己竟从未听闻。
纸上得来终觉浅,绝知此事要躬行。今天笔者就尝试开发了一个小程序,功能非常简单,见下文。
程序页面与功能
整个小程序包含两个页面,登陆页与功能页。登陆页显示一张欢迎图片和一个输入框,当用户输入正确的文字后,跳转至功能页。功能页提供一个简单的ASCII字符转换功能。
实操
依照官方Demo,新建两个页面目录,布局写入wxml
,逻辑写入js
。
代码过于简单,而且涉及个人隐私,略去不提。着重谈思考与感想。
思考与感想
架构
整体看来,小程序的结构还是很清晰的。
- 按页面组织,每个页面是一个文件夹
- 文件夹下,wxml(布局),json(配置),wxss(样式),js(逻辑),自带数据绑定,接近设计模式中的MVVM模式
- 官方集成登陆、定位、地图、支付、分享、网络请求等基础服务,减少二次开发成本
- 另一方面,这也限制了开发者对于底层工具的选择,只能寄希望于微信提供的API足够强大与高效,因为你压根也没有别的办法去修改底层服务
开发者工具
目前看来,微信官方提供的开发者工具只是个半成品,由于缺少一些常用功能,使用起来反而会碍手碍脚,拖慢开发速度。建议开发者使用自己习惯的工具进行开发,只使用官方开发工具中的预览&发布功能。
官方开发者工具的一些槽点
- 快捷键匮乏:打开文件,关闭文件,自动格式化……
- 无法批量操作文件
- 无法批量重命名变量
- 无法全局搜索
- 不支持Less
Wxml
标签中不支持键盘展开/收起节点- wxml、wxss在sublime等编辑器中无语法高亮
- 偶尔出现调试面板中只显示
Console
Sources
Network
三个标签的bug,重新下载后解决
发布
这是笔者最不喜欢的一点,必须以公司/企业/媒体/政府机关的身份进行认证后,才能发布到线上,完全堵死了个人开发者发布的道路。
一些思考
张小龙的野心很大,当微信占据了8亿手机入口后,这野心开始显露出来————微信不会满足于只做一个通讯软件,它正试图成为一个入口,一个触达使用者生活方方面面的入口。一旦这个生态系统被证明是行之有效的,未来人们手机上可能只会安装一个微信。
对于开发者,尤其是Android/iOS开发者,这并不是一个好消息,他们可能需要改行写js/css了。
支付宝地位受到威胁,阿里恐成最大输家。
以上的一切,都建立在小程序真正跑得够快、够好的基础上,目前看来这是远远不够的,比起原生系统,小程序的体验要下降许多,尤其是Tap/Scroll事件,卡顿非常明显。
附1: ASCII对照表
附2: JavaScript中获取字符的ASCII值,以及将ACSII转换为字符
1 | var x = 'c'; |