11
votes

Comment Sencha Touch + Phonegap est-elle comparée aux applications natives en termes de vitesse?

Je suis vraiment inquiet que lorsque j'écris l'application iPhone avec Sencha Touch et l'a placée dans le conteneur PhoneGap, l'expérience utilisateur diminuerait.

Je vois particulièrement les goulots d'étranglement dans:

  • fluidité des transitions d'écran (animations)
  • fluidité du défilement

    Veuillez vous tenir à l'esprit qu'il y a beaucoup d'iPhones 3G runnin iOS 4.x qui les rendaient très lents. Je rejette le support de l'iPhone d'origine.

    I, étant un professionnel de l'UI formé, peut repérer l'application ST en appuyant quelques choses dedans.

    Le passage de safari au conteneur de téléphones-téléphones augmente-t-il les performances?

    Avez-vous une expérience avec elle?


1 commentaires

La dernière version de l'IOS4 aime à peu près les utilisateurs de la lenteur 3G expérimentés. Après cette mise à niveau, mes tests 3G ne sont pas sensiblement plus lents qu'il s'agissait d'iOS 3.


6 Réponses :


14
votes

Je n'ai pas utilisé St ou Phonegap, mais j'ai utilisé une application construite avec elles. Je peux dire définitivement l'expérience des applications était pire dans mes 3GS. Si vous planifiez une démo, un prototype ou un test, vous êtes en sécurité avec eux. Toutefois, si vous souhaitez créer une application avec une compétition UI / UX , vous ne devriez pas. (Et même si vous voulez faire des prototypes, il devrait être de mieux avoir des papiers)

Pour votre question, la vitesse. C'est définitivement pas comparable. HTML + CSS est riche en fonctionnalités et facile à utiliser. Bien sûr, il est lent autant que c'est facile. La plupart des outils d'interface utilisateur basés sur HTML utilisent juste uiwebview qui fait partie du cadre natif. En fait, uiWebView est le safari mobile lui-même. Donc, la performance des outils ne sera jamais meilleure que la safari mobile. Si vous souhaitez vérifier les performances dans des animations, visitez http://www.chromeexperiments.com/ avec safari mobile . J'ai vérifié que rien de la vitrine ne fonctionne bien que beaucoup d'entre eux ne nécessitent pas de puissance graphique forte.

