57 votes

Application hybride - Ionic vs NativeScript

Je suis dans l'espace mobile, depuis un certain temps et nous avons natif Android et iOS app déjà. Aujourd'hui, notre entreprise est la planification pour améliorer notre Site Mobile, et notre équipe a choisi Angulaire 2 + Tapuscrit + Ionique 2. Avec une grande difficulté que nous avons rempli notre formulaire d'inscription de développement dans Ionique + Angulaire. Maintenant, je suis venu à connaître NativeScript pour développer des Applications Hybrides sans webview et comme il utilise le natif composant de l'INTERFACE utilisateur, les gens disent que le look et les performances de l'Application sera la bonne.

Je suis peu confus pour choisir un 1. Angulaire + Tapuscrit + Ionique (html, js, css) ou 2. Angulaire + Tapuscrit + NativeScript (xml, js, css)

Aussi notre plan à long terme est de maintenir une seule source à la fois pour iOS, Android et Site Mobile

S'il vous plaît aider moi.

Merci

48voto

Nathanael Points 4283

C'est vraiment subjectif de question/réponse, car il dépend de la quantité de travail que vous voulez faire. :-)

Tout d'abord dans un Ionique / Angulaire app vous vous êtes essentiellement faire la même version web en même temps (c'est à dire son Hybride app). La Performance peut être un problème grave en fonction de ce que vous faites. Des écrans simples pas tellement; beaucoup de données à introduire beaucoup plus de problèmes de performance. En plus de la mise en page sera probablement la cause de vous la plupart des questions que vous vous êtes essentiellement de codage pour un petit navigateur web qui a totalement différentes résolutions d'écran basé sur chaque et chaque appareil et le système d'exploitation il est en cours d'exécution sur. Si vous avez besoin de plus près à des performances natives; il y a des choses que vous pouvez faire pour rendre Ionique plus rapidement (c'est à dire comme l'utilisation de Concordance) et dans l'ensemble, vous pouvez générer un web décent/application hybride Ionique.

Cependant, les chances sont très probablement hybride n'aura jamais quelque chose de Natif de la performance, ni en fait agir comme une Application Native comme il est encore une application web s'exécutant dans un navigateur essayant d'agir comme une application native.

Maintenant, si vous êtes à la recherche pour les Natifs de la performance et/ou la capacité de faire des choses natif sur le périphérique, puis à l'aide de NativeScript pourrait être le meilleur choix. Vous obtenez des performances natives, et l'accès à toutes les commandes d'origine (c'est à dire des choses comme réel ListViews capable de gérer des milliers de complexes d'éléments avec aucun ralentissement), mais le coût est que vous N'avez pas à créer deux écrans séparés et distincts css pour votre application.

Si vous utilisez Angulaire ou VueJS; La logique réelle peuvent être partagées entre les deux un NativeScript et votre application Web. Et il y a maintenant plusieurs excellentes façons de le faire comme xPlat (Angulaire de la plateforme de partage de code). Mais dans chacun d'eux la génération de l'écran est encore différent. Donc, pour votre composant web/écran vous pouvez avoir un web - mycomponent.html -> <div>{{somevalue}}</div> et dans NativeScript Angulaire mycomponent.html -> <Label text="{{somevalue}}"></Label>. Si vous vous retrouvez avec un plus de travail en amont dans NativeScript que vous avez à créer les deux distincte de la mise en page des fichiers. Cela peut sembler comme un problème; mais en réalité, ce qui permet en fait avoir le natif version mobile posé beaucoup mieux pour un Téléphone et/ou Tablette écrans. L'ouvre également des options supplémentaires, comme peut-être d'accéder en temps réel de la caméra dans la NativeScript mise en page, et un upload de fichier image du bouton dans la version html.

Comme quelqu'un qui a utilisé les deux technologies, je suis fermement dans le NativeScript camp pour tous mes nouveaux projets, mais pour certaines personnes il y a encore quelques valide en cas d'utilisation à utiliser Ionique/Phonegap/Cordova. Si l'application est déjà basé sur le web et/ou de rien qui a vraiment besoin de tout complexe de vues et/ou des lots de données affichées. En fait, l'open source xPlat plate-forme qui nStudio offre, a un support pour les deux Ionique et NativeScript cibles. De sorte que vous pouvez en partage de code entre toutes les plateformes prises en charge et faire le meilleur choix pour votre entreprise à tous les points dans le temps.

Par exemple, peut-être que vous commencez avec les Ionique/Web construire parce que dans l'ensemble ils sont fondamentalement la même chose. En bas de la route avec xPlat de partage de code, vous pouvez facilement supprimer votre mobile le cadre de l'application de Nativescript enfin, lorsque vous avez de l'homme de plus de puissance/temps et/ou ont besoin de la meilleure performance.

