App - ionique hybride vs NativeScript

je suis dans l'espace mobile depuis un certain temps et nous avons déjà natif Android et l'application iOS. Maintenant, notre entreprise envisage d'améliorer notre site Mobile et notre équipe a choisi Angular 2 + TypeScript + Ionic 2. Avec beaucoup de difficultés nous avons complété notre formulaire d'enregistrement de développement en ionique + angulaire. Maintenant j'ai appris à propos de NativeScript pour développer des applications hybrides sans webview et puisqu'il utilise le composant D'interface utilisateur natif, les gens disent que le look & feel et la performance de la App sera la bonne.

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

également le plan à long terme de notre société est de maintenir une source unique pour les deux iOS, Android et le Site Mobile

Merci de m'aider.

Merci

31
demandé sur Mano 2016-11-26 17:44:50

4 réponses

c'est vraiment une question/réponse subjective car cela dépend de la quantité de travail que vous voulez faire. : -)

tout d'abord dans une application ionique / Angular2 vous faites essentiellement la même version web en même temps. La Performance peut être un problème sérieux selon ce que vous faites. Des écrans simples pas tellement, beaucoup de données; beaucoup plus de questions. En outre, la mise en page de l'écran peut vous causer certains problèmes que vous êtes essentiellement le codage à un petit navigateur Web qui a l'écran totalement différent résolutions basées sur quel périphérique et sur quel OS il se trouve. Si vous avez besoin plus près de la performance native; il y a des choses que vous pouvez faire pour rendre ionique plus rapide (c.-à-d. en utilisant CrossWalk) et dans l'ensemble, vous pouvez générer une application web décente dans iONIC 2. Mais les chances sont très probables, il n'aura jamais rien de proche de la performance natif, ni agir comme une application natif, car il s'agit toujours d'une application web essayant d'émuler une application natif.

