NativeScript
| Tipus | programari de codi obert i entorn de treball de JavaScript |
|---|---|
| Versió estable | |
| Llicència | llicència Apache |
| Característiques tècniques | |
| Escrit en | TypeScript |
| Equip | |
| Desenvolupador(s) | Telerik (en) |
| Més informació | |
| Lloc web | nativescript.org |
| Stack Exchange | Etiqueta |
|
| |
NativeScript és un marc de desenvolupament de codi obert multiplataforma basat en JavaScript per desenvolupar aplicacions mòbils per a plataformes iOS, VisionOS i Android. Connecta les API de la plataforma directament al temps d'execució de JavaScript (amb tipus forts), combinant enfocaments web familiars com CSS i plantilles de vistes amb llenguatges de plataforma comuns (Swift, Kotlin, Objective-C, Java).
Originalment va ser concebut i desenvolupat per l'empresa búlgara Telerik, posteriorment adquirida per Progress Software.[1] A finals de 2019[2] la responsabilitat del projecte NativeScript va ser assumida per nStudio, soci de Progress des de fa molt de temps. El desembre de 2020, nStudio també va supervisar la incorporació de NativeScript a la OpenJS Foundation com a Projecte d'Incubació.[3] Les aplicacions NativeScript es creen mitjançant JavaScript o qualsevol llenguatge de programació que es transcompilador a JavaScript, com ara TypeScript. NativeScript és compatible amb els frameworks Angular[4] i Vue JavaScript.[5] Les aplicacions mòbils creades amb NativeScript donen lloc a aplicacions completament natives, que utilitzen les mateixes API que si s'haguessin desenvolupat a Xcode o Android Studio.[6] A més, els desenvolupadors de programari poden reutilitzar biblioteques de tercers de CocoaPods, Maven i npm.js a les seves aplicacions mòbils sense necessitat de wrappers.[7][8][9]
Desenvolupament
[modifica]NativeScript es va publicar per primera vegada el març de 2015. La versió 1.0.0 va arribar dos mesos després.[10] El marc de treball va guanyar popularitat ràpidament, arribant a les 3000 estrelles de GitHub i més de 1500 seguidors a Twitter poc després del llançament públic.[11] Mentrestant, hi ha més de 700 complements disponibles, que són oficialment compatibles amb Progress o provenen de la comunitat de codi obert.[12][13] L'ús d'Angular és un enfocament de desenvolupament opcional que permet compartir el codi font de l'aplicació entre la plataforma web i la plataforma mòbil.[14]
Estructura
[modifica]NativeScript i tots els complements necessaris s'instal·len mitjançant el gestor de paquets npm. Els projectes es creen, configuren i compilen mitjançant la línia d'ordres o una eina GUI anomenada NativeScript Sidekick.[15]
Les interfícies d'usuari independents de la plataforma es defineixen mitjançant fitxers XML. NativeScript utilitza les abstraccions descrites als fitxers XML per cridar elements de la interfície d'usuari nativa de cada plataforma. La lògica de l'aplicació desenvolupada a Angular i TypeScript també es pot desenvolupar independentment de la plataforma de destinació. Una aplicació mòbil NativeScript es crea mitjançant el temps d'execució i les eines node.js. El progrés pretén una proporció del 90% de codi comú entre les plataformes iOS i Android.[16]
Accés directe a les API i els controls natius de la plataforma
[modifica]Les interfícies d'usuari independents de la plataforma es defineixen mitjançant fitxers XML.[17] NativeScript utilitza les estructures de dades XML que representen l'abstracció multiplataforma per activar codi específic de la plataforma que interactua directament amb els elements nadius del sistema operatiu de destinació. Això significa que una crida a l'API Button de NativeScript proporciona una abstracció d'IU per a Button, que crida directament UIButton a iOS[18] o com.android.widget.Button a Android.[19]
Tot i que el codi font de l'aplicació està escrit en JavaScript, TypeScript, Angular o Vue.js, el codi font no es compila ni es muta de cap altra manera. El codi font tal com és s'executa directament al dispositiu. Aquesta elecció arquitectònica elimina la necessitat de compilació creuada o transpilació.[20] A més, mentre que el codi font de l'aplicació està escrit en idiomes que es troben habitualment en un navegador (o en una aplicació mòbil continguda per WebView), les aplicacions NativeScript s'executen directament al dispositiu natiu. No hi ha manipulació DOM ni cap interacció obligatòria del navegador.[21]
Característiques destacables
[modifica]Reflexió de l'API nativa
[modifica]Una altra característica destacable és l'ús de la reflexió per gestionar els punts finals de l'API nativa. En lloc de requerir capes d'enllaç separades entre NativeScript i cada API de plataforma mòbil, NativeScript utilitza la reflexió per obtenir informació i metadades sobre les API de la plataforma nativa. Les noves funcions afegides a qualsevol API de plataforma nativa estan disponibles immediatament.[22]
Una altra manera d'utilitzar la funció de reflexió és treballant amb biblioteques de tercers. Com que JavaScript (o TypeScript/Angular) pot comunicar-se directament amb codi natiu, no cal escriure capes d'enllaç a Objective-C, Swift, Java o Kotlin.[23][24]
Integració angular
[modifica]Amb el llançament de NativeScript 2.0, és possible utilitzar Angular per crear aplicacions mòbils multiplataforma.[25] A més, quan s'utilitza Angular amb NativeScript, es pot compartir grans fragments de codi entre les aplicacions web i mòbils.[26]
Integració amb Vue.js
[modifica]El marc de treball Vue.js és compatible amb NativeScript a través del complement nativescript-vue.[27]
Eines i serveis de suport
[modifica]- NativeScript Sidekick és una interfície gràfica d'usuari que es basa en les capacitats proporcionades per la CLI de NativeScript. Amb Sidekick, un desenvolupador pot aprofitar les plantilles d'aplicacions, les compilacions basades en el núvol per a iOS i Android i publicar aplicacions a les botigues d'aplicacions públiques.
- NativeScript Playground permet als desenvolupadors experimentar amb NativeScript en un entorn web i previsualitzar aplicacions en dispositius físics.
- NativeScript Marketplace és una font seleccionada de complements de NativeScript, plantilles d'aplicacions preconstruïdes i aplicacions de mostra executables.
Referències
[modifica]- ↑ «Creating Mobile Native Apps in JavaScript with NativeScript» (en anglès). InfoQ. Arxivat de l'original el 2022-06-19. [Consulta: 12 juliol 2022].
- ↑ Saripella, Surya. «The Next Chapter for NativeScript: nStudio» (en anglès). NativeScript. Arxivat de l'original el 2021-01-16. [Consulta: 12 juliol 2022].
- ↑ Romoff, Rachel. «NativeScript joins OpenJS Foundation as Incubating Project». The Linux Foundation Projects. OpenJS Foundation, 07-12-2020. Arxivat de l'original el 25 January 2021. [Consulta: 4 març 2021].
- ↑ Krill, Paul. «JavaScript goes native for iOS, Android, and Windows Phone apps» (en anglès). InfoWorld, 10-03-2015. Arxivat de l'original el January 3, 2022. [Consulta: 12 juliol 2022].
- ↑ «NativeScript-Vue» (en anglès). nativescript-vue.org. [Consulta: 31 octubre 2017].
- ↑ «NativeScript framework eases cross-platform app development woes» (en anglès). searchcloudcomputing.techtarget.com. Arxivat de l'original el 2021-08-06. [Consulta: 6 agost 2021].
- ↑ Krill, Paul. «NativeScript warms up to AngularJS for mobile dev» (en anglès). InfoWorld, 06-05-2016. Arxivat de l'original el June 12, 2022. [Consulta: 12 juliol 2022].
- ↑ «SD Times GitHub Project of the Week: NativeScript» (en anglès), 18-03-2016. Arxivat de l'original el March 27, 2022. [Consulta: 12 juliol 2022].
- ↑ «Telerik's NativeScript Aims To Centralize Cross-Platform Mobile Development -» (en anglès). Visual Studio Magazine. Arxivat de l'original el 2017-11-07. [Consulta: 21 novembre 2016].
- ↑ «NativeScript 1.0.0 Released» (en anglès). www.i-programmer.info. Arxivat de l'original el 2022-06-11. [Consulta: 12 juliol 2022].
- ↑ «NativeScript 1.0.0 is now available» (en anglès). NativeScript.org. Arxivat de l'original el 2016-10-05. [Consulta: 4 novembre 2016].
- ↑ «NativeScript Marketplace» (en anglès). market.nativescript.org. Arxivat de l'original el 2018-03-15. [Consulta: 14 març 2018].
- ↑ «nativescript - npm search» (en anglès). www.npmjs.com. Arxivat de l'original el 2017-02-11. [Consulta: 21 novembre 2016].
- ↑ «Getting to Know Angular 2» (en anglès). mobile.htmlgoodies.com, 15-11-2016. Arxivat de l'original el 27 September 2019. [Consulta: 12 juliol 2022].
- ↑ «NativeScript Sidekick - your faithful companion for app development» (en anglès). NativeScript.org. Arxivat de l'original el 2017-11-07. [Consulta: 31 octubre 2017].
- ↑ «Frequently asked questions about NativeScript» (en anglès). NativeScript.org. Arxivat de l'original el 2016-03-18. [Consulta: 20 març 2016].
- ↑ «The Basics - NativeScript Docs» (en anglès). docs.nativescript.org. Arxivat de l'original el 2016-11-21. [Consulta: 21 novembre 2016].
- ↑ «NativeScript/NativeScript» (en anglès). github.com. Arxivat de l'original el 2022-06-20. [Consulta: 20 juny 2022].
- ↑ «NativeScript/NativeScript» (en anglès). github.com. Arxivat de l'original el 2022-06-20. [Consulta: 20 juny 2022].
- ↑ «Telerik's NativeScript Aims To Centralize Cross-Platform Mobile Development -» (en anglès). Visual Studio Magazine. Arxivat de l'original el 2017-11-07. [Consulta: 21 novembre 2016].
- ↑ Krill, Paul. «JavaScript goes native for iOS, Android, and Windows Phone apps» (en anglès). InfoWorld, 10-03-2015. Arxivat de l'original el January 3, 2022. [Consulta: 12 juliol 2022].
- ↑ Krill, Paul. «JavaScript goes native for iOS, Android, and Windows Phone apps» (en anglès). InfoWorld, 10-03-2015. Arxivat de l'original el January 3, 2022. [Consulta: 12 juliol 2022].
- ↑ «Telerik's NativeScript Aims To Centralize Cross-Platform Mobile Development -» (en anglès). Visual Studio Magazine. Arxivat de l'original el 2017-11-07. [Consulta: 21 novembre 2016].
- ↑ «Accessing Native APIs through JavaScript - NativeScript Docs» (en anglès). docs.nativescript.org. Arxivat de l'original el 2016-11-24. [Consulta: 21 novembre 2016].
- ↑ «NativeScript 2.0 - the best way to build cross-platform native mobile apps» (en anglès). NativeScript.org. Arxivat de l'original el 2016-12-20. [Consulta: 21 novembre 2016].
- ↑ Witalec, Sebastian. «Apps That Work Natively on the Web and Mobile» (en anglès). Medium, 24-08-2018. Arxivat de l'original el 2022-01-03. [Consulta: 6 agost 2021].
- ↑ «NativeScript-Vue» (en anglès). nativescript-vue.org. [Consulta: 31 octubre 2017].