Aplicação híbrida-iónica vs NativeScript

eu estou no espaço móvel por algum tempo e já estamos tendo Andróide nativo e aplicativo iOS. Agora nossa empresa está planejando melhorar o nosso site móvel e nossa equipe escolheu Angular 2 + TypeScript + Ionic 2. Com grande dificuldade, completamos o nosso formulário de inscrição em Ionic + Angular. Agora eu vim a saber sobre NativeScript para desenvolver aplicativos híbridos sem webview e uma vez que ele usa o componente UI nativo as pessoas estão dizendo que o olhar & sentir e o desempenho de a aplicação vai ser boa.

Estou um pouco confuso para escolher um. 1. Angular + TypeScript + Ionic (html, js, css) ou 2. Angular + TypeScript + NativeScript (xml, js, css)

também o plano a longo prazo da nossa empresa é manter uma única fonte tanto para iOS, Android e site móvel

Por favor, ajuda-me.

Obrigado.
Author: Mano, 2016-11-26

4 answers

Esta é realmente uma pergunta subjetiva / resposta, pois depende de quanto trabalho você quer fazer. :-)

Em primeiro lugar, num app iONIC / Angular2, está basicamente a fazer a mesma versão web ao mesmo tempo. O desempenho pode ser um problema sério, dependendo do que você está fazendo. Telas simples não tanto, lotes de dados; questões muito maiores. Além de layout de tela pode causar-lhe alguns problemas como você está basicamente codificando para um pequeno navegador web que tem tela totalmente diferente resoluções baseadas em que dispositivo e em que SO está. Se você está precisando mais perto do desempenho nativo; há coisas que você pode fazer para tornar o Jonic mais rápido (ou seja, usando a passadeira) e, no geral, você pode gerar um aplicativo web decente no Jonic 2. Mas as probabilidades são muito prováveis que nunca terá nada perto do desempenho nativo, nem agir como um aplicativo nativo, uma vez que ainda é um aplicativo web tentando emular um aplicativo nativo.

Agora, se você está procurando por desempenho nativo e / ou a capacidade de fazer as coisas facilmente nativo no dispositivo, então usando NativeScript/Angular2 pode ser a melhor escolha. Você tem o desempenho nativo, e acesso a todos os controles nativos (ou seja, coisas como ListViews reais que podem lidar com milhares de itens complexos sem desaceleração) -- mas o custo é que você tem que criar duas telas separadas e css separados para o seu aplicativo. A lógica real pode ser compartilhada no NG2 entre um NativeScript e um aplicativo Web; mas a geração de tela é diferente para o seu html componente / ecrã poderá ter um mycomponent.html -> <div>{{somevalue}}</div> e em NativeScript mycomponent.xml -> <Label text="{{somevalue}}"></Label>. Então você acaba com um trabalho mais inicial em NativeScript como você tem que criar os dois arquivos de layout separados. Mas isso permite que você realmente tenha a versão móvel colocada melhor para um telefone ou tela de Tablet, e/ou opções adicionais, como talvez o acesso à câmera no layout NS, e um botão de arquivo de imagem de upload na versão html. Como alguém que usou ambas as tecnologias, estou firmemente no NativeScript camp para todos os meus novos projetos; mas para algumas pessoas ainda existem alguns casos de uso válidos para usar iONIC / Phonegap / Cordova se o aplicativo é baseado na web e nada que precisa de quaisquer vistas complexas e/ou lotes de dados mostrados.
 35
Author: Nathanael, 2016-11-26 15:44:35

Resposta Curta

Com iónico estás a construir aplicações híbridas ou aplicações Web progressivas. A estrutura do aplicativo é escrito em HTML e o aplicativo construído está usando vistas Web (algo como um site dentro de seu aplicativo).

Com NativeScript Você está construindo realmente apps nativas que não use o DOM HTML e você terá que aprender os componentes UI da plataforma que você está perseguindo (e.g. iOS/Android. No entanto, as aplicações nativas são geralmente mais rápidas do que as aplicações híbridas e você pode acessar as funcionalidades de hardware como câmera, toque, calendário, chamadas telefónicas, etc. tudo com código de dactilografia/JavaScript.


Resposta longa

Aqui está um extracto de um post no blog de Danyal Zia. Sugiro que leia a completa.

Iónico (2)

O Ionic 2 é um quadro de desenvolvimento móvel híbrido ... OK, então o que significa isso? por desenvolvimento híbrido? Aplicativos híbridos são como qualquer outro aplicativo que você pode encontrar nas lojas de aplicativos, eles funcionam da mesma maneira (baixando e instalando-os), e a interação do Usuário é semelhante, na verdade, a maioria dos usuários dificilmente perceber a diferença entre aplicativos nativos e aplicativos híbridos.

A coisa interessante sobre aplicativos híbridos é que eles são hospedados dentro de uma aplicação nativa que usa a WebView – que é uma espécie de navegador-sem páginas web carregador, então você tem acesso a funcionalidades móveis, tais como, câmera, contatos, giroscópio, etc. através de linguagens de website, como HTML, XML, CSS, etc.

O Ionic 2 ainda usa WebView (tal como a versão iónica anterior), por isso você escreve o código HTML nas suas actividades do Android }, para que possa ser mais lento em comparação com ReactNative e NativeScript (falaremos sobre isso mais tarde). Você pode criar widgets de aparência nativa no Jonic 2, mas eles ainda estão rendendo na WebView dentro de um nativo container, e assim não são tecnicamente nativos.

