Comment fonctionne Sencha Touch + PhoneGap par rapport aux applications natives en termes de vitesse?
Je suis vraiment inquiet que quand j'écris une application iPhone avec Sencha Touch et le mettre dans PhoneGap conteneur de l'expérience utilisateur serait rétrograder.
J'ai particulièrement voir les goulets d'étranglement dans:
- la fluidité des transitions d'écran (animations)
- la fluidité de défilement
Veuillez avoir à l'esprit qu'il y a beaucoup de 3G iphone runnin iOS 4.x qui fait d'eux de très lent. Je suis à jeter le support de l'iPhone original.
J'ai, une formation de l'INTERFACE utilisateur professionnel, peut repérer le SAINT-application en appuyant simplement sur quelques choses en elle.
Le passage à partir de Safari PhoneGap récipient augmente la performance?
Vous avez une expérience avec elle?
source d'informationauteur tillda
Vous devez vous connecter pour publier un commentaire.
Je n'ai pas utilisé de ST ou PhoneGap, mais j'ai utilisé une application construite avec eux. Je peux dire catégoriquement d'expérience sur les applications a été pire dans mon 3GS. Si vous êtes la planification d'une démonstration, de prototypes ou de test, vous êtes en sécurité avec eux. Cependant, si vous voulez faire une application avec compétitif UI/UXvous ne devriez pas.
(et même si vous voulez faire des prototypes, il faut mieux avoir quelques papiers)
Pour votre question, de la vitesse. Ce n'est certainement pas comparable. HTML + CSS est riche en fonctionnalités, facile à utiliser. Bien sûr, il est lent comme beaucoup comme il est facile. La plupart de HTML de l'INTERFACE utilisateur basée sur des outils utilise juste
UIWebView
qui est une partie du cadre autochtone. En faitUIWebView
est le navigateur Safari Mobile lui-même. De sorte que la performance des outils de jamais être mieux que le navigateur Safari Mobile. Si vous souhaitez vérifier les performances dans les animations, il suffit de visiter http://www.chromeexperiments.com/ avec le navigateur Safari Mobile. J'ai vérifié, aucun de vitrine est en cours d'exécution en douceur et même de beaucoup d'entre eux ne nécessitent pas de forte puissance graphique.Les applications natives sont compilé et optimisé avec des technologies de pointe de professionnels des recherches pendant des décennies. Et il y a beaucoup d'options pour modifier et optimiser le code pour la performance. Cependant quelques-uns d'entre eux sont appliquées au format HTML. Parce que le HTML devrait garantir riche en fonctionnalités, facile à utiliser toujours. Et la plupart des optimisations (qui fait de l'amélioration de la performance) sont compromis entre fonctionnalité et de simplicité.
Cependant dans iOS 4.3 Mobile de Safari, le rendement est amélioré. Mais je ne crois pas que c'est significatif pour les applications avec brillant de l'Isu.
J'ai vu un considérable graphique-cadre avec JavaScript. En fait, c'était jeu de cadre à l'aide de scripts en JavaScript. Donc, il n'a aucun rapport avec le langage HTML ou CSS. (J'ai oublié le nom, mais il était incomplet produit)
PS.
Et il y a une autre grande raison pour vous. L'INTERFACE utilisateur de comportement de l'incohérence. Les cadres imite natif de l'INTERFACE utilisateur d'iOS, mais incomplète. Il se sent mal à l'aise comme imité marques d'imitation.
Cependant vous n'avez pas besoin de s'en soucier si vous ne voulez pas natif de l'INTERFACE utilisateur.
Modifier
Il a été un long temps après que j'ai répondu à cette question, mais j'ai réalisé que je me dois également de mentionner à propos de GC. JavaScript est GC en fonction de la langue. Cela signifie, il a imprévisibles GC temps qui fait de la thread principal s'arrête. Cela rend l'INTERFACE utilisateur luttes. Sur les indigènes de la mise en œuvre, vous avez le contrôle de l'utilisation de la GC ou pas.
Ce ne serait pas un problème sur Android. Android a toujours eu ceux qui luttent à cause de GC sur Java. Par conséquent, les utilisateurs ne se sent pas de différence. Mais sur iOS, votre HTML5 application basée jamais fournir la meilleure expérience que celle de leur concurrent application native.
Il existe de nombreuses solutions de contournement pour ce GC la question du temps. L'incrémental-GC, en temps réel-GC et ainsi de suite. Mais en réalité, il n'y a pas de solution réelle. Parce que la primitive problème est vous n'avez pas le contrôle.
Il s'avère que le fait de mettre un PhoneGap wrapper autour d'une webapp (y compris tous les ST2 apps) peut considérablement diminution leur performance. C'est parce que la UIWebView qu'il utilise est en fait pas la même que l'iOS navigateur Safari qui a eu un certain nombre d'améliorations pour le rendre plus perforante. L'une des raisons derrière cela est que, comme de iOS 4.3Safari faire usage de la "Nitro" moteur JavaScript qui est assez rapide, ce qui n'est pas disponible sur la UIWebView qui est utilisé par PhoneGap (bien que comme de iOS5 il est disponible pour les applications web fonctionnant en mode plein écran).
Peu de gens ont expérimenté avec les performances de voir quel est l'impact, l'un regardant le rendement de la Facebook App et l'autre à toile de performance.
Il s'avère que l'INTERFACE utilisateur intégré navigateur peut-être pire que le Andriod un comme certains tests ont montré.
J'ai trouvé la performance de ST applications à sucer, même en dehors de PhoneGap.
Au moment de l'écriture, je dirais: Bon pour la maquette et rapide app avec pas de haute exigeants graphiques.
Mais les choses pourraient changer au fil du temps à la fois comme projet (PhoneGap et Sencha Touch) s'améliorent jour après jour.
Et le matériel est de plus en plus et de plus en plus puissants (iPhone 4, 5, ..., double cpu arm, ...) donc il y aura un temps où SAINT et PhoneGap les applications ont des performances proches des applications natives, ce qui pourrait venir après que prévu.
Afin de garder un œil sur ces projets et de les garder sur le développement d'une base d'applications avec eux de tester leurs performances.
J'ai construit une application d'entreprise avec Sencha Touch avec et sans PhoneGap. Tout grand impact sur les performances est de Sencha Touch (1.x ou 2), pas de PhoneGap. Comme Eonil explique, c'est parce que PhoneGap est vraiment en utilisant le navigateur natif. J'ai remarqué ST performances "assez bon" sur un iPhone 4 (et je dirais 3GS avec iOS 4.3+; repose sur les attentes de vos utilisateurs). Sur Android, n'est vraiment récents appareils sont adéquates pour la ST 1.1, mais ST 2 a mis l'accent sur Android performance. Je suis sûr que le Sencha va continuer à innover et les performances du disque parce que leur entreprise en dépend.
Si vous n'utilisez Sencha Touch (ou JavaScript), assurez-vous d'utiliser le minimisé (debug) version.
J'ai aussi construit trivial des applications natives sur iOS et Android, et en effet il n'y a pas de comparaison, les autochtones est beaucoup plus rapide.
J'ai fait plusieurs app avec ST2, et enveloppé pour la maternelle.
Bien sûr, vous pouvez comparer les deux, cependant, ils sont très différents des bêtes!
Mettre simplement, si votre Sencha app fonctionne bien dans Safari et Android Stock, il va effectuer une manière similaire une fois qu'il est enveloppé pour iOS ou Android. Phonegap/Cordova n'affecte pas les performances de beaucoup, ceux-ci sont simplement le pont/le conteneur à la fonctionnalité native.
Je pense que si vous êtes inquiet au sujet de la performance, à regarder les nombreux tutoriels autour de l'optimisation de ST2 apps. Il ya beaucoup qui peut être fait pour améliorer les transitions et la liste de défilement.
Si vous êtes heureux avec la façon dont votre application s'exécute comme une application web, puis je pense vous avoir répondu à votre question déjà. Webapps ne sont pas indigènes, et cette mascarade fait par certains des plus grands cadres est trompeuse. En fin de compte l'utilisateur aura des attentes qui ne sont pas toujours respectées.