Wie ist die Leistung von Sencha Touch auf Android in der Praxis? [geschlossen]


17

Ich bin gerade dabei, ein Projekt mit Sencha Touch zu starten und habe gerade einige kleinere Tests auf meinem HTC Desire-Gerät durchgeführt. Alle Tutorial-Videos bei Vimeo scheinen einen iPhone-Emulator zu verwenden, der auf einem Mac ausgeführt wird. Ich bin mir nicht sicher, wie schnell dieser Emulator im Vergleich zu einem echten iPhone-Gerät oder sogar einem echten Android-Gerät ist, aber meiner Erfahrung nach scheint mein HTC-Wunsch nicht so gut zu funktionieren wie dieser Emulator.

Alle Animationen (gleiten, verblassen usw.) scheinen etwas verzögert. Sie können leicht feststellen, dass die FPS viel geringer ist als bei den Vimeo-Videos.

HTC Desire ist ein relativ neues und modernes Android 2.2-Handy mit anständiger Hardware. Ich frage mich, ob Sencha Touch für die Android-Plattform "bereit" ist.

Jemand mit praktischen Erfahrungen mit Android und Sencha Touch?

Antworten:


19

Ich arbeite an mehreren Sencha Touch Apps für Android mit Phonegap und die Ergebnisse sind enttäuschend. Die Benutzeroberfläche auf iOS-Geräten ist Android weit überlegen.

Auf iOS-Geräten ist alles reibungslos (Karussells, Schieberegler alles), aber auf Android ist alles etwas verzögert und reagiert nicht mehr.

Update Ich habe ein bisschen mehr nachgeforscht und es scheint, dass die iOS-Geräte die GPU-Hardwarebeschleunigung verwenden, um die CSS-Übergänge durchzuführen. Auf den Android-Geräten wird dies alles von der CPU erledigt, zusätzlich zu allem anderen, was sie bereits erledigt. Auf diese Weise wirkt die Benutzeroberfläche träge. Seufz ... Ich denke, es ist viel schwieriger, die Hardwarebeschleunigung zu implementieren, wenn die Hardware so stark variiert.

Interessanterweise habe ich auch gelesen, dass selbst native Android-Apps (sogar die eingebauten Menübildschirme) keine Hardwarebeschleunigung verwenden. Nur Apps, die OpenGL verwenden, verwenden die GPU tatsächlich.


Beim Testen von Sencha Touch auf meinem HTC Desire Z fühlte ich mich ähnlich, aber auch, dass sich die Dinge mehr nach iPhone als nach Android anfühlten. Eine andere Sache war, dass - obwohl der Prozentsatz der Personen, für die dies zutrifft, niedrig sein könnte - Sencha Touch auf Android nicht mehr "funktioniert", da ich Firefox Mobile verwende, während Sencha Touch nur Webkit-fähig ist.
Zenzelezz

2
Es ist 2 Jahre her und Sencha Touch ist immer noch enttäuschend.
Kugel

es saugt immer noch still Sencha Touch ist ein wertloses Stück Mist! Es gibt so viele Dinge, von denen sie sagen, dass sie sie tun, aber nicht einmal eine, die sie korrekt tun ... Fragen Sie sie einfach, ob sie die Barrierefreiheitsfunktion von Android oder sogar iOS unterstützen, und beobachten Sie, wie sie sich winden!
Nav

3

Von sencha.com :

Sencha Touch, das erste HTML5-Framework für mobiles JavaScript, mit dem Sie mobile Web-Apps entwickeln können, die auf iPhone und Android nativ aussehen und sich nativ anfühlen

Ich denke, der Grund, warum es so langsam ist, ist, dass die Anwendung mit HTML5 / Javascript geschrieben wurde. Was, wenn Sie zum ersten Mal darüber nachdenken, ziemlich gut ist, da es einfacher ist, sich über Plattformen hinweg zu bewegen. Der Nachteil ist, dass sie wie native Apps aussehen und sich anfühlen, dies aber nicht sind. Anstatt nativen Code schnell auf Ihrem Gerät auszuführen, haben Sie wahrscheinlich einen Wrapper für einen Browser, in dem der gesamte Code nur Markup / js ist, was langsamer ist. Denken Sie darüber nach, die cnn-App zu verwenden, anstatt im iphone-Webbrowser auf cnn.com zu gehen. Das ist im Wesentlichen der gleiche Unterschied. Dies ist wahrscheinlich, was Sie sehen, da ein schneller Mac und ein Emulator viel härter drängen können als ein Gerät (es sei denn, der Emulator wird gedrosselt, um so langsam zu sein wie das native Gerät, was es sein könnte ... jemand doppeltes Überprüfe mich).


