Comment Sencha Touch fonctionne-t-il sur Android dans la pratique? [fermé]

17

Je suis sur le point de démarrer un projet en utilisant Sencha Touch, et je viens de faire quelques tests mineurs sur mon appareil HTC desire. Toutes les vidéos de didacticiel de Vimeo semblent utiliser un émulateur iPhone fonctionnant sur un Mac. Je ne sais pas à quelle vitesse cet émulateur est comparé à un véritable appareil iPhone ou même un vrai appareil Android, mais d'après ce que j'ai vécu, il semble que mon désir HTC ne fonctionne pas aussi bien que cet émulateur.

Toutes les animations (glissement, fondu, etc.) semblent un peu décalées. Vous pouvez facilement remarquer que le FPS est beaucoup moins que sur les vidéos Vimeo.

HTC desire est un téléphone Android 2.2 relativement nouveau et moderne, fonctionnant avec du matériel décent, donc je me demande si Sencha Touch est "prêt" pour la plate-forme Android.

Quelqu'un avec une expérience pratique avec Android et Sencha Touch?


la source

Réponses:

19

Je travaille sur plusieurs applications Sencha Touch pour Android à l'aide de Phonegap et les résultats sont décevants. L'expérience de l'interface utilisateur sur les appareils iOS est largement supérieure à Android.

Sur les appareils iOS, tout est fluide (carrousels, curseurs tout), mais sur Android, tout est un peu décalé et ne répond pas.

Mise à jour J'ai fait un peu plus de recherche et il semble que les appareils iOS utilisent l'accélération matérielle GPU pour effectuer les transitions CSS. Sur les appareils Android, tout cela est fait par le CPU en plus de tout ce qu'il fait déjà, nous avons donc un aspect lent à l'interface utilisateur. Soupir ..... Je suppose qu'il est beaucoup plus difficile de mettre en œuvre l'accélération matérielle lorsque le matériel varie tellement.

Fait intéressant, j'ai également lu que même les applications Android natives (même les écrans de menu intégrés) n'utilisent pas l'accélération matérielle. Seules les applications utilisant OpenGL utiliseront réellement le GPU.

Dean Wild
la source
Je me sentais similaire lorsque je testais Sencha Touch sur mon HTC Desire Z, mais je sentais également que les choses semblaient plus iPhone-ish qu'Android-ish. Une autre chose était que - alors que le pourcentage de personnes auquel cela s'applique pourrait être faible - Sencha Touch ne "fonctionne" plus pour moi sur Android depuis que j'utilise Firefox Mobile, tandis que Sencha Touch est uniquement Webkit.
zenzelezz
2
Cela fait 2 ans et Sencha touch est toujours décevant.
Kugel
ça craint toujours 😡 le toucher sencha est une merde sans valeur! Il y a tellement de choses qu'ils disent faire mais même pas une chose qu'ils font correctement ... demandez-leur simplement s'ils prennent en charge la fonctionnalité d'accessibilité d'Android ou même iOS et regardez-les se tortiller!
Nav
3

De sencha.com :

Sencha Touch, le premier framework JavaScript mobile HTML5 qui vous permet de développer des applications Web mobiles qui semblent natives sur iPhone et Android

Je pense que la raison pour laquelle il est si lent, c'est que l'application est écrite en utilisant HTML5 / javascript. Ce qui, quand on y pense pour la première fois, est assez génial, car il facilite le déplacement entre les plates-formes. L'inconvénient est qu'ils «ressemblent et se sentent» comme des applications natives, mais ne le sont pas réellement. Ainsi, au lieu d'un code natif s'exécutant rapidement sur votre appareil, vous disposez probablement d'un wrapper pour un navigateur, dans lequel tout le code n'est que du balisage / js, ce qui est plus lent. Pensez à utiliser l'application cnn vs aller à cnn.com dans le navigateur Web de l'iphone, c'est essentiellement le même type de différence. C'est probablement ce que vous voyez, car un Mac rapide et un émulateur pourraient pousser beaucoup plus fort qu'un appareil (à moins que l'émulateur ne soit limité pour être aussi lent que l'appareil natif, ce qui pourrait être ... quelqu'un double vérifiez-moi).

Ryan Hayes
la source
1

J'ai fait une petite comparaison de Sencha, JQuery mobile et dojox.mobile sur un émulateur et un téléphone Android en utilisant PhoneGap pour une application réelle. L'essentiel est que ce dojo surpasse facilement Sencha et JQuery, qui sont tous deux actuellement si lents qu'ils sont complètement inutiles même sur un matériel puissant.

Donc pour l'instant je vais personnellement avec dojo ou devenir natif.

Facile à essayer par vous-même en prenant l'une des «vitrines» des différents cadres et en les chrome2phone sur votre propre appareil.

Psimon
la source
1
Vous êtes le premier à dire que Dojo Mobile surpasse tous les autres frameworks. Parmi tous les développeurs d'applications mobiles que je connais, Dojo est le gag en cours d'exécution d'un cadre mobile qui a mal tourné ...
Steffen Müller
Si vous ne parlez que de performances, les émulateurs ne doivent jamais être utilisés. Ils sont très différents de ceux qui fonctionnent sur le matériel.
Mufasa
1

Je sais que c'est une question plus ancienne, cependant, je peux confirmer que nous avons également des problèmes de performances avec Sencha Touch 2.0 sur Android. Nous avons construit un prototype assez simple avec des mises en page de cartes très simples et aucune image personnalisée ou css du tout et nous avons toujours remarqué un grand décalage sur chaque appareil Android que nous avons testé. Au début, nous pensions que nous violions certaines des meilleures pratiques Sencha, mais après avoir parcouru le code et révisé tous les domaines où nous pensions que cela pouvait causer des problèmes, nous ne pouvions toujours pas obtenir la réactivité et la fluidité près de ce que nous espérions.

