微信小程序尝鲜后,我只想把移动开发做到更极致

6,066 阅读5分钟

趁着微信小程序刚出锅的热腾劲儿,看了看一众的赞赏和热捧后,作为一枚“即将被失业”的 iOS 移动开发者,也拾起曾经捯饬 “H5” 的旧汤匙跟着尝了尝鲜。试过味道后,我只想把 Native 移动开发做到更极致。

微信小程序(MINA)尝鲜

本来没有内测资格的我,会想着尝鲜 MINA(MINA IS NOT APP) 纯属机缘巧合。在 Github 上逛着, 突然发现这么一个名为 [weapp-ide-crack] 的小项目,那可不就像是看见了阿里牌的月饼吗?赶紧造起来!


微信小程序开发工具

以上便是开发微信小程序的 IDE 了,接下来凭着对 H5 尚未久远的记忆,跟着泄露的 [MINA 开发文档] 我们来看看这个演示示例的代码。


app.js

​ app.js 是小程序的脚本代码。我们可以在这个文件中监听并处理小程序的生命周期函数、声明全局变量,调用 MINA 提供的丰富的 API。


app.json

app.json 是对整个小程序的全局配置。我们可以在这个文件中配置小程序是由哪些页面组成,配置小程序的窗口背景色,配置导航条样式,配置默认标题。注意该文件不可添加任何注释。

app.js 和 app.json 两个文件在一个微信小程序中是必需的,那么根目录除了这两个文件,还有一个 app.wxss 文件。


app.wxss

app.wxss 是整个小程序的公共样式表。我们可以在页面组件的 class 属性上直接使用 app.wxss 中声明的样式规则

看过了根目录的关键文件,接下来我们看看如何创建一个页面。


pages 目录

每一个小程序页面是由同路径下同名的四个不同后缀文件的组成,如:index.js、index.wxml、index.wxss、index.json。


微信小程序开发源码

index.wxml是页面的结构文件,即 HTML


微信小程序开发源码

index.js是页面的脚本文件


微信小程序开发源码

index.wxss是页面的样式表,即 CSS

每个页面还可以有单独的 .json 配置文件,可独立配置不同于 app.json 的 window 当中的属性。

这便是一个微信小程序的结构框架了,不得不说,微信真的将“微”实力发挥到了极致,大道至简,为开发者考虑了许多,省去了许多的繁琐。确实,再借助微信提供的 API 文档和各种组件,稍微有些 Web 前端开发基础,就可以非常容易上手开发一个小应用了。

然而,我只想把移动开发做到更极致

不得不说,前端技术一直以来便有它得天独厚的优势,轻量便捷,即用即得,即用即走。从几年前的轻应用开始,到微信公众号开放的已有开发能力,实际上都算得上“小程序”,譬如罗辑思维底部的自定义菜单接入的各项服务,尤其是商城主页,用户体验和交互与其“得到”原生App已经十分一致了。

实际上,这次小程序 “MINA IS NOT APP” 真的算不上是 Micro-Application,只不过是微信原有平台开发能力的“小”升级,添加了一些官方的前端框架和组件,给更多的开发者赋能罢了,再依托微信强大的用户群以及流量分发能力,将其平台服务范围与服务能力再向外拓展了一些罢了。做个不切实际的假设:若是阿里系未被微信平台封杀,想必,推动“小程序”发展的故事主角可能就不是腾讯自己了。

虽然小程序实际上只是微信开放平台的一次小升级,但显然,这一次升级是成功的。许多人吐槽“小程序”只不过是虚火,但不可否认的是,它的确火了,它让更多人认识到微信平台不仅仅局限于公众号的内容分发能力,还有其原本就具备的强大开发能力,并且竟也开始像 Google、Apple 和 Facebook 一样,能够引起了众多开发者的一阵狂欢了。不一样的是,微信还能让众多或懂或不懂技术的“老板”们、投资者们也跟着一起狂欢,这影响在“以 HR 和资本为领导”的中国特色互联网行业可了不得。

因此,作为 iOS 原生应用开发者,没有危机感也不大可能。因为毕竟许多简单的业务逻辑真的可以通过 Web 技术实现,并借助微信平台触及目标用户了,至于 8 亿用户能触及多少,那全凭功夫、一较高下了,毕竟谁也不敢说原生应用在这个层面就一定更有优势。说到这,可能不少原声应用开发者是真的开始考虑要转行了。但以下几点,让我坚定地只想把移动应用开发做到更极致。

MINA 美不过 Native




Apple 对美的追求是一如既往的,因此,提供了像 QuartzCore、Core Graphics、CoreAnimation等诸多框架,方便实现各种符合直觉、酷炫且流畅的交互体验。

MINA 快不过 Native


这就不用多解释了,Apple ,包括华为、三星等厂商不断地推出性能越来越强劲的硬件设备,搭配 iOS 与 Android 操作系统,并不断优化,使其最大发挥硬件能力。而微信运行在这两大平台,哪怕真的能实现各种功能,它无论如何也要多浪费一层计算能力。

MINA 强不过 Native


Swift on Github


Android on Github

Apple 和 Google 两大世界一流公司的平台,并且还都积极拥抱开源,聚集全世界开发者的力量,被封闭的微信小程序挑战?况且,Apple 大道至简的能力不比微信差,Swift 作为一门现代编程语言,用优雅来形容真的毫不过分。

以上,都是一枚 iOS 原生开发者的诡辩。嗯,就酱~,看 Swift 去了。

结语

最后,希望在 MINA 快餐遍地开花之前,我们能成长为移动应用原生开发的米其林星级主厨。