NativeScript

用於開發原生移動應用程式的開源框架

NativeScript是一个提供开发Apple iOSAndroid移动应用程序开源软件,最初由Progress构思和开发。[3]2019 年底,Progress的长期合作伙伴nStudio接管NativeScript项目。[4]在nStudio的监督下,NativeScript于2020年12月成为OpenJS基金会的培育项目。[5]NativeScript可以使用JavaScript或是其他可以编译成JavaScript的编程语言编写,例如TypeScript。NativeScript同时也支持Angular[6]Vue[7]。使用NativeScript构建的移动应用程序会产生完整的原生应用程式,其使用了与XcodeAndroid Studio相同API。[8]此外,软件开发人员可以加入CocoaPodsMavennpm.js的第三方程式库到程序中而无须其他的包装函数。[9][10][11]

NativeScript
原作者Telerik by Progress.[1]
开发者社群
首次发布2014年 (2014)
当前版本8.2.2(2022年4月6日,​2年前​(2022-04-06[2]
原始码库 编辑维基数据链接
编程语言JavaScriptTypeScript
平台跨平台
许可协议Apache License 2.0
网站nativescript.org

发展

NativeScript于2015年3月首次公开发布,并在两个月后发布了1.0.0版本。[12]NativeScript在公开发布后不久就迅速流行起来,短期之内超过1500名Twitter用户追踪其Twitter,其Github存储库也获得了3000颗以上的星星。[13]与此同时,NativeScript已有700个扩展,分别由Progress官方及开源社区开发。[14][15]除此之外,也可使用Angular来开发在Web平台和移动平台之间共享的应用程式原始码。[16][17]

架构

NativeScript和所有必需的扩展都使用包管理器npm安装。用户可通过命令行或名为NativeScript Sidekick的GUI工具建立、配置和编译项目。[18] NativeScript使用XML文件定义不同平台的用户界面,再由XML文件中的抽象描述来调用不同平台的原生UI元素。使用Angular和TypeScript开发的应用程式可以于目标平台外进行开发。NativeScript使用node.js执行和构建移动版应用程式。[19]NativeScript的目标是在iOS和Android两个平台之间实现90%的通用代码。[1]

直接调用原生API及控件

NativeScript使用XML文件定义不同平台的用户界面[20],同时NativeScript使用了跨平台的抽象XML资料来触发特定于平台的代码,这些代码直接与目标平台的原生物件交互,例如说当调用NativeScript Button API的UI抽象时,NativeScript会直接调用iOS上的UIButton[21]或Android上的com.android.widget.Button[22]

虽然应用程式可能使用JavaScript、TypeScript、Angular或Vue.js来编写,但其源始码不会被编译或转译,而是按原样直接在装置上执行。此构建方式免除了交叉编译或转译的需求。[11]此外,虽然应用程式的源始码是使用浏览器或包含WebView的移动应用程序中常见的语言编写,但NativeScript应用程式直接在本机装置上执行,而非操作DOM或调用任何浏览器来执行。[6]

主要功能

原生API对应

NativeScript的另一个特性为使用映射来调用原生API端点。NativeScript不需要在框架和平台API之间单独捆绑,而是使用映射来获取有关原生平台API的资讯和元数据,因此可以立即使用所有新加入的API。[6]

用户也可以使用第三方库来达成映射的效果。在NativeScript中JavaScript(或TypeScript/Angular)可以直接与调用原生代码,因此无须使用Objective-C、Swift、Java或Kotlin编写捆绑层(英语:binding layers)。[11][23]

与Angular一同使用

自NativeScript 2.0起,开发人员可以使用Angular建置跨平台的项目。[24]除此之外,开发人员使用Angular时可以使用相同的原始码制作网页和移动版应用程式。[25]

与Vue.js一同使用

开发人员可以使用nativescript-vue扩展进而在NativeScript使用Vue.js框架。[7]

支持的工具及服务

  • NativeScript Sidekick是一个图形用户界面,建构于NativeScript CLI之上。开发人员可以使用NativeScript Sidekick来套用模板、云端构建应用程式,并将应用程式发布到公开的应用程式商店。
  • 开发人员可以使用NativeScript Playground在浏览器中测试NativeScript,并在实体装置上预览应用程式。
  • 开发人员可以在NativeScript市集(英语:NativeScript Marketplace)获取扩展、预构建应用程式模板和可执行的示例应用程式。

参考文献

  1. ^ 1.0 1.1 Frequently asked questions about NativeScript. NativeScript.org. [2016-03-20]. (原始内容存档于2016-03-18). 
  2. ^ Releases · NativeScript/NativeScript. GitHub. [2018-06-03]. (原始内容存档于2021-08-31). 
  3. ^ Creating Mobile Native Apps in JavaScript with NativeScript. InfoQ. [2022-07-12]. (原始内容存档于2022-06-19). 
  4. ^ Saripella, Surya. The Next Chapter for NativeScript: nStudio. NativeScript. [2022-07-12]. (原始内容存档于2021-01-16). 
  5. ^ Romoff, Rachel. NativeScript joins OpenJS Foundation as Incubating Project. The Linux Foundation Projects. OpenJS Foundation. 7 December 2020 [4 March 2021]. (原始内容存档于25 January 2021). 
  6. ^ 6.0 6.1 6.2 Krill, Paul. JavaScript goes native for iOS, Android, and Windows Phone apps. InfoWorld. March 10, 2015 [July 12, 2022]. (原始内容存档于January 3, 2022). 
  7. ^ 7.0 7.1 NativeScript-Vue. nativescript-vue.org. [2017-10-31]. (原始内容存档于2021-10-04). 
  8. ^ NativeScript framework eases cross-platform app development woes. searchcloudcomputing.techtarget.com. [2021-08-06]. (原始内容存档于2021-08-06). 
  9. ^ Krill, Paul. NativeScript warms up to AngularJS for mobile dev. InfoWorld. May 6, 2016 [July 12, 2022]. (原始内容存档于June 12, 2022). 
  10. ^ SD Times GitHub Project of the Week: NativeScript. March 18, 2016 [July 12, 2022]. (原始内容存档于March 27, 2022). 
  11. ^ 11.0 11.1 11.2 Telerik's NativeScript Aims To Centralize Cross-Platform Mobile Development -. Visual Studio Magazine. [2016-11-21]. (原始内容存档于2017-11-07). 
  12. ^ NativeScript 1.0.0 Released. www.i-programmer.info. [2022-07-12]. (原始内容存档于2022-06-11). 
  13. ^ NativeScript 1.0.0 is now available. NativeScript.org. [2016-11-04]. (原始内容存档于2016-10-05). 
  14. ^ NativeScript Marketplace. market.nativescript.org. [2018-03-14]. (原始内容存档于2018-03-15). 
  15. ^ nativescript - npm search. www.npmjs.com. [2016-11-21]. (原始内容存档于2017-02-11). 
  16. ^ Review, C. I. O. Progress Releases NativeScript 2.0 with Cross-Platform Deployment Capabilities. CIOReview. [2022-07-12]. (原始内容存档于2022-06-21). 
  17. ^ Getting to Know Angular 2. mobile.htmlgoodies.com. 15 November 2016 [12 July 2022]. (原始内容存档于27 September 2019). 
  18. ^ NativeScript Sidekick - your faithful companion for app development. NativeScript.org. [2017-10-31]. (原始内容存档于2017-11-07) (英语). 
  19. ^ Hanna, Tam. Mit JavaScript wie hausgemacht: NativeScript. Developer. [2022-07-12]. (原始内容存档于2021-07-25). 
  20. ^ The Basics - NativeScript Docs. docs.nativescript.org. [2016-11-21]. (原始内容存档于2016-11-21). 
  21. ^ NativeScript/NativeScript. github.com. [2022-06-20]. (原始内容存档于2022-06-20). 
  22. ^ NativeScript/NativeScript. github.com. [2022-06-20]. (原始内容存档于2022-06-20). 
  23. ^ Accessing Native APIs through JavaScript - NativeScript Docs. docs.nativescript.org. [2016-11-21]. (原始内容存档于2016-11-24). 
  24. ^ NativeScript 2.0 - the best way to build cross-platform native mobile apps. NativeScript.org. [2016-11-21]. (原始内容存档于2016-12-20). 
  25. ^ Witalec, Sebastian. Apps That Work Natively on the Web and Mobile. Medium. 2018-08-24 [2021-08-06]. (原始内容存档于2022-01-03) (英语). 

外部链接