O NativeScript é um framework de código aberto para desenvolver aplicativos móveis nas plataformas iOS e Android. Ele foi originalmente concebido e desenvolvido pela Progress.[1] No final de 2019,[2] a responsabilidade pelo projeto NativeScript foi assumido pela nStudio, um parceiro de longa data da Progress. Em dezembro de 2020, a nStudio também supervisionou a integração do NativeScript na OpenJS Foundation como um Projeto incubado.[3] Os aplicativos NativeScript são construídos usando JavaScript ou qualquer linguagem de programação que seja transpilada para JavaScript, como TypeScript. O NativeScript Oferece suporte aos frameworks JavaScript Angular[4] e Vue.[5] Aplicações móveis desenvolvidas com o NativeScript resultam em aplicativos totalmente nativos, que utilizam as mesmas APIs como se tivessem sido desenvolvidos no Xcode ou Android Studio.[6] Além disso, os desenvolvedores de software podem reutilizar bibliotecas de terceiros do CocoaPods, Maven e npm.js em seus aplicativos móveis sem a necessidade de wrappers.[7][8][9]

NativeScript
Logótipo
NativeScript
Autor Telerik by Progress
Desenvolvedor Comunidade
Plataforma Multiplataforma
Lançamento 2014 (9–10 anos)
Versão estável 8.4.7 (23 de janeiro de 2023; há 14 meses)
Sistema operacional Linux, MacOS, Windows
Licença Apache License 2.0
Página oficial nativescript.org
Repositório github.com/NativeScript/NativeScript

Desenvolvimento editar

O NativeScript foi lançado publicamente pela primeira vez em março de 2015. A versão 1.0.0 foi lançada dois meses depois.[10] O framework rapidamente ganhou popularidade, atingindo 3000 estrelas no GitHub e mais de 1500 seguidores no Twitter logo após o lançamento público.[11] Nesse meio tempo, mais de 700 plugins estão disponíveis, sendo oficialmente suportados pela Progress ou provenientes da comunidade de código aberto.[12][13] O uso do Angular é uma abordagem de desenvolvimento opcional que permite que o código-fonte da aplicação seja compartilhado entre a plataforma web e a plataforma móvel.[14][15]

Estrutura editar

O NativeScript e todos os plugins necessários são instalados usando o gerenciador de pacotes npm. Projetos são criados, configurados e compilados via linha de comando ou uma ferramenta gráfica chamada NativeScript Sidekick.[16] Interfaces de usuário independentes de plataforma são definidas usando arquivos XML. O NativeScript utiliza as abstrações descritas nos arquivos XML para chamar os elementos de interface do usuário nativos de cada plataforma. A lógica da aplicação desenvolvida em Angular e TypeScript pode ser desenvolvida de forma independente da plataforma de destino também. Um aplicativo móvel NativeScript é construído usando o runtime e ferramentas do node.js.[17] A Progress tem como objetivo uma proporção de 90% de código comum entre as plataformas iOS e Android.[18]

Acesso direto às APIs e controles nativos da plataforma editar

Interfaces de usuário independentes de plataforma são definidas usando arquivos XML.[19] O NativeScript utiliza as estruturas de dados XML que representam a abstração multiplataforma para acionar código específico da plataforma que interage diretamente com os elementos nativos do sistema operacional de destino. Isso significa que uma chamada à API de botão do NativeScript fornece uma abstração de interface do usuário para o botão, que chama diretamente UIButton no iOS[20] ou com.android.widget.Button no Android.[21]

Embora o código-fonte da aplicação seja escrito em JavaScript, TypeScript, Angular ou Vue.js, o código-fonte não é compilado ou de outra forma alterado. O código-fonte, como está, é executado diretamente no dispositivo. Essa escolha arquitetônica elimina a necessidade de compilação cruzada ou transpilação.[9] Além disso, embora o código-fonte da aplicação seja escrito em linguagens comumente encontradas em um navegador (ou em uma aplicação móvel contida em WebView), as aplicações NativeScript são executadas diretamente no dispositivo nativo. Não há manipulação do DOM ou qualquer interação obrigatória com o navegador.[4]

Características notáveis editar

Reflexão da API nativa editar

Outra característica notável é o uso de reflexão para lidar com pontos de extremidade da API nativa. Em vez de exigir camadas de ligação separadas entre o NativeScript e cada API de plataforma móvel, o NativeScript utiliza reflexão para obter informações e metadados sobre as APIs de plataforma nativa. Novos recursos adicionados a qualquer API de plataforma nativa estão imediatamente disponíveis.[4]

Outra maneira pela qual a funcionalidade de reflexão é usada é ao trabalhar com bibliotecas de terceiros. Como o JavaScript (ou TypeScript/Angular) pode se comunicar diretamente com o código nativo, não há necessidade de escrever camadas de ligação em Objective-C, Swift, Java ou Kotlin.[9][22]

