NativeScript proporciona API de plataforma directamente al entorno de ejecución de JavaScript ( con tipos sólidos ) para una rica experiencia de desarrollo de TypeScript. Como marco de código abierto para desarrollar aplicaciones para plataformas iOS , visionOS y Android que combina un enfoque de lo mejor de ambos mundos que combina enfoques web familiares como CSS y plantillas de vista con lenguajes de plataforma comunes (Swift, Kotlin, Objective-C, Java), ofrece un conjunto de herramientas liberadoras para los desarrolladores. Originalmente fue concebido y desarrollado por la empresa búlgara Telerik , posteriormente adquirida por Progress Software . [3] A finales de 2019 [4], la responsabilidad del proyecto NativeScript fue asumida por el socio de Progress desde hace mucho tiempo, nStudio. En diciembre de 2020, nStudio también supervisó la inducción de NativeScript en OpenJS Foundation como un proyecto de incubación. [5] Las aplicaciones NativeScript se crean utilizando JavaScript , o utilizando cualquier lenguaje de programación que se transpile a JavaScript, como TypeScript . NativeScript es compatible con los marcos de JavaScript Angular [6] y Vue . [7] Las aplicaciones móviles creadas con NativeScript dan como resultado aplicaciones completamente nativas, que utilizan las mismas API que si se hubieran desarrollado en Xcode o Android Studio . [8] Además, los desarrolladores de software pueden reutilizar bibliotecas de terceros de CocoaPods , Maven y npm.js en sus aplicaciones móviles sin la necesidad de envoltorios. [9] [10] [11]
Desarrollo
NativeScript se lanzó públicamente por primera vez en marzo de 2015. La versión 1.0.0 le siguió dos meses después. [12] El marco ganó popularidad rápidamente y alcanzó 3000 estrellas en Github y más de 1500 seguidores en Twitter poco después del lanzamiento público. [13] Mientras tanto, hay más de 700 complementos disponibles, que cuentan con el apoyo oficial de Progress o provienen de la comunidad de código abierto. [14] [15] El uso de Angular es un enfoque de desarrollo opcional que permite compartir el código fuente de la aplicación entre la plataforma web y la plataforma móvil. [16]
Estructura
NativeScript y todos los complementos necesarios se instalan mediante el administrador de paquetes npm . Los proyectos se crean, configuran y compilan mediante la línea de comandos o una herramienta GUI llamada NativeScript Sidekick. [17] Las interfaces de usuario independientes de la plataforma se definen mediante archivos XML . Luego, NativeScript usa las abstracciones descritas en los archivos XML para llamar a los elementos de la interfaz de usuario nativos de cada plataforma. La lógica de la aplicación desarrollada en Angular y TypeScript también se puede desarrollar independientemente de la plataforma de destino. Una aplicación móvil NativeScript se crea utilizando el entorno de ejecución y las herramientas de node.js. [18] Progress apunta a una proporción del 90% de código común entre las plataformas iOS y Android. [1]
Acceso directo a las API y controles nativos de la plataforma
Las interfaces de usuario independientes de la plataforma se definen mediante archivos XML . [19] NativeScript utiliza las estructuras de datos XML que representan la abstracción multiplataforma para activar el código específico de la plataforma que interactúa directamente con los elementos nativos del sistema operativo de destino. Esto significa que una llamada a la API de botones de NativeScript proporciona una abstracción de interfaz de usuario para Button, que llama directamente a UIButton en iOS [20] o com.android.widget.Button en Android. [21]
Si bien el código fuente de la aplicación está escrito en JavaScript, TypeScript, Angular o Vue.js, no se compila ni se modifica de ninguna otra forma. El código fuente tal como está se ejecuta directamente en el dispositivo. Esta elección arquitectónica elimina la necesidad de compilación cruzada o transpilación. [11] Además, si bien el código fuente de la aplicación está escrito en lenguajes que se encuentran comúnmente en un navegador (o en una aplicación móvil que contiene WebView), las aplicaciones NativeScript se ejecutan directamente en el dispositivo nativo. No hay manipulación del DOM ni ninguna interacción obligatoria con el navegador. [6]
Características destacables
Reflexión de API nativa
Otra característica notable es el uso de la reflexión para manejar los puntos finales de API nativas. En lugar de requerir capas de enlace separadas entre NativeScript y cada API de plataforma móvil, NativeScript utiliza la reflexión para obtener información y metadatos sobre las API de la plataforma nativa. Las nuevas características agregadas a cualquier API de plataforma nativa están disponibles de inmediato. [6]
Otra forma en que se utiliza la función de reflexión es trabajando con bibliotecas de terceros. Como JavaScript (o TypeScript/Angular) puede comunicarse directamente con el código nativo, no es necesario escribir capas de enlace en Objective-C, Swift, Java o Kotlin. [11] [22]
Integración angular
Con el lanzamiento de NativeScript 2.0, es posible utilizar Angular para crear aplicaciones móviles multiplataforma. [23] Además, al usar Angular con NativeScript, tienes la capacidad de compartir grandes fragmentos de código entre tus aplicaciones web y móviles. [24]
Integración con Vue.js
El marco Vue.js es compatible con NativeScript a través del complemento nativescript-vue. [7]
Herramientas y servicios de apoyo
- NativeScript Sidekick es una interfaz gráfica de usuario que se basa en las capacidades proporcionadas por la CLI de NativeScript. Con Sidekick, un desarrollador puede aprovechar las plantillas de aplicaciones, las compilaciones basadas en la nube para iOS y Android y publicar aplicaciones en las tiendas de aplicaciones públicas.
- NativeScript Playground permite a los desarrolladores experimentar con NativeScript en un entorno basado en web y obtener una vista previa de las aplicaciones en dispositivos físicos.
- NativeScript Marketplace es una fuente seleccionada de complementos de NativeScript, plantillas de aplicaciones prediseñadas y aplicaciones de muestra ejecutables.
Referencias
- ^ ab "Preguntas frecuentes sobre NativeScript". NativeScript.org . Archivado desde el original el 18 de marzo de 2016. Consultado el 20 de marzo de 2016 .
- ^ https://github.com/NativeScript/NativeScript/releases/tag/8.8.4-core.
{{cite web}}: Falta o está vacío|title=( ayuda ) - ^ "Creación de aplicaciones móviles nativas en JavaScript con NativeScript". InfoQ . Archivado desde el original el 2022-06-19 . Consultado el 2022-07-12 .
- ^ Saripella, Surya. "El próximo capítulo de NativeScript: nStudio". NativeScript. Archivado desde el original el 16 de enero de 2021. Consultado el 12 de julio de 2022 .
- ^ Romoff, Rachel (7 de diciembre de 2020). «NativeScript se une a la Fundación OpenJS como proyecto de incubación». Proyectos de la Fundación Linux . Fundación OpenJS. Archivado desde el original el 25 de enero de 2021. Consultado el 4 de marzo de 2021 .
- ^ abc Krill, Paul (10 de marzo de 2015). «JavaScript se vuelve nativo para aplicaciones de iOS, Android y Windows Phone». InfoWorld . Archivado desde el original el 3 de enero de 2022 . Consultado el 12 de julio de 2022 .
- ^ ab "NativeScript-Vue". nativescript-vue.org . Consultado el 31 de octubre de 2017 .
- ^ "El marco NativeScript alivia los problemas de desarrollo de aplicaciones multiplataforma". searchcloudcomputing.techtarget.com . Archivado desde el original el 2021-08-06 . Consultado el 2021-08-06 .
- ^ Krill, Paul (6 de mayo de 2016). «NativeScript se acerca a AngularJS para el desarrollo móvil». InfoWorld . Archivado desde el original el 12 de junio de 2022 . Consultado el 12 de julio de 2022 .
- ^ "Proyecto de la semana de SD Times en GitHub: NativeScript". 18 de marzo de 2016. Archivado desde el original el 27 de marzo de 2022. Consultado el 12 de julio de 2022 .
- ^ abc "NativeScript de Telerik pretende centralizar el desarrollo móvil multiplataforma -". Revista Visual Studio . Archivado desde el original el 7 de noviembre de 2017 . Consultado el 21 de noviembre de 2016 .
- ^ "Lanzamiento de NativeScript 1.0.0". www.i-programmer.info . Archivado desde el original el 2022-06-11 . Consultado el 2022-07-12 .
- ^ "NativeScript 1.0.0 ya está disponible". NativeScript.org . Archivado desde el original el 5 de octubre de 2016. Consultado el 4 de noviembre de 2016 .
- ^ "Mercado de NativeScript". market.nativescript.org . Archivado desde el original el 2018-03-15 . Consultado el 2018-03-14 .
- ^ "nativescript - búsqueda npm". www.npmjs.com . Archivado desde el original el 2017-02-11 . Consultado el 2016-11-21 .
- ^ "Conociendo Angular 2". mobile.htmlgoodies.com . 15 de noviembre de 2016. Archivado desde el original el 27 de septiembre de 2019 . Consultado el 12 de julio de 2022 .
- ^ "NativeScript Sidekick: su fiel compañero para el desarrollo de aplicaciones". NativeScript.org . Archivado desde el original el 2017-11-07 . Consultado el 2017-10-31 .
- ^ Hanna, Tam (9 de agosto de 2016). "Con JavaScript como hausgemacht: NativeScript". Desarrollador . Archivado desde el original el 25 de julio de 2021 . Consultado el 12 de julio de 2022 .
- ^ "Conceptos básicos: documentación de NativeScript". docs.nativescript.org . Archivado desde el original el 21 de noviembre de 2016 . Consultado el 21 de noviembre de 2016 .
- ^ "NativeScript/NativeScript". github.com . Archivado desde el original el 20 de junio de 2022 . Consultado el 20 de junio de 2022 .
- ^ "NativeScript/NativeScript". github.com . Archivado desde el original el 20 de junio de 2022 . Consultado el 20 de junio de 2022 .
- ^ "Acceso a API nativas mediante JavaScript - Documentación de NativeScript". docs.nativescript.org . Archivado desde el original el 24 de noviembre de 2016 . Consultado el 21 de noviembre de 2016 .
- ^ "NativeScript 2.0: la mejor manera de crear aplicaciones móviles nativas multiplataforma". NativeScript.org . Archivado desde el original el 20 de diciembre de 2016. Consultado el 21 de noviembre de 2016 .
- ^ Witalec, Sebastian (24 de agosto de 2018). "Aplicaciones que funcionan de forma nativa en la Web y en dispositivos móviles". Medium . Archivado desde el original el 3 de enero de 2022 . Consultado el 6 de agosto de 2021 .
Enlaces externos
- Sitio web oficial