Veuillez noter NativeScript w/ Angulaire permet de partage de code; en outre, si vous êtes un grand VueJS ventilateur, NativeScript w/ VueJS permet également le partage du code. Donc leur sont deux excellentes façons de faire du partage de code entre votre site web et votre NativeScript app fonction de ce que votre entreprise utilise déjà tout en gardant des performances natives pour votre application mobile.

41voto

Julian Points 191

Réponse courte

Avec Ionique vous construisez des applications hybrides ou Progressive Web Apps. La structure de l'application est écrite en HTML et l'application est à l'aide de WebViews (quelque chose comme un site web à l'intérieur de votre application).

Avec NativeScript vous sont bâtiment véritablement natif des applications qui n'utilisent pas le DOM HTML et vous aurez à apprendre les composants de l'INTERFACE utilisateur de la plate-forme de ciblage (par exemple, iOS/Android). Cependant, les applications natives sont généralement plus rapide que les applications hybrides et vous pouvez accéder au matériel de fonctionnalités comme l'appareil photo, contact, agenda, appels téléphoniques, etc. tous avec des caractères d'imprimerie/code JavaScript.


Réponse longue

Voici un extrait d'un post de blog par Danyal Zia. Je vous suggère de lire l'intégralité de l'un.

Ionique (2)

Ionique 2 est un hybride mobile cadre de développement... ok, donc ce que signifie-t-il par des hybrides de développement? Applications hybrides sont comme toutes les autres applications que vous pouvez trouver sur l'app store, ils fonctionnent de la même manière (par le téléchargement et l'installation), et de l'interaction de l'utilisateur est similaire, en fait, la plupart des utilisateurs à peine réaliser la différence entre les applications natives et les applications hybrides.

La chose intéressante à propos des applications hybrides, c'est qu'ils sont hébergés à l'intérieur d'une application native qui utilise la WebView – qui est une sorte de navigateur de moins en moins de pages web loader, de sorte que vous obtenez mobiles d'accéder aux fonctionnalités, telles que l', appareil photo, contacts, gyroscope, etc. sur le site web des langues, comme le HTML, XML, CSS, etc.

Ionique 2 utilise encore WebView (tout comme le précédent Ionique version), donc vous devez écrire le code HTML sur votre Android activités, de sorte qu'il peut être plus lent par rapport à ReactNative et NativeScript (nous allons en parler plus tard). Vous pouvez créer des indigènes à la recherche des widgets Ionique dans les 2, mais ils sont encore rendu dans WebView à l'intérieur d'un conteneur natif, et donc, techniquement, ne sont pas indigènes.

Pros:

  • Hybride web de soutien au développement. Même base de code peut être utilisé pour développer des applications pour Android, iOS, Windows Phone, et web.
  • Un développement TRÈS rapide-cycle d'essai. Vous écrivez le code et le tester sur le navigateur, pas besoin de lourds émulateur de chargement.
  • Vous permettent d'écrire du code dans la Machine, faire la transition de l'Angulaire 2 très facile.
  • De la même langue (Tapuscrit) peut être utilisé pour développer des applications pour chaque plate-forme.
  • Son système de plugin, il est disponible pour vous à utiliser tout type de fonctionnalités natives des appareils.

Inconvénients:

  • Les problèmes de performances peut se produire si vous avez besoin d'utiliser beaucoup de rappels pour le code natif.
  • De la même INTERFACE utilisateur de regarder dans tous les appareils peuvent être un briseur d'affaire pour ceux qui préfèrent l'INTERFACE natifs look.
  • Le développement très avancé des graphiques ou hautement interactif de transitions peut être un travail complexe.

NativeScript

Développé par Telerik, NativeScript vous permet d'utiliser le JavaScript ou le Tapuscrit pour le développement, de sorte que si vous avez utilisé Angulaire 2 ci-dessus, alors vous aurez une transition facile. Telerik développé précédemment Kendo UI serrés Angulaire de l'intégration pour les applications hybrides, mais ils ont réalisé plus tard, pourquoi ne pas fournir la vraie croix-plate-forme native de l'expérience?

Avec Tapuscrit et Angulaire 2, vous pouvez très facilement créer des composants pour les applications mobiles à l'aide d'un style déclaratif. Se réclamant du "écrire une fois, exécuter partout", de la même Angulaire 2 code peut être utilisé pour l'INTERFACE utilisateur pour toutes les plateformes, il est le ciblage. NativeScript est un véritable multi-plateforme, ce qui signifie 100% Native API d'accès et sa mission est de permettre aux gens d'utiliser la même base de code pour toutes les plateformes.