maintenant, si vous êtes à la recherche de performances natives et / ou de la capacité de faire les choses facilement natives sur l'appareil, puis en utilisant NativeScript / Angular2 pourrait être le meilleur choix. Vous obtenez les performances natives, et l'accès à tous les contrôles natifs (c.-à-d. des choses comme des listes réelles qui peuvent gérer des milliers d'éléments complexes sans ralentissement) -- mais le coût est que vous devez créer deux écrans séparés et CSS séparés pour votre application. La logique réelle peut être partagée en NG2 entre un NativeScript et une application Web; mais la génération d'écran est différente donc pour votre html composant / écran vous pourriez avoir un mycomponent.html -> <div>{{somevalue}}</div> et en NativeScript . Ainsi, vous terminez avec un travail plus initial en NativeScript car vous devez créer les deux fichiers de mise en page séparés. Mais cela vous permet d'avoir réellement la version mobile mieux disposé pour un téléphone ou un écran de tablette, et / ou des options supplémentaires comme peut-être l'accès à la caméra dans la mise en page NS, et un bouton de téléchargement de fichier image dans la version html.

Comme quelqu'un qui a utilisé les deux technologies, Je suis fermement dans le camp NativeScript pour tous mes nouveaux projets; mais pour certaines personnes il ya encore quelques cas d'utilisation valide pour utiliser iONIC/Phonegap/Cordova si l'application est basée sur le web et rien qui nécessite des vues complexes et/ou beaucoup de données affichées.

35
répondu Nathanael 2016-11-26 15:44:35

courte réponse

ionique vous construisez applications hybrides ou Applications Web Progressives. La structure de l'application est écrite en HTML et l'application construite utilise WebViews (quelque chose comme un site web à l'intérieur de votre application).

NativeScript vous construisez vraiment applications natives n'utilisez pas le DOM HTML et vous aurez à apprenez les composants de L'interface utilisateur de la plate-forme que vous ciblez (e.g. iOS/ Android). Cependant, applications natives sont généralement plus rapides que les applications hybrides et vous pouvez accéder aux fonctionnalités matérielles telles que l'appareil photo, le toucher, le calendrier, les appels téléphoniques, etc. tous avec le code TypeScript / JavaScript.


réponse

Voici un extrait d'un blog par Danyal Zia. Je vous suggère de lire la suite un.

ionique (2)

Ionique 2 est un hybride mobile cadre de développement... OK, alors qu'est-ce que ça veut dire par développement hybride? Les applications hybrides sont comme toutes les autres applications que vous pouvez trouver sur les boutiques d'applications, elles fonctionnent de la même manière (en les téléchargeant et en les installant), et l'interaction utilisateur est similaire, en fait, la plupart des utilisateurs réalisent à peine la différence entre les applications natives et les applications hybrides.

ce qui est intéressant à propos de l'hybride apps est qu'ils sont hébergés dans une application native qui utilise le WebView - qui est une sorte de chargeur de pages Web sans navigateur, de sorte que vous obtenez l'accès à des fonctionnalités mobiles, tels que, Appareil photo, contacts, gyroscope, etc. par le biais de langues de site Web, comme HTML, XML, CSS, etc.

ionique 2 utilise toujours WebView (tout comme la version ionique précédente), donc vous écrivez le code HTML dans votre Android activités, de sorte qu'il peut être plus lent par rapport à ReactNative et NativeScript (nous en parlerons plus tard). Vous pouvez créer des widgets natifs dans Ionic 2, mais ils sont encore rendus dans WebView à l'intérieur d'un conteneur natif, et ne sont donc pas techniquement natifs.

Pros:

  • support de développement web hybride. Même base de code peut être utilisée pour développer des applications pour Android, iOS, Windows Phone et web.
  • très rapide cycle de développement-essai. Vous écrivez le code et le tester sur le navigateur, pas besoin de chargement d'émulateur lourd.
  • permet d'écrire du code à la machine, rendant la transition de L'angle 2 très facile.
  • le même langage (dactylographié) peut être utilisé pour développer des applications pour chaque plate-forme.
  • son système de plugin le rend disponible pour vous d'utiliser tout type de fonctionnalités natives de appareil.

Cons:

  • des problèmes de Performance peuvent survenir si vous devez utiliser beaucoup de callbacks pour le code natif.
  • le même look UI dans tous les appareils peut être un casseur de deal pour ceux qui préfèrent le look UI natif.
  • le développement de graphiques très avancés ou de transitions très interactives peut être un travail complexe.

NativeScript

Développé par Telerik, NativeScript vous permet d'utiliser soit JavaScript ou dactylographié pour le développement, Donc si vous avez utilisé Angular 2 plus tôt, alors vous aurez une transition facile. Telerik précédemment développé Kendo UI avec une intégration angulaire étroite pour les applications hybrides, mais ils se sont plus tard rendu compte, pourquoi ne pas fournir la vraie expérience native multiplateformes?

avec TypeScript et Angular 2, Vous pouvez très facilement créer des composants pour les applications mobiles en utilisant un déclaratif de style. En prétendant supporter "write it once, run it everywhere", le même code angulaire 2 peut être utilisé pour L'UI pour toutes les plateformes qu'il cible. NativeScript est une vraie plateforme croisée, ce qui signifie un accès 100% natif à L'API 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 code D'interface utilisateur natif (pour les téléphones Android et iOS respectifs) même si vous écrivez le code dans Tapescript / JavaScript! Si nous considérons le côté performance, alors NativeScript a vraiment le bord sur le réactif, parce qu'il utilise la structure AngularJS 2 pour créer des composants.

Telerik ce qui vous assure qu'il continuera à recevoir de nouvelles mises à jour à l'avenir, car il est soutenu par des développeurs professionnels partout dans le monde. Donc, si vous utilisez des applications commerciales, vous pouvez compter sur NativeScript plus que Réactnatif, comme Réactnatif est plus open-source amical et repose sur beaucoup de contributions des utilisateurs. Mais NativeScript est aussi open-source.

NativeScript est également assez mûr par rapport aux réactives. Il est déjà en version 2.0, ce n'est pas le cas avec ReactNative qui reçoit moins de mises à jour. NativeScript peut partager beaucoup plus de code que ReactNative, ce qui signifie qu'il sauvera 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 access. Vous pouvez accéder aux fonctionnalités matérielles telles que l'appareil photo, le toucher, le calendrier, les appels téléphoniques, etc. tous avec le code TypeScript / JavaScript.
  • utilise L'angle 2 de sorte que vous pouvez facilement transférer vos composants web précédents dans votre application.
  • très bon support de Telerik.

contre:

  • de nombreux plugins doivent être téléchargés séparément pour les composants. Tous les plugins ne sont pas disponibles ou vérifiés (c.-à-d. soigneusement testés).
  • la taille de L'application est beaucoup plus grande que la taille Réactnative et ionique 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 HTML et DOM dans NativeScript, donc vous devez apprendre les différents composants de L'interface utilisateur pour construire L'interface utilisateur des applications.
25
répondu Yulian 2018-03-06 22:52:25

Ne pas mélanger Nativescript Nativescript est autochtone. Quelle est la différence entre les deux types.

avec Ionic, vous pouvez avoir une seule source car vous avez la même vue sur les trois cibles.

Nativescript utilise l'élément natif donc vous devrez faire deux vues différentes pour les navigateurs et pour les mobiles et quelques changements entre code javascript comme certaines choses ne sont pas dans L'API du navigateur mais sont dans le côté natif ou vice versa.

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

15
répondu Marek Maszay 2018-09-17 11:16:25

pour ajouter tardivement aux excellentes réponses ci-dessus, comme vous l'avez mentionné, l'entreprise doit également contribuer au processus décisionnel. Voici quelques questions subjectives auxquelles l'entreprise doit répondre:

  • quelle sera l'incidence du financement ou de l'identification des ressources des promoteurs sur le projet? C'est-à-dire: on doit se contenter de ce qu'on a? Obtenir de nouvelles personnes? Recycler? Les solutions hybrides par rapport aux solutions natives et la question de savoir si l'utilisation du code existant est nécessaire ont un impact non négligeable. Imaginez une solution où les développeurs natifs ou front-end deviennent plus ou moins redondants...

  • Quel est l'impact sur l'entreprise si L'UI/UX est ou n'est pas similaire entre mobile vs web/responsive/hybrid/PWA? Qu'en est-il de l'impact de capacités un peu différentes accédant à des fonctionnalités natives comme la caméra, le GPS, les notifications, etc. entre natif et web/responsive/hybrid/PWA?

  • Quel est l'impact d'une éventuelle différence de performances entre les 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 des pilotes majeurs pour aller responsive (par exemple grid/flexbox/bootstrap), hybrid (par exemple ionique), ou native (par exemple likes of Nativescript, React Native, ou pur os native).

au bout du compte, la décision finale est une combinaison de facteurs commerciaux et techniques.

1
répondu MoMo 2017-11-20 21:53:31