NativeScript 是 Telerik 开发的一款从单一代码库构建多平台原生移动应用的开发工具,使开发人员可以使用JavaScript和CSS为iOS、Android和Windows Phone(很快就会支持)平台编写原生移动应用,并且跨平台共享代码。
Telerik的副总裁Todd Anglin 告诉InfoWorld ,“NativeScript将在由iOS(JavaScriptCore)、Android(V8)和Windows(Chakra)提供的原生JavaScript虚拟机上运行JavaScript”。同时,它提供了“一个JavaScript代理,将所有底层的原生iOS/Android/Windows API暴露给这些JavaScript引擎,从而使JavaScript可以完全控制本地设备。”
NativeScript还处理跨平台的原生UI。它提供了一种标记语言,可以在应用构建时编译成平台相关的UI窗口小部件。例如,当开发人员向应用添加了一个按钮,NativeScript将自动使用iOS、Android和Windows提供的、恰当的按钮UI控件。也就是说,NativeScript是通过底层的JavaScript引擎来控制原生UI层。所以,NativeScript应用的整个用户体验都是原生的,支持与原生应用相同的可访问性模型。
根据 NativeScript GitHub页面 的介绍,Telerik公司并不想围绕该框架重新创建一个生态系统,而是希望加入现有的JavaScript和原生iOS/Android/Windows生态系统。因此,NativeScript不仅支持现有的JavaScript库,而且还支持现有的原生Objective-C、 Java和.NET库。不过,开发人员并不用为了重用这些库去了解这些语言,因为所有的API都是用JavaScript提供的,而且未经修改。也正是因为这个原因,当苹果、谷歌和微软更新他们的移动平台时,开发人员可以使用最新的原生API和新增的UI组件,而不需要任何官方支持。
Appcelerator Titanium 的目标也是通过JavaScript构建原生移动应用,但Anglin认为它定制太多。同时,他认为,“不依赖于浏览器/Web UI层是NativeScript应用与混合应用(如PhoneGap和Sencha)的一个重大区别。它渲染独立于浏览器的原生UI……”
Telerik将在本周推出一项beta测试计划,并将于4月底发布NativeScript 1.0。
感谢郭蕾对本文的审校。
给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ)或者腾讯微博(@InfoQ)关注我们,并与我们的编辑和其他读者朋友交流。