1

Ich habe einen kleinen Benchmark von Sencha, JQuery Mobile und dojox.mobile auf dem Android-Emulator und dem Telefon mit phonegap für eine echte App durchgeführt. Die Quintessenz ist, dass Dojo sowohl Sencha als auch JQuery, die beide derzeit so träge sind, dass sie selbst auf leistungsfähiger Hardware völlig unbrauchbar sind, leicht übertrifft.

So, jetzt gehe ich persönlich mit Dojo oder gehe einheimisch.

Probieren Sie es einfach selbst aus, indem Sie eines der beiden "Vitrinen" aus den verschiedenen Frameworks auswählen und auf Ihr eigenes Gerät übertragen.


1
Sie sind der erste, der sagt, dass Dojo Mobile alle anderen Frameworks übertrifft. Unter allen Entwicklern von mobilen Apps, die ich kenne, ist Dojo der Running Gag eines fehlgeschlagenen mobilen Frameworks ...
Steffen Müller

Wenn Sie nur von Leistung sprechen, sollten Sie niemals Emulatoren verwenden. Sie unterscheiden sich erheblich von der Hardware.
Mufasa

1

Ich weiß, dass dies eine ältere Frage ist. Ich kann jedoch bestätigen, dass wir auch Leistungsprobleme beim Ausführen von Sencha Touch 2.0 auf Android haben. Wir haben einen recht einfachen Prototyp mit sehr einfachen Kartenlayouts und überhaupt keinen benutzerdefinierten Bildern oder CSS erstellt und trotzdem auf jedem von uns getesteten Android-Gerät eine große Verzögerung festgestellt. Zuerst dachten wir, dass wir gegen einige der Best Practices von Sencha verstoßen, aber nachdem wir den Code durchgesehen und alle Bereiche überarbeitet hatten, von denen wir dachten, dass sie Probleme verursachen könnten, konnten wir immer noch nicht die erhoffte Reaktionsfähigkeit und Geschmeidigkeit erreichen.

Im Allgemeinen scheint jede nicht native Methode (insb. JS / HTML / CSS-basiert) zur Entwicklung einer mobilen App immer zumindest einige kleine Leistungsprobleme zu haben. Wir erwägen jetzt die Verwendung von Titanium, da es eine Single-Code-Basislösung mit einer Leistung bietet, die der nativen Lösung viel näher kommt (da sie technisch nativ ist).


1
Haben Sie es aus Neugier auf Android 4.0-Geräten versucht? Da die GPU-Beschleunigung verfügbar ist, funktioniert sie möglicherweise besser. So aktivieren Sie: developer.android.com/guide/topics/graphics/hardware-accel.html
Drake Clarris

1
Danke für den Tipp. Wir haben noch keine 4.0-Geräte getestet. Nach Dean Wilds Antwort zu urteilen, stellte ich fest, dass Probleme mit der GPU-Beschleunigung wahrscheinlich der Hauptschuldige waren. Das Problem ist jetzt, dass selbst wenn wir die Leistung von 4.0-Geräten verbessern könnten, diese einen so geringen Anteil (~ 10%) am Android-Markt ausmachen, dass wir wahrscheinlich immer noch eine andere Lösung als Sencha haben werden.
Paz

Egal was du mit Sencha machst, es wird immer langsam sein. Der Grund dafür ist die tief verschachtelte Dom-Struktur, die nicht für jeden Browser geeignet ist. Ganz zu schweigen von mobilen Browsern.
Nav

0

Wir haben gerade eine Sencha Touch App gestartet und es gibt einige signifikante Leistungsprobleme bei Android im Vergleich zu iOS. Seien Sie vorsichtig, wenn Sie versuchen, designintensive Schnittstellen zu implementieren.

