“一次编码,处处运行”一直是应用程序开发人员的梦想。在传统的桌面应用开发中,Java等虚拟技术已经在梦想实现的路上迈出了很大一步。随着移动应用的强势崛起,多平台开发再次成为程序设计人员所必须解决的问题。利用HTML和JavaScript,Hybrid App作为一种有效的解决方案已经取得了一定的成功。但是,对流媒体处理速度慢的缺陷使得该方案越来越难满足用户需求。在这种情况下,开发人员迫切需要一种新的跨平台开发的解决方案来应对挑战。NativeScript就是一款由Telerik公司提出的跨平台原生移动应用的开发框架。该项目的目的是利用单一代码库构建面向多平台的原生移动应用程序,支持iOS、Android、Windows Phone等主流的移动操作系统平台。NativeScript为开发人员提供便捷之处在于利用Javascript和CSS就可以进行原生用户体验的移动应用开发。而且,Nativescript的源代码直接托管在GitHub上,真正实现了零门槛约束。
JavasScript因为易学易用的语言特点,早已被广大程序开发人员所掌握。而随着主流移动平台推出强劲的JavaScript处理引擎(iOS 7及以后版本的 JavaScriptCoew、Android 自带的 V8 JavaScript Engine),使用这些引擎来进行跨平台开发也成为高效的解决方案。据 Teletrik公司的开发大使TJ VanToll透露 ,NativeScript的基本运行原理如下:用户首先用JavaScript语言编写应用程序,然后利用各平台的处理引擎对应用进行解释。之后,NativeScript运行时环境找到原生的目标API,将JS数据类型转化为相应的原生类型,从而运行平台的原生代码。采用这种方式使得NativeScript可以配合最新的平台 API 以及各种第三方库,方便应用程序更新。此外,NativeScript 借助一套类似 node 的包管理系统,用 modules 对这些不同平台的代码进行了统一的封装。对于 UI 的处理,NativeScript 选择了使用类似 Android 的 XML 的方式进行布局,然后用 CSS 来控制控件的样式。
NativeScript的第一个公开版本在两个月前一经发布便受到了广泛关注。很多开发人员积极反馈对于NativeScript的意见以及建议。近期, NativeScript进一步推出了正式版本 ——NativeScript 1.0.0。在新版本中,开发人员特别加入了一些新的特性来满足用户的需求。例如,NatvieScript提供了一些应用程序样例,帮助开发人员进行更好的了解该工具的使用。样例中包含了TelerikNEXT会议的官方应用软件和一款名为Friends的软件。这两个软件的源代码都已经放在了GitHub中NativeScript目录下,供用户下载和研究。此外,对于不同分辨率的设备,NativeScript实现了不同的视图,并提供不同分辨率的图片,来提升用户体验。AngularJS 2.0也已经初步集成在了NativeScript中,供网页开发人员使用。而且,NativeScript还加强了对于调试方面的支持。这包括支持“—print-app-output”来记录软件控制台的所有输出以及在仿真器上进行调试等。最后,该版本的NativeScript还特别改善了Android设备上应用程序的加载时间。
其实,NativeScript 所代表的解决思路就是使用已经被广大前端开发者所掌握的工具链和语言来进行移动应用程序开发。其一经推出必然会收到很多前端开发者的欢迎,但是使用JavaScript所面临的UI问题仍然存在。此外,跨平台开发框架面临的应用程序尺寸的问题以及复杂应用程序开发中的调试问题也是NativeScript发展所遇到的挑战。通过正式版发布时所更新的特性,读者可以看出NativeScript有信心应对这些挑战。据 Teletrik公司官方博客表示 ,未来NativeScript的发展将会关注iOS系统中第三方静态库的支持、NativeScript插件的支持,Android系统编译时间的优化以及应用程序内部的错误报告支持等方面。
感谢崔康对本文的审校。
给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ,@丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入InfoQ读者交流群 )。