Integração com o Angular editar

Com o lançamento do NativeScript 2.0, é possível usar o Angular para criar aplicativos móveis multiplataforma.[23] Além disso, ao usar o Angular com o NativeScript, você tem a capacidade de compartilhar grandes partes de código entre seus aplicativos web e móveis.[24]

Integração com o Vue.js editar

O framework Vue.js é suportado no NativeScript por meio do plugin nativescript-vue.[5]

Ferramentas e serviços de suporte editar

  • O NativeScript Sidekick é uma interface gráfica que se baseia nas capacidades fornecidas pelo NativeScript CLI. Com o Sidekick, um desenvolvedor pode aproveitar modelos de aplicativos, compilações baseadas em nuvem para iOS e Android, e publicar aplicativos nas lojas de aplicativos públicas.
  • O NativeScript Playground permite que os desenvolvedores experimentem o NativeScript em um ambiente baseado na web e visualizem aplicativos em dispositivos físicos.
  • O NativeScript Marketplace é uma fonte selecionada de plugins do NativeScript, modelos de aplicativos pré-construídos e aplicativos de exemplo executáveis.

Referências

  1. «Creating Mobile Native Apps in JavaScript with NativeScript». InfoQ (em inglês). Consultado em 27 de agosto de 2023 
  2. «The Next Chapter for NativeScript: nStudio». blog.nativescript.org. Consultado em 27 de agosto de 2023 
  3. rromoff (7 de dezembro de 2020). «NativeScript joins OpenJS Foundation as Incubating Project». OpenJS Foundation (em inglês). Consultado em 27 de agosto de 2023 
  4. a b c Krill, Paul (10 de março de 2015). «JavaScript goes native for iOS, Android, and Windows Phone apps». InfoWorld (em inglês). Consultado em 27 de agosto de 2023 
  5. a b Randjelovic, Igor. «NativeScript-Vue». nativescript-vue.org (em inglês). Consultado em 27 de agosto de 2023 
  6. «NativeScript framework eases cross-platform app development woes». web.archive.org. 6 de agosto de 2021. Consultado em 27 de agosto de 2023 
  7. Krill, Paul (6 de maio de 2016). «NativeScript warms up to AngularJS for mobile dev». InfoWorld (em inglês). Consultado em 27 de agosto de 2023 
  8. Cardoza, Christina (18 de março de 2016). «SD Times GitHub Project of the Week: NativeScript». SD Times (em inglês). Consultado em 27 de agosto de 2023 
  9. a b c Ramel, By David; 03/09/2015. «Telerik's NativeScript Aims To Centralize Cross-Platform Mobile Development -». Visual Studio Magazine (em inglês). Consultado em 27 de agosto de 2023 
  10. «NativeScript 1.0.0 Released». www.i-programmer.info. Consultado em 27 de agosto de 2023 
  11. «NativeScript 1.0.0 is now available». blog.nativescript.org. Consultado em 27 de agosto de 2023 
  12. «NativeScript Marketplace». market.nativescript.org. Consultado em 27 de agosto de 2023 
  13. «nativescript - npm search». www.npmjs.com (em inglês). Consultado em 27 de agosto de 2023 
  14. Review, C. I. O. «Progress Releases NativeScript 2.0 with Cross-Platform Deployment Capabilities». CIOReview (em inglês). Consultado em 27 de agosto de 2023 
  15. «Getting to Know Angular 2». web.archive.org. 27 de setembro de 2019. Consultado em 27 de agosto de 2023 
  16. «NativeScript Sidekick - your faithful companion for app development». web.archive.org. 7 de novembro de 2017. Consultado em 27 de agosto de 2023 
  17. online, heise (9 de agosto de 2016). «Mit JavaScript wie hausgemacht: NativeScript». Developer (em alemão). Consultado em 27 de agosto de 2023 
  18. «Perguntas frequentes sobre o NativeScript». nativescript.org. Consultado em 27 de agosto de 2023 
  19. «The Basics - NativeScript Docs». docs.nativescript.org (em inglês). Consultado em 27 de agosto de 2023 
  20. «NativeScript/NativeScript». GitHub (em inglês). Consultado em 27 de agosto de 2023 
  21. «NativeScript/NativeScript». GitHub (em inglês). Consultado em 27 de agosto de 2023 
  22. «Accessing Native Platform APIs». docs.nativescript.org (em inglês). Consultado em 27 de agosto de 2023 
  23. «NativeScript 2.0 - the best way to build cross-platform native mobile apps». blog.nativescript.org. Consultado em 27 de agosto de 2023 
  24. Witalec, Sebastian (24 de agosto de 2018). «Apps That Work Natively on the Web and Mobile». Medium (em inglês). Consultado em 27 de agosto de 2023