Les applications natives sont compilées et optimisées avec des technologies de pointe de la recherche de recherches professionnelles au cours des décennies. Et il y a beaucoup d'options pour modifier et régler le code de la performance. Cependant, quelques-uns d'entre eux sont appliqués à HTML. car HTML devrait toujours garantir un cadre riche en fonctionnalités et facile à utiliser. Et la plupart des optimisations (qui rend l'amélioration de la performance) sont des compromis entre la fonctionnalité et la simplicité.

Cependant, dans IOS 4.3 La performance de Safari mobile est améliorée. Mais je ne crois pas qu'il est significatif pour les applications avec brillance d'UIS.

J'ai vu un cadre graphique considérable avec JavaScript. En fait, c'était un cadre de jeu avec des scripts en JavaScript. Donc, il n'a aucune relation avec HTML ou CSS. (J'ai oublié le nom de celui-ci, mais c'était un produit incomplet)

ps.

Et il y a une autre grande raison pour vous. L'incohérence comportementale de l'UI. Les cadres imprègnent l'interface utilisateur natif de iOS mais incomplète. Donc, il se sent mal à l'aise comme les marques de copycat imitatées. Cependant, vous n'avez pas besoin de m'occuper de cela si vous ne voulez pas d'interface utilisateur natale.

Edit

Cela fait longtemps que j'ai répondu à cette question, mais j'ai réalisé que je dois aussi mentionner à propos de GC. JavaScript est la langue basée sur GC. Cela signifie qu'il a un temps de GC imprévisible qui rend le fil principal cesse. Cela fait des difficultés à l'interface utilisateur. Sur la mise en œuvre native, vous avez le contrôle d'utiliser GC ou non.

Ce ne serait pas un problème sur Android. Android avait toujours des personnes difficiles à lutter à cause de GC sur Java. Par conséquent, les utilisateurs ne ressentiront aucune différence. Mais sur iOS, votre application basée sur HTML5 ne fournit jamais de meilleure expérience que l'application native du concurrent.

Il existe de nombreuses solutions de contournement pour cette question de temps GC. Comme incrémental-gc, réeltime-gc et ainsi de suite. Mais en fait, il n'y a pas de vraie solution. Parce que le problème primitif est vous n'avez pas de contrôle .


5 commentaires

Juste pour référence. Même Facebook reconnaissait que les paris sur l'architecture basée sur HTML sur des appareils mobiles ont été une plus grande erreur. TechCrunch.com/2012/09/11/... Eh bien, c'est l'exemple le plus évident pour la raison pour laquelle la raison ne doit pas aller pour une application multiplate-forme.


Sencha a rééquilibré au défi de Facebook à propos de HTML5 n'étant pas prêt Sencha.com/blog/Le-making-of-ffastbook-An-html5-love-story - Je pense que les compétences du développeur sont minimisées dans toute cette approche natale vs *. La plupart des applications natives sont écrites par des programmeurs mobiles expérimentés; La plupart des applications téléphoniques HTML5 sont écrites par Web Devolopers ayant une lecture rapide avec une nouvelle technologie intéressante. Ceci est au moins partiellement responsable des mauvaises performances observées de PhoneGap, de Titanium, de Sencha, etc.


@Nick, que pensez-vous de pourquoi Les programmeurs les plus expérimentés préfèrent la plate-forme natale sur les plates-formes sur couche? Parce que la plate-forme superposée manque toujours de Control , et cela devient éventuellement une question critique dans près de 100%.


Si les cuillères à outils de développement de la plate-forme natale étaient inférieures, l'utilisation d'une plate-forme en couches / abstraite pourrait être logique. (Ex: Adt / NDK) mais malheureusement, les cuillères natives d'Apple sont très supérieures par rapport à ce que Sencha peut offrir.


Enfin, faire de la vidéo de démonstration de bonbons oculaires est vraiment facile. Mais la démo ne signifie pas que vous pouvez aussi faire cela en production. J'ai essayé le Fastbook sur safari mobile, mais cela m'a montré juste un écran blanc blanc.



1
votes

J'ai trouvé la performance des applications ST à sucer même en dehors de la téléphonie.


0 commentaires

1
votes

Au moment de la rédaction, je dirais: Bon pour la maquette et une application rapide sans graphisme exigeant élevé.

Mais les choses pourraient changer au fil du temps car les deux projets (PhoneGap et Sencha Touch) s'améliorent jour après jour.

et le matériel devient de plus en plus puissant (iPhone 4, 5, 5, ..., CPU à deux bras, ...) Il y aura donc un temps où les applications basées sur ST et PhoneGap auront des performances proches des applications autochtones et Cela pourrait venir après que prévu.

Alors gardez un œil sur ces projets et continuez à développer des applications «de base» avec eux pour tester leurs performances.


1 commentaires

Si la machine est assez rapide, tout est possible. Et aussi le temps passe assez, la machine deviendra plus rapide. Cependant, personne ne connaît l'avenir et important est présent. Et même avec un bras Dual-Core St + PG est toujours trop lent pour les animations d'applications indigènes. De plus, même cela se produise, cela ne signifie pas qu'ils sont proches de natifs. En raison des raisons mentionnées dans ma réponse. Cela signifie simplement qu'elles obtiendront suffisamment de performances pour faire quelque chose que les applications indigènes ont fait longtemps.



1
votes

J'ai construit une application commerciale avec Sencha Touch avec et sans téléphone. Tout impact majeur de performance est de Sencha Touch (1.x ou 2), pas de téléphones. Comme Eonil l'explique, c'est que PhoneGap utilise vraiment le navigateur natif. J'ai remarqué ST Performance "assez bon" sur iPhone 4 (et je discuterais 3GS avec iOS 4.3+; dépend des attentes de vos utilisateurs). Sur Android, seuls les appareils vraiment récents sont adéquats pour ST 1.1, mais ST 2 s'est concentré sur les performances Android. Je suis sûr que Sencha continuera à innover et à conduire des performances car leur entreprise dépend de celle-ci.

Si vous utilisez Sencha Touch (ou n'importe quel JavaScript), assurez-vous d'utiliser la version minifiée (-Debug).

J'ai également construit des applications indigènes triviales sur iOS et Android et, en effet, il n'y a pas de comparaison; Natif est bien plus rapide.


0 commentaires

3
votes

Il s'avère que mettre un wrapper téléphonique autour de n'importe quelle webapp (y compris toutes les applications ST2) peut en réalité diminuer leur performance. En effet, l'interface uiwebview qu'elle utilise est en fait non identique au navigateur Safari d'IOS qui a eu plusieurs améliorations pour le rendre plus perforant. Une raison derrière cela est que, comme de iOS 4.3 , Safari Utilisez le moteur JavaScript "Nitro" qui est assez rapide, ce n'est pas disponible sur l'UIWebView qui est utilisé par téléphoneGap (bien que AS de IOS5 Il est disponible pour les webApps en mode plein écran ).

Quelques personnes ont expérimenté la performance pour voir quel est l'impact, on examine la performance du Facebook app et une autre à Performances sur toile .

Il s'avère que le navigateur d'interface utilisateur incorporé peut-être pire que l'andriod une comme Certains tests ont montré .


0 commentaires

0
votes

J'ai fait plusieurs applications avec ST2 et enveloppé pour Native. Vous pouvez bien sûr comparer les deux, mais ce sont des bêtes très différentes!

Mettez simplement, si votre application SENCHA fonctionne bien dans le stock Safari et Android, elle fonctionnera de manière similaire une fois qu'elle est enveloppée pour iOS ou Android. PhoneGap / Cordova N'effectuez pas beaucoup de performances, ce sont simplement le pont / le conteneur vers la fonctionnalité native.

Je pense que si vous êtes inquiet pour la performance, regardez les nombreux tutoriels autour de l'optimisation des applications ST2. Il y a beaucoup de choses qui peuvent être faites pour améliorer les transitions et la liste de défilement.

Si vous êtes satisfait de la manière dont votre application fonctionne comme une application Web, je pense que vous avez déjà répondu à votre question déjà. WebApps ne sont pas indigènes et cette masquage faite par certains des plus grands cadres est trompeur. En fin de compte, l'utilisateur aura des attentes qui ne sont pas toujours atteintes.


0 commentaires