NativeScript
NativeScript是一个提供开发Apple iOS及Android的移动应用程序的开源软件,最初由Progress构思和开发。[3]2019 年底,Progress的长期合作伙伴nStudio接管NativeScript项目。[4]在nStudio的监督下,NativeScript于2020年12月成为OpenJS基金会的培育项目。[5]NativeScript可以使用JavaScript或是其他可以编译成JavaScript的编程语言编写,例如TypeScript。NativeScript同时也支持Angular[6]和Vue[7]。使用NativeScript构建的移动应用程序会产生完整的原生应用程式,其使用了与Xcode及Android Studio相同API。[8]此外,软件开发人员可以加入CocoaPods、Maven和npm.js的第三方程式库到程序中而无须其他的包装函数。[9][10][11]
原作者 | Telerik by Progress.[1] |
---|---|
开发者 | 社群 |
首次发布 | 2014年 |
当前版本 | 8.2.2(2022年4月6日[2]) |
原始码库 | |
编程语言 | JavaScript、TypeScript |
平台 | 跨平台 |
许可协议 | Apache License 2.0 |
网站 | nativescript |
发展
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.0 1.1 Frequently asked questions about NativeScript. NativeScript.org. [2016-03-20]. (原始内容存档于2016-03-18).
- ^ Releases · NativeScript/NativeScript. GitHub. [2018-06-03]. (原始内容存档于2021-08-31).
- ^ Creating Mobile Native Apps in JavaScript with NativeScript. InfoQ. [2022-07-12]. (原始内容存档于2022-06-19).
- ^ Saripella, Surya. The Next Chapter for NativeScript: nStudio. NativeScript. [2022-07-12]. (原始内容存档于2021-01-16).
- ^ 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.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.0 7.1 NativeScript-Vue. nativescript-vue.org. [2017-10-31]. (原始内容存档于2021-10-04).
- ^ NativeScript framework eases cross-platform app development woes. searchcloudcomputing.techtarget.com. [2021-08-06]. (原始内容存档于2021-08-06).
- ^ Krill, Paul. NativeScript warms up to AngularJS for mobile dev. InfoWorld. May 6, 2016 [July 12, 2022]. (原始内容存档于June 12, 2022).
- ^ SD Times GitHub Project of the Week: NativeScript. March 18, 2016 [July 12, 2022]. (原始内容存档于March 27, 2022).
- ^ 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).
- ^ NativeScript 1.0.0 Released. www.i-programmer.info. [2022-07-12]. (原始内容存档于2022-06-11).
- ^ NativeScript 1.0.0 is now available. NativeScript.org. [2016-11-04]. (原始内容存档于2016-10-05).
- ^ NativeScript Marketplace. market.nativescript.org. [2018-03-14]. (原始内容存档于2018-03-15).
- ^ nativescript - npm search. www.npmjs.com. [2016-11-21]. (原始内容存档于2017-02-11).
- ^ Review, C. I. O. Progress Releases NativeScript 2.0 with Cross-Platform Deployment Capabilities. CIOReview. [2022-07-12]. (原始内容存档于2022-06-21).
- ^ Getting to Know Angular 2. mobile.htmlgoodies.com. 15 November 2016 [12 July 2022]. (原始内容存档于27 September 2019).
- ^ NativeScript Sidekick - your faithful companion for app development. NativeScript.org. [2017-10-31]. (原始内容存档于2017-11-07) (英语).
- ^ Hanna, Tam. Mit JavaScript wie hausgemacht: NativeScript. Developer. [2022-07-12]. (原始内容存档于2021-07-25).
- ^ The Basics - NativeScript Docs. docs.nativescript.org. [2016-11-21]. (原始内容存档于2016-11-21).
- ^ NativeScript/NativeScript. github.com. [2022-06-20]. (原始内容存档于2022-06-20).
- ^ NativeScript/NativeScript. github.com. [2022-06-20]. (原始内容存档于2022-06-20).
- ^ Accessing Native APIs through JavaScript - NativeScript Docs. docs.nativescript.org. [2016-11-21]. (原始内容存档于2016-11-24).
- ^ NativeScript 2.0 - the best way to build cross-platform native mobile apps. NativeScript.org. [2016-11-21]. (原始内容存档于2016-12-20).
- ^ Witalec, Sebastian. Apps That Work Natively on the Web and Mobile. Medium. 2018-08-24 [2021-08-06]. (原始内容存档于2022-01-03) (英语).