Contrairement à ReactNative, NativeScript utilise le natif code de l'INTERFACE utilisateur (pour les Android et iOS téléphones), même si le code est écrit en caractères d'imprimerie/JavaScript! Si l'on considère la performance de l'autre côté, puis NativeScript a vraiment l'avantage sur ReactNative, parce que c'est en utilisant AngularJS 2 structure de la création de composants.

La meilleure chose à propos de NativeScript est qu'il est développé par Telerik qui vous assure qu'il continuera de recevoir de nouvelles mises à jour dans le futur, comme il est soutenu par les développeurs professionnels partout dans le monde. Donc, si vous utilisez des applications commerciales, vous pouvez compter sur NativeScript plus de ReactNative, comme ReactNative est plus open-source amical et s'appuie beaucoup de contributions de la part des utilisateurs. Mais, NativeScript est également open-source.

NativeScript est également assez mûri par rapport à ReactNative. Il est déjà dans la version 2.0, qui n'est pas le cas avec ReactNative qui obtient de nouvelles mises à jour moins souvent. NativeScript peut partager beaucoup plus de code que ReactNative, le sens qu'il permettra d'économiser votre temps.

Pros:

  • Véritable support multi-plateforme. Base de code unique pour le développement d'applications pour toutes les plateformes prises en charge.
  • 100% Native API d'accès. Vous pouvez accéder au matériel de fonctionnalités comme l'appareil photo, contact, agenda, appels téléphoniques, etc. tous avec des caractères d'imprimerie/code JavaScript.
  • Utilise l'angle de 2 de sorte que vous pouvez facilement transférer vos précédentes des composants web dans vos applications.
  • Très bon soutien de Telerik.

Inconvénients:

  • De nombreux plugins ont besoin d'être téléchargé séparément pour les composantes. Pas tous les plugins sont disponibles et vérifiés (c'est à dire, testés).
  • La taille de l'application est beaucoup plus grande que ReactNative Ioniques et 2. Si vos utilisateurs ont une connexion internet lente, alors il peut être un problème pour vous.
  • Il n'y a pas de support de l'HTML et du DOM dans NativeScript, de sorte que vous besoin de connaître les différents composants de l'INTERFACE utilisateur pour construire l'INTERFACE utilisateur des applications.

20voto

Marek Maszay Points 1188

Ne pas mélanger Nativescript avec des applications hybrides hybrides, les apps sont des applications qui utilise webview (comme Ionique), Nativescript est un Natif. Qui un de la différence entre les deux types.

Avec l'Ionique, vous pouvez avoir une seule source que vous avez le même point de vue de tous les trois cibles.

Avec Nativescript utilise élément naturel de sorte que vous aurez à faire deux points de vue différents pour les navigateurs et pour les mobiles et quelques changements entre le code javascript que certaines choses qui ne sont pas dans le navigateur de l'API, mais sont dans l'natif côté ou vice versa.

Dépend de l'application quelle est la cible de l'utilisation.

3voto

MoMo Points 871

À tardivement ajouter à l'excellent réponses ci-dessus, comme vous l'avez mentionné, l'entreprise doit fournir des intrants dans le processus de prise de décision ainsi. Ci-dessous sont quelques questions subjectives de l'entreprise a pour but de répondre:

  • Quel sera l'impact du financement et l'identification de ressources pour les développeurs sur le projet? I. e.: nous avons à faire avec ce que nous avons? Obtenir de nouvelles personnes? Recycler? Hybride vs natif de solutions et de savoir si l'utilisation de code existant est requise est non trivial de l'impact. Imaginez une solution où natif ou avant la fin de l'développeurs de devenir plus ou moins redondantes...

  • Quel est l'impact sur l'entreprise si l'UI/UX est ou n'est pas similaire dans mobile vs web/responsive/hybride/PWA? Quid de l'impact d'un peu différentes capacités de l'accès natif des fonctionnalités comme l'appareil photo, GPS, notifications, etc entre les indigènes et web/responsive/hybride/PWA?

  • Quel est l'impact de différents les performances de l'application sur les plates-formes? (ie. native est plus rapide)
  • L'entreprise a évalué la durée de vie et les coûts d'entretien de chacune de ces solutions?

Les réponses sont les principaux moteurs d'aller sensibles (dire de la grille/flexbox/bootstrap), hybride (dire Ionique), ou natif (dis aime de Nativescript, Réagir Natif, ou pure os natif).

À la fin, la décision finale est une combinaison de techniques et d'entreprise des pilotes.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X