Polymer能够为大家提供各类必要工具,从而将Material设计元素添加到Web应用程序当中;此外,它同时也是一款相当不错的开发框架。
得益于智能手机、大尺寸手机以及平板设备逐步接近PC的强大性能,如今移动端与桌面端的用户体验开始变得愈发一致。而这种一致性的核心概念之一就是利用一种通用型设计语言,并同时在移动应用程序以及Web应用程序当中加以使用。有鉴于此,微软公司开发出了用于构建WinJS库基础的现代设计语言,而黑莓也同样利用自家Cascade在bbUI.js当中进行功能构建。
去年谷歌公司推出其Material Design语言及其Plymer框架。Material Design作为基础性机制,能够帮助开发人员在最近Android系统当中设计出与谷歌外观与使用体验思路相符的成果。其同时为我们的代码提供原生UI组件以及一整套用于实现效果匹配的Web组件。
立足于***Web技术,Polymer是一套负责为应用程序构建可重复利用UI组件的框架。与React非常相似,其能够以自己的方式对页面元素进行提取,并利用其作为设计基础。元素目录的存在简化了使用流程,帮助用户更为轻松地查看并选取自己需要的元素,同时将其作为标准HTML元素应用在页面当中。需要添加地图?大家只需要找到合适的Polymer地图元素,将其导入而后作为标签进行调用即可。
虽然Polymer主要使用现代Web标准,特别是Web组件,但其在相对陈旧的浏览器上同样能够顺畅运行。大家可以利用polyfill中间层通过一条JavaScript代码在陈旧浏览器上加载必要的库,从而为其赋予对特定Web组件子集的支持能力。
在初始阶段,我们首先需要利用Bower这类工具来确保自己在安装某种组件的同时,也将其全部依赖元素进行了安装。这意味为我们的应用程序设置一个合适的配置文件,不过一旦通过Bower命令行安装了Polymer,其就会始终保持更新。大家也可以选择为整套Polymer版本下载一个Zip文件,不过如此一来就没法享受自动更新带来的便利了(而且如果大家使用GitHub,那么需要自行管理运行依赖关系)。
一旦安装完毕,大家接下来要做的就是将自己的页面导入进去,以保证在定义元素之前首先为其添加核心Polymer功能。大家可以从零开始创建新元素,构建出一套模板并添加内容。在创建出一个元素之后,我们则能够着手将其与其它元素相结合,同时利用Polymer的AJAX支持能力添加数据绑定以及通过JSON实现的外部API链接。
Polymer还允许大家将自有元素与公共API相结合,这样它们就能对特定事件做出反应并进行数据处理。由此衍生出的功能可谓不计其数,而这也正是Polymer实现动态内容交付的核心机制所在。我们可以将事件引入到元素整个生命周期之内的各个方面,从其创建完成后就始终与之结合。这样一来,大家将可以让元素具备诸多新特性,例如在其准备好接受调用时给出相应信号。大家还能够向元素中添加声明数据绑定,从而更为便捷地将来自外部数据源的内容填充进去。
在为某个元素指定了API之后,我们可以发布其属性,使其拥有与HTML属性类似的运行方式。接下来的任务就很简单了,我们将某个元素的数据绑定链接至一项属性,从而帮助设计人员快速进行属性设定——正如其面对任何传统HTML元素一样。
使用Polymer的核心优势在于针对特定应用程序构建设计元素:一旦构建完成,其从本质上等同于HTML标签。开发人员可以构建并记录一种元素,而设计人员则将其运用在页面布局当中。通过这种方式,我们既不需要学习新的开发机制,又能保证开发者与设计师充分利用Polymer的灵活性优势来构建出易于理解的Web应用程序。
谷歌公司的Polymer组件库为大家提供了在向Web应用程序当中添加Material Design元素时所必需的多种工具选项,不过其同时也作为一套开发框架存在,帮助我们根据需要构建自有组件或者对现有元素进行自定义。大家还可以利用附带数据绑定的Polymer模板交付动态内容,即为组件提供需要处理的数据。
一旦大家构建或者导入了一个Polymer元素,其将以等同于任意HTML元素的形式运作,这意味着我们能够利用这些基础元素快速构建起更为复杂的UI功能。大家还可以直接使用一整套主题元素集合(谷歌将其称为‘纸上元素集合’),或者直接使用那些适用于现有设计工作的非主题组件。
Material Design以及Polymer的一大核心特性在于,其能够利用图标来显著简化页面布局。在构建我们所熟悉的Android UI的过程中,Polymer会利用一套图标组件集将SVG图像添加到页面当中,而库中直接提供的超过150种图标能够根据名称进行调用并被添加到应用内。同样的,其还提供一套规模庞大的控件库,允许我们直接在页面中加以使用。在传统UI框架及HTML当中,大家可能需要编写大量代码来实现某些设计目标,例如在应用程序当中添加进度条——不过有了Polymer,我们可以直接将其作为一个能够赋值的简单元素,而后供Angular等其它框架加以使用。如此一来,在单页面Web应用当中构建动态元素就变得非常轻松了。
虽然Polymer确实是一款有趣且非常灵活的UI框架,但其真正价值在于证明了Web组件确实能够为我们的应用程序所运用。随着对Chrome、Opera、火狐、Safari以及最近的微软Edge浏览器的全面支持,这些组件很可能会迅速成为UI元素交付工作中的核心,特别是考虑到其承诺带来的小型高速度Web应用在市场上的显著吸引力。利用这些只在需要时载入的元素取代原本体积庞大的JavaScript UI显然***现实意义,而小型页面也将使得移动Web变得更加友善,同时大大降低开发人员的代码编写成本。