Etwas, von dem ich mir vor 3 Monaten gewünscht hätte, dass ich es wüsste: Große Upfront-Designs sind in Mobilgeräten schlecht. Sie brauchen wirklich einen iterativen Ansatz zwischen dem Design- / Entwicklerteam. CSS3-Übergänge sind unter Android schwierig: Vermeiden Sie viele abgerundete Ecken, RGBA, Farbverläufe und Textschatten. Es wird Ihre App einen Anfall haben.

Halten Sie das DOM so klein wie möglich. zerstöre die Paneele, da sie nicht mehr gebraucht werden.

Wir haben einige merkwürdige draw () -Verhaltensweisen auf Android gesehen, aber das kann einfach daran liegen, dass wir zu viel von der CPU verlangen. Die einzige Möglichkeit, dies zu wissen, besteht darin, den gesamten Code wie eine Ninya zu profilieren


0

Lesen Sie in diesem Artikel des LinkedLN Engineering-Teams nach, wie sie die Leistung ihrer HTML5-App durch manuelles Codieren von DOM-Manipulationen verbessert haben:

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

Im Zusammenhang mit diesem Artikel sehe ich zwei Probleme mit Sencha Touch:

  1. Sencha Touch erstellt seine Benutzeroberfläche, indem Javascript-Objekte in Dom-Knoten konvertiert und in den Dom-Baum eingefügt werden. Chrome Tools zeigt, dass dem Dom-Baum eine relativ große Anzahl von Divs und anderen DOM-Elementen hinzugefügt wird. Würde sich das nicht nachteilig auf die Leistung auswirken?

  2. Die meisten Dom-Knoten in der Sencha-Benutzeroberfläche werden vom Sencha-API-Code und nicht vom Markup generiert. Wenn wir Code schreiben, um diese Dom-Elemente direkt zu manipulieren, können wir dann sicher sein, dass er keine Nebenwirkungen hervorruft?

Ich habe diese Abfrage heute im offiziellen Sencha-Forum veröffentlicht. Aktualisiert diese Antwort mit der Antwort.


1
Sie können nicht sehen, ob Sie dies in 2011/2012 gepostet haben, aber derzeit ist iPad / iPhone auf Sencha Touch kein Problem. Es läuft absolut einwandfrei. Das Problem ist jede aktuelle Version von Android 2.4 usw. translate3d ist so abgehackt, dass es fast unbrauchbar ist.
Dominic Watson

0

Wir machen eine Web-App für iOS / Android mit dem Sencha 2-Framework und die Leistung ist auf Android im Vergleich zu IOS einfach schrecklich. Leider sage ich meinen Kunden jetzt, dass sie, wenn sie eine App für Android wollen, entweder native oder Titanium werden. Hoffentlich können sie Verbesserungen vornehmen, aber ich werde Sencha nie wieder verwenden, wenn die Zielplattform Android ist.

Zu Ihrer Information (Zielgerät war Galaxy S3).


-1

Sencha Touch + Phonegap saugt auf Android-Geräten. Besonders, wenn Sie auf 2.2 oder höher abzielen. Diese Kombination funktioniert gut für G3 / Note Kategorie von Android-Geräten. Vergessen Sie Sencha Touch + Phonegap auf Android, wenn Sie Leistung und Benutzeroberfläche wie native möchten.

Sencha Touch + Phonegap ist nur dann gut, wenn Sie schnell auf Tausenden von Geräten auf den Markt kommen möchten, ohne aufsehenerregende Leistung zu wünschen.

Wenn Ihr Kunde sehr spezifisch in Bezug auf Benutzeroberfläche und Leistung ist und auf einer Hybrid-Lösung besteht, geben Sie ihm einfach den Haftungsausschluss und das von ihm unterschriebene Papier, dass er die Sencha Touch + Phonegap-App möchte.

Ich habe nicht nur meine Finger, sondern den ganzen Körper mit dieser tödlichen Kombination auf Android verbrannt.


-1

Die Demoversion von Nov 2013 und Sencha 2 für Küchenspülen hängt an meinem HTC Android 4.0. Andere HTML5-Frameworks zeigen eine bessere Reaktion, z. B. das Intel XDK, das jqMobi verwendet.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.