De plus, il semble qu'en général, toute méthode non native (en particulier JS / HTML / CSS) pour développer une application mobile aura toujours au moins quelques petits problèmes de performances. Nous envisageons maintenant d'utiliser Titanium car il offre une solution de base de code unique avec des performances beaucoup plus proches du natif (car il est techniquement natif).

paz
la source
1
Par curiosité, avez-vous essayé sur des appareils Android 4.0? Puisqu'ils ont une accélération GPU disponible, cela pourrait mieux fonctionner. Comment activer: developer.android.com/guide/topics/graphics/hardware-accel.html
Drake Clarris
1
Merci pour le conseil. Nous n'avons testé sur aucun appareil 4.0. À en juger par la réponse de Dean Wild, je pensais que les problèmes d'accélération du GPU étaient probablement le principal coupable. Le problème est maintenant que même si nous pouvions augmenter les performances sur les appareils 4.0, ils constituent une si petite partie (~ 10%) du marché Android que nous finirons probablement par choisir une solution en dehors de Sencha.
paz
peu importe ce que vous faites avec sencha, il sera toujours lent ... la raison étant que leur structure dom imbriquée profonde qui ne convient à aucun navigateur laisse les navigateurs mobiles.
Nav
0

Nous venons de lancer une application sencha touch et il y a des problèmes de performances importants dans Android par rapport à iOS. Soyez prudent lorsque vous essayez d'implémenter des interfaces de conception lourde.

Quelque chose que j'aurais aimé savoir il y a 3 mois: les gros designs initiaux sont mauvais dans le mobile. Vous avez vraiment besoin d'une approche itérative entre l'équipe de conception / développement. Les transitions CSS3 sont difficiles sur Android: évitez beaucoup de coins arrondis, RGBA, dégradés, ombres de texte. Cela fera que votre application aura une crise.

Gardez le DOM aussi petit que possible; détruire les panneaux car ils ne sont plus utilisés.

Nous avons vu d'étranges comportements draw () sur Android, mais cela peut simplement provenir du fait que nous demandons trop de CPU. La seule façon de savoir est de profiler tout le code comme un ninya

malmener
la source
0

Veuillez vous référer à cet article de l'équipe d'ingénierie de LinkedLN sur la façon dont ils ont amélioré les performances de leur application HTML5 en codant manuellement les manipulations DOM:

http://engineering.linkedin.com/linkedin-ipad-5-techniques-smooth-infinite-scrolling-html5

Dans le contexte de cet article, je vois deux problèmes avec Sencha Touch:

  1. Sencha Touch construit son interface utilisateur en convertissant des objets Javascript en nœuds Dom et en les ajoutant dans l'arborescence Dom. Les outils Chrome montreront qu'il finit par ajouter un nombre relativement élevé de DIV et d'autres éléments DOM à l'arborescence Dom. Cela n'aurait-il pas un effet néfaste sur les performances?

  2. La plupart des nœuds Dom dans l'interface utilisateur Sencha sont générés par le code API Sencha et non à partir du balisage. Si nous écrivons du code pour manipuler directement ces éléments Dom, pouvons-nous être sûrs qu'il ne produira aucun effet secondaire?

J'ai posté cette requête sur le forum officiel de Sencha aujourd'hui. Met à jour cette réponse avec la réponse.

Nikhil Katre
la source
1
Je ne vois pas si vous avez posté cela en 2011/2012 mais actuellement l'iPad / iPhone n'est tout simplement pas un problème sur Sencha Touch. Il fonctionne absolument sans faille. Le problème est n'importe quelle version actuelle d'Android 2,4, etc. translate3d est si saccadé qu'il est presque inutilisable.
Dominic Watson
0

Nous faisons une application web pour iOS / Android en utilisant le framework Sencha 2 et les performances sont tout simplement horribles sur Android par rapport à IOS. Malheureusement, je dis maintenant à mes clients que s'ils veulent une application sur Android, passez en natif ou en titane. J'espère qu'ils pourront apporter des améliorations, mais je n'utiliserai plus jamais Sencha si la plate-forme cible est Android.

Pour info (l'appareil cible était le Galaxy S3).

29er
la source
-1

Sencha Touch + Phonegap Sucks sur les appareils Android. Surtout si vous visez la 2.2 depuis. Cette combinaison fonctionne bien pour la catégorie G3 / Note des appareils Android. Oubliez Sencha Touch + Phonegap sur Android si vous voulez des performances et une interface utilisateur comme natives.

Sencha Touch + Phonegap n'est bon que pour frapper rapidement les marchés sur des milliers d'appareils sans souhaiter un aperçu et des performances incroyables.

SI votre client est très précis sur l'interface utilisateur et les performances et insiste sur la solution hybride, donnez-lui simplement une clause de non-responsabilité et le document signé par lui qu'il veut l'application Sencha Touch + Phonegap.

J'ai brûlé non seulement mes doigts mais tout mon corps avec ce combo mortel sur Android.

ashu
la source
-1

Sa démo d'évier de cuisine de novembre 2013 et Sencha 2 se bloque sur mon HTC Android 4.0, d'autres cadres html5 montrent une meilleure réponse comme le XDK d'Intel qui utilise jqMobi.

Pacifique Sud
la source