这是我在知乎上回答的问题(自问自答),和 V 友们分享一下,欢迎大家在这里讨论
“哇,我是不是可以轻轻松松就写出一个 APP 啊?”,这也许是许多开发者的第一感受,你的想法没错,这也是微信想要达到的效果。但是作为开发者,我个人认为用户体验并没有这么重要,“一个流畅的 APP 用起来比不断刷新的网页爽多了”不能作为我们投入到微信小程序开发中的理由。我认为开发者能到达的目的(速度、成本、回报、流量、收入等)比所谓的用户体验重要得多。
所以,我的建议是:“不要过高(盲目)地期待用户体验能给你带来的好处,应该多评估你所受到的限制,以及你能得到的回报”。下面说说我对小程序的看法(提醒,这是 2016 年 9 月写的,以后可能会显得不合适或不正确)。
小程序不是基于浏览器的,而是基于微信程序的,要开发小程序必须学习使用 WXML 与 WXSS ,代替 HTML 与 CSS ;
WXML 与 WXSS 没有完善的文档,如果遇到技术问题就会卡壳,可能会导致几天没有进展;文档中暗示了 WXML 、 WXSS 与 HTML 、 CSS 查不多,但是却没有明确说哪些 HTML 标签可用,哪些 CSS 属性可用,或者哪些不可用,这一切需要开发人员自己一遍一遍的尝试。对于设计师来说也是个困惑,万一根据 Web 开发经验设计出来的效果前端人员实现不了怎么办?
预感小程序不支持常用 CSS 库,小到一个 button 、一个 icon 都要自己处理,每一个像素都要亲自调整,又要重新造轮子了。对于设计师与前端来说,都是痛苦的体验;
小程序基于“数据绑定”的思路绑定了 Model 与 View ,看似自动化了数据的显示,但也同时也失去了对 DOM 的自由操作。小程序的 JS 不支持 window 对象,不支持 jQyery 等常用库,这就意味着你不能重复使用以前积累的前端代码;在思路上我们要保持“ Less is more ”,但在面对选择上我认为“能总比不能好”。小程序在保持简单的同时也让我们失去了许多选择;
CSS 与 JS 的选择器没有那么灵活,仅支持简单的选择器功能,对于有经验的开发者将会感到不便;
目前看来,没有 APPID 是无法开发的,虽然可以下载微信的模拟器( IDE ),但实际(好像)无法运行;
开发小程序,可以轻松调用以下微信的 API (并且不用考虑机型问题):上传、下载文件,拍照、选择、上传图片,录音、播放音频文件,播放视频文件(仅支持腾讯视频),本地数据缓存,获得地理位置与调用微信内置地图,监听重力感应与罗盘数据, Canvas 绘图,微信账号登录,微信支付等(其他未列出的就是比较常见的了)。但是除了重力感应、罗盘、 Canvas 绘图以外,其他 API 在微信公众号的的 JS SDK 中也有,也许以后小程序会推出更多“ APP 才有的 API ”;
与公众号相比,许多功能小程序目前还没有,例如:摇一摇、扫一扫、主动向用户发消息、分享到朋友圈(以及其他分项功能)、卡券等(写到这里的时候发现小程序已经可以给用户发模板消息,但限制较强);
目前不知道是否可以通过 URL 直接访问小程序,看样子好像暂时不可以,这就意味着你不能在“阅读原文”中引导用户访问某一篇文章的内容;
目前不知道是否可以在小程序中“按住二维码扫描”,文档里面没有提及,除非看见别人可以这样搞,否则就不要以为能通过在小程序内放一个二维码增加公众号的粉丝(但是网页可以);
目前我不知道是否可以在小程序中使用链接跳转到普通网页去,如果可以那么用户体验就会打折扣,如果不可以那又怎么和其他网站合作呢?(我认为如果不支持浏览器必然会大打折扣,所以因该是支持的);
小程序发起请求必须使用 HTTPS 协议,也就是说如果你要和其他第三方网站合作,调用他们的 API ,那么他们必须提供 HTTPS 协议,目前这会导致你无法与许多第三方网站合作;
小程序的推送功能目前远不如公众号,也不能从公众号底部直接进入小程序,还不如写一个 HTML 网站,引导用户(按住)扫码关注公众号,再从公众号菜单进入程序来得直接与实在;
有人说小程序可以用微信账号登录与微信支付,而订阅号不可以,其实订阅号也可以。注册一个订阅号,点击订阅号的菜单跳转到网页去,但是网页使用服务号的 JS SDK 开发就行了,一样可以登录、支付,钱入账到服务号中,此方法甚至不需要用户点击“同意”就可以得到用户的头像和用户名(可以关注我们的公众号“安顺 US ”体验一下,我已这样做已经快两年了,目前暂无限制);
目前必须在微信 IDE 中调试,在微信 APP 中运行,如果这两个地方有 Bug (或者更常见的是你怀疑他有 Bug )的话怎么办?你没有文档可查,网上也搜索不到解决方案,你发邮件问微信的开发人员他们也不会给你回邮件(除非你是他们的合作伙伴)。
小程序的维护需要有小程序开发经验的人,传统 Web 开发人员需要花时间学习(更多的是练习)才能适应小程序的开发与维护,所以在招人上可能会更困难;
最后,我相信微信小程序会蓬勃发展,会有大量的开发者加入,会有完善的文档。我认为小程序将会大幅降低开发成本与分发成本,这远比提高用户体验更能拉拢开发者,未来会不会出现一个小程序开发大军现在还说不准,但是我看好小程序。只是,我认为除非你和微信有合作,微信可以帮你引流,可以推荐你的小程序,让你得到初期发布的红利,否则不要急于开发小程序,不如再观察观察。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.