NativeScript: Difference between revisions

Content deleted Content added
Rescuing 22 sources and tagging 0 as dead.) #IABot (v2.0.8.8
No edit summary
Line 15:
}}
 
'''NativeScript''' is an [[open-source software|open-source]] framework to develop [[mobile app]]s on the [[iOS|Apple iOS]] and [[Android (operating system)|Android]] platforms. It was originally conceived and developed by Progress.<ref>{{Cite web|url=https://www.infoq.com/news/2015/03/nativescript/|title=Creating Mobile Native Apps in JavaScript with NativeScript|website=InfoQ|access-date=2022-07-12|archive-date=2022-06-19|archive-url=https://web.archive.org/web/20220619183512/https://www.infoq.com/news/2015/03/nativescript/|url-status=live}}</ref> At the end of 2019<ref>{{cite web |last1=Saripella |first1=Surya |title=The Next Chapter for NativeScript: nStudio |url=https://nativescript.org/blog/the-next-chapter-for-nativescript-nstudio/ |publisher=NativeScript |access-date=2022-07-12 |archive-date=2021-01-16 |archive-url=https://web.archive.org/web/20210116145010/https://nativescript.org/blog/the-next-chapter-for-nativescript-nstudio/ |url-status=live }}</ref> responsibility for the NativeScript project was taken over by long-time Progress partner, nStudio. In December 2020 nStudio also oversaw the induction of NativeScript into OpenJS Foundation as an Incubating Project.<ref>{{cite web |last1=Romoff |first1=Rachel |title=NativeScript joins OpenJS Foundation as Incubating Project |url=https://openjsf.org/blog/2020/12/07/nativescript-joins-openjs-foundation-as-incubating-project/ |website=The Linux Foundation Projects |date=7 December 2020 |publisher=OpenJS Foundation |access-date=4 March 2021 |archive-date=25 January 2021 |archive-url=https://web.archive.org/web/20210125120950/https://openjsf.org/blog/2020/12/07/nativescript-joins-openjs-foundation-as-incubating-project/ |url-status=live }}</ref> NativeScript apps are built using [[JavaScript]], or by using any [[programming language]] that [[transpile]]s to JavaScript, such as [[TypeScript]]. NativeScript supports the [[Angular (application platform)|Angular]]<ref name=infoworld2893706>{{Cite web|url=https://www.infoworld.com/article/2893706/javascript-native-ios-android-and-windows-phone-apps.html|title=JavaScript goes native for iOS, Android, and Windows Phone apps|first=Paul|last=Krill|date=March 10, 2015|website=InfoWorld|access-date=July 12, 2022|archive-date=January 3, 2022|archive-url=https://web.archive.org/web/20220103083812/https://www.infoworld.com/article/2893706/javascript-native-ios-android-and-windows-phone-apps.html|url-status=live}}</ref> and [[Vue.js|Vue]] JavaScript frameworks.<ref name=":0">{{Cite web|url=https://nativescript-vue.org/#/|title={N}NativeScript-Vue|website=nativescript-vue.org|access-date=2017-10-31}}</ref> Mobile applications built with NativeScript result in fully native apps, which use the same APIs as if they were developed in [[Xcode]] or [[Android Studio]].<ref>{{Cite web|title=NativeScript framework eases cross-platform app development woes|url=https://searchcloudcomputing.techtarget.com/podcast/NativeScript-framework-eases-cross-platform-app-development-woes|access-date=2021-08-06|website=searchcloudcomputing.techtarget.com|archive-date=2021-08-06|archive-url=https://web.archive.org/web/20210806104010/https://searchcloudcomputing.techtarget.com/podcast/NativeScript-framework-eases-cross-platform-app-development-woes|url-status=live}}</ref> Additionally, software developers can re-purpose third-party libraries from [[CocoaPods]], [[Apache Maven|Maven]], and [[npm (software)|npm.js]] in their mobile applications without the need for wrappers.<ref>{{Cite web|url=https://www.infoworld.com/article/3066900/nativescript-warms-up-to-angularjs-for-mobile-dev.html|title=NativeScript warms up to AngularJS for mobile dev|first=Paul|last=Krill|date=May 6, 2016|website=InfoWorld|access-date=July 12, 2022|archive-date=June 12, 2022|archive-url=https://web.archive.org/web/20220612180823/https://www.infoworld.com/article/3066900/nativescript-warms-up-to-angularjs-for-mobile-dev.html|url-status=live}}</ref><ref>{{Cite web|url=https://sdtimes.com/alphago/sd-times-github-project-of-the-week-nativescript/|title=SD Times GitHub Project of the Week: NativeScript|date=March 18, 2016|access-date=July 12, 2022|archive-date=March 27, 2022|archive-url=https://web.archive.org/web/20220327145317/https://sdtimes.com/alphago/sd-times-github-project-of-the-week-nativescript/|url-status=live}}</ref><ref name=visualstudiomagazine20150309>{{Cite web|url=https://visualstudiomagazine.com/articles/2015/03/09/telerik-nativescript-beta-mobile.aspx|title=Telerik's NativeScript Aims To Centralize Cross-Platform Mobile Development -|website=Visual Studio Magazine|access-date=2016-11-21|archive-date=2017-11-07|archive-url=https://web.archive.org/web/20171107003801/https://visualstudiomagazine.com/articles/2015/03/09/telerik-nativescript-beta-mobile.aspx|url-status=live}}</ref>
 
==Development==
Line 25:
 
==Direct access to native platform APIs and controls==
Platform-independent user interfaces are defined using [[XML]] files.<ref>{{Cite web|url=https://docs.nativescript.org/ui/basics|title=The Basics - NativeScript Docs|website=docs.nativescript.org|access-date=2016-11-21|archive-date=2016-11-21|archive-url=https://web.archive.org/web/20161121191907/http://docs.nativescript.org/ui/basics|url-status=live}}</ref> NativeScript uses the XML data structures representing the cross platform abstraction to trigger platform-specific code that directly interacts with the native elements of the target operating system. This means a call to the NativeScript Button API provides a UI abstraction for Button, which directly calls UIButton on iOS <ref>{{Cite web|url=https://github.com/NativeScript/NativeScript/blob/master/tns-packages/core-modules/ui/button/buttonindex.ios.ts {{Dead link|title=NativeScript/NativeScript|website=github.com|access-date=February 2022-06-20|archive-date=2022-06-20|archive-url=https://web.archive.org/web/20220620103533/https://github.com/NativeScript/NativeScript/blob/master/packages/core/ui/button/index.ios.ts|url-status=live}}</ref> or com.android.widget.Button on Android.<ref>{{Cite web|url=https://github.com/NativeScript/NativeScript/blob/master/tns-packages/core-modules/ui/button/buttonindex.android.ts {{Dead link|title=NativeScript/NativeScript|website=github.com|access-date=February 2022-06-20|archive-date=2022-06-20|archive-url=https://web.archive.org/web/20220620105953/https://github.com/NativeScript/NativeScript/blob/master/packages/core/ui/button/index.android.ts|url-status=live}}</ref>
 
While application source code is written in JavaScript, TypeScript, Angular, or Vue.js, the source code is not compiled or otherwise mutated. The source code as-is runs directly on the device. This architectural choice eliminates the need for cross-compiling or transpiling.<ref name=visualstudiomagazine20150309 /> Additionally, while the application source code is written in languages commonly encountered in a browser (or in a WebView-contained mobile application) NativeScript applications run directly on the native device. There is no DOM manipulation or any mandatory browser interaction.<ref name=infoworld2893706/>