Prós:

  • Suporte de desenvolvimento da Web híbrido. O mesmo código baseado pode ser usado para desenvolver aplicações para Android, iOS, Windows Phone e web.
  • Um ciclo de testes de desenvolvimento muito rápido. Você escreve o código e testa - o no navegador, não é necessário carregar emulador pesado.
  • permite-te escrever o código em texto, tornando a transição do Angular 2 muito fácil.
  • o mesmo linguagem (TypeScript) pode ser usado para desenvolver aplicações para todas as plataformas.
  • o seu sistema de plugins torna-o disponível para você usar qualquer tipo de funcionalidade nativa de dispositivos.

Cons:

  • Problemas de desempenho podem ocorrer se você precisar usar um monte de callbacks para o código nativo.
  • o mesmo olhar UI em todos os dispositivos pode ser um disjuntor para aqueles que preferem o visual UI nativo.
  • desenvolvimento de sistemas altamente avançados gráficos ou transições altamente interativas podem ser um trabalho complexo.

NativeScript

Desenvolvido por Telerik , O NativeScript permite-lhe usar o JavaScript ou o TypeScript para o desenvolvimento, por isso, se tiver usado o Angular 2 mais cedo, então terá uma transição fácil. Telerik {[5] } anteriormente desenvolveu Kendo UI com forte integração Angular para os aplicativos híbridos, mas eles mais tarde perceberam, por que não fornecer o verdadeiro cross-platform nativo experiência?

Com o TypeScript e Angular 2, você pode muito facilmente criar componentes para aplicações móveis usando um estilo declarativo. Alegando apoiar "escrever uma vez, executá-lo em todos os lugares", o mesmo código Angular 2 pode ser utilizado para o UI para todas as plataformas que ele está visando. NativeScript é uma plataforma transversal real, o que significa acesso 100% nativo API e sua missão é permitir que as pessoas usem a mesma base de código para todas as plataformas.

Ao contrário de ReactNative, NativeScript usa o código UI nativo (para os respectivos telefones Android e iOS), mesmo que você esteja escrevendo o código em TypeScript/JavaScript! Se considerarmos o lado do desempenho, então o NativeScript realmente tem a vantagem sobre o Reagnativo, porque ele está usando a estrutura AngularJS 2 para criar componentes.

A melhor coisa sobre o NativeScript é que ele é desenvolvido porTelerik o que lhe garante que continuará a receber novas actualizações no futuro, uma vez que é apoiado por programadores profissionais todos à volta do mundo. Então, se você está usando aplicações comerciais, você pode confiar em NativeScript mais do que ReactNative, como ReactNative é mais amigável de código aberto e conta com um monte de contribuições dos usuários. Mas o NativeScript também é de código aberto.

NativeScript is also quite matured compared to ReactNative. Já está na versão 2.0, que não é o caso com ReactNative que recebe novas atualizações com menos frequência. NativeScript pode compartilhar muito mais código do que ReactNative, o que significa que ele vai poupa o teu tempo.

Prós:

  • Suporte de plataforma. Código único-base para o desenvolvimento de aplicativos para todas as plataformas suportadas.
  • Acesso 100% nativo à API. Você pode acessar os recursos de hardware como câmera, toque, calendário, chamadas telefónicas, etc. tudo com código de dactilografia/JavaScript.
  • usa o Angular 2 para que possa transferir facilmente os seus componentes web anteriores nas suas aplicações.
  • Muito bom apoio de Telerik.

Cons:

  • Muitos plugins precisam ser baixados separadamente para os componentes. Nem todos os plugins estão disponíveis ou verificados (isto é, completamente testados).
  • O tamanho da aplicação é muito maior que o Reactivativo e o iónico 2. Se seus usuários têm conexão lenta à internet, então pode ser um problema para você.
  • Não há suporte de HTML e DOM em NativeScript, então você precisa aprender diferentes componentes UI para construir UI do aplicacao.
 25
Author: Yulian, 2018-03-06 22:52:25

Não misture Nativescript com aplicações híbridas como aplicações híbridas são aplicações que usam webview (como o Ionic), O Nativescript é um nativo. Qual das diferenças entre os dois tipos.

Com o Jónico, podes ter uma única fonte, já que tens a mesma visão dos três alvos.

Com O Nativescript usa o elemento nativo, por isso terá de fazer duas visualizações diferentes para navegadores e para telemóveis e algumas alterações entre o código javascript como algumas coisas não estão na API do navegador, mas estão no lado nativo ou vice-versa.

Depende do aplicativo Qual é o alvo de uso.

 15
Author: Marek Maszay, 2018-09-17 11:16:25

Para acrescentar tardiamente às excelentes respostas acima, como mencionou, o negócio deve fornecer entrada no processo de decisão também. Abaixo estão algumas perguntas subjetivas que a empresa tem que ajudar a responder:

  • Que impacto terá o financiamento / a identificação dos recursos do programador no projecto? Ou seja: temos que nos contentar com o que temos? Arranjar pessoas novas? Re-formação? Soluções híbridas vs. nativas e se o uso do código existente é necessário tem impacto não trivial. Imagine um solução onde os desenvolvedores nativos ou front-end se tornam mais ou menos redundantes...

  • Qual é o impacto sobre o negócio se o UI/UX é ou não é semelhante em todo o mobile vs web/responsive/hybrid/PWA? E o impacto de capacidades um pouco diferentes acessando recursos nativos como câmera, GPS, notificações, etc entre nativo e web/responsive/hybrid/PWA?

  • Qual é o impacto da possível diferença de desempenho das aplicações nas plataformas? (ie. nativo é mais rápido)
  • O negócio avaliou os custos de vida e manutenção de cada uma destas soluções?

As respostas são os principais drivers a ir responsivo (say grid/flexbox/bootstrap), híbrido (say Ionic), ou nativo (say likes of Nativescript, React Native, or pure os native).

No final, a decisão final é uma combinação de condutores profissionais e técnicos.
 1
Author: MoMo, 2017-11-20 21:53:31