Jak działa Sencha Touch na Androidzie w praktyce? [Zamknięte]


17

Właśnie zaczynam projekt przy użyciu Sencha Touch i właśnie wykonałem kilka drobnych testów na moim urządzeniu HTC Desire. Wszystkie filmy instruktażowe w Vimeo wydają się korzystać z emulatora iPhone'a uruchomionego na komputerze Mac. Nie jestem pewien, jak szybko ten emulator jest porównywany z prawdziwym urządzeniem iPhone, a nawet prawdziwym urządzeniem z Androidem, ale z tego, co doświadczyłem, wydaje się, że moje pragnienie HTC nie działa tak ładnie jak ten emulator.

Wszystkie animacje (przesuwane, zanikające itp.) Wydają się być trochę opóźnione. Możesz łatwo zauważyć, że liczba klatek na sekundę jest znacznie mniejsza niż w przypadku filmów Vimeo.

HTC Desire to stosunkowo nowy i nowoczesny telefon z Androidem 2.2, działający z przyzwoitym sprzętem, więc zastanawiam się, czy Sencha Touch jest „gotowy” na platformę Android.

Czy ktoś ma praktyczne doświadczenie z Androidem i Sencha Touch?

Odpowiedzi:


19

Pracuję nad kilkoma aplikacjami Sencha Touch na Androida używającymi Phonegap, a wyniki są rozczarowujące. Interfejs użytkownika na urządzeniach z iOS jest znacznie lepszy od Androida.

Na urządzeniach z iOS wszystko jest płynne (karuzele, suwaki wszystko), ale na Androidzie wszystko jest nieco opóźnione i nie odpowiada.

Aktualizacja Przeprowadziłem nieco więcej badań i wydaje się, że urządzenia iOS wykorzystują akcelerację sprzętową GPU do przejścia CSS. Na urządzeniach z Androidem wszystko to jest wykonywane przez CPU oprócz wszystkiego, co już robi, dlatego mamy opóźniony wygląd i interfejs użytkownika. Westchnienie ... Wydaje mi się, że znacznie trudniej jest wdrożyć przyspieszenie sprzętowe, gdy sprzęt tak się różni.

Co ciekawe, czytałem również, że nawet natywne aplikacje na Androida (nawet wbudowane ekrany menu) nie używają przyspieszenia sprzętowego. Tylko aplikacje korzystające z OpenGL faktycznie korzystają z GPU.


Podobnie czułem się podczas testowania Sencha Touch na moim telefonie HTC Desire Z, ale czułem też, że wszystko wygląda bardziej jak iPhone niż Android. Inną sprawą było to, że - chociaż odsetek osób, których dotyczy ta informacja, może być niski - Sencha Touch już nie „działa” dla mnie na Androidzie, ponieważ używam Firefox Mobile, podczas gdy Sencha Touch jest tylko dla Webkit.
zenzelezz

2
Minęły 2 lata, a Sencha touch wciąż jest rozczarowujący.
Kugel

wciąż jest do bani touch sencha touch to bezwartościowy badziew! Jest tak wiele rzeczy, które mówią, że robią, ale nie ma nawet jednej rzeczy, którą robią poprawnie ... po prostu zapytaj ich, czy obsługują funkcję ułatwień dostępu w Androidzie, a nawet iOS i obserwuj, jak się miewają!
Nav

3

Od sencha.com :

Sencha Touch, pierwsza mobilna platforma JavaScript w HTML5, która pozwala tworzyć mobilne aplikacje internetowe, które wyglądają i działają natywnie na iPhonie i Androidzie

Myślę, że powodem, dla którego jest tak wolny, jest to, że aplikacja jest napisana przy użyciu HTML5 / javascript. Co, gdy pomyślisz o tym, jest całkiem świetne, ponieważ ułatwia poruszanie się po platformach. Minusem jest to, że „wyglądają i czują” jak aplikacje natywne, ale tak naprawdę nie są. Tak więc zamiast natywnego kodu wykonującego się szybko na twoim urządzeniu, masz prawdopodobnie opakowanie dla przeglądarki, w której cały kod to tylko znaczniki / js, co jest wolniejsze. Pomyśl o korzystaniu z aplikacji cnn w porównaniu z przejściem do cnn.com w przeglądarce internetowej iPhone'a, to zasadniczo ten sam rodzaj różnicy. Jest to prawdopodobnie to, co widzisz, ponieważ szybki komputer Mac i emulator mogą pchać o wiele mocniej niż urządzenie (chyba że emulator jest dławiony, aby być tak powolny jak urządzenie rodzime, co może być ... ktoś podwójny Sprawdź mnie).


1

Zrobiłem niewielki test porównawczy Sencha, JQuery mobile i dojox.mobile na emulatorze i telefonie z Androidem, używając telefonu do prawdziwej aplikacji. Najważniejsze jest to, że dojo z łatwością przewyższa zarówno Sencha, jak i JQuery, które są obecnie tak powolne, że są całkowicie bezużyteczne, nawet na silnym sprzęcie.

Więc na razie osobiście pójdę z dojo lub pójdę natywnie.

Łatwo to wypróbować samemu, biorąc jedną z „gablot” z różnych platform i chrome2phone je na własne urządzenie.


1
Jako pierwszy powiedziałeś, że Dojo Mobile przewyższa wszelkie inne frameworki. Wśród wszystkich twórców aplikacji mobilnych, które znam, Dojo jest działaniem gagów w środowisku mobilnym, które poszło nie tak ...
Steffen Müller,

Jeśli mówisz tylko o wydajności, nigdy nie należy używać emulatorów. Różnią się znacznie od działania na sprzęcie.
Mufasa,

1

Wiem, że to starsze pytanie, ale mogę potwierdzić, że mamy również problemy z wydajnością Sencha Touch 2.0 na Androidzie. Zbudowaliśmy dość prosty prototyp z bardzo prostymi układami kart i bez niestandardowych obrazów lub css i wciąż zauważamy duże opóźnienie na każdym testowanym urządzeniu z Androidem. Na początku myśleliśmy, że naruszamy niektóre najlepsze praktyki Sencha, jednak po przejrzeniu kodu i przejrzeniu wszystkich obszarów, w których naszym zdaniem mogą powodować problemy, nadal nie byliśmy w stanie uzyskać odpowiedzi i płynności w pobliżu tego, na co liczyliśmy.

Na marginesie, wydaje się, że ogólnie rzecz biorąc, każda nienatywna metoda (szczególnie oparta na JS / HTML / CSS) do opracowania aplikacji mobilnej zawsze będzie miała co najmniej kilka drobnych problemów z wydajnością. Zastanawiamy się teraz nad wykorzystaniem Titanium, ponieważ oferuje on rozwiązanie oparte na jednym kodzie, którego wydajność jest znacznie bliższa natywnemu (ponieważ technicznie jest natywny).


1
Z ciekawości próbowałeś na urządzeniach z Androidem 4.0? Ponieważ mają dostępne przyspieszenie GPU, może działać lepiej. Jak włączyć: developer.android.com/guide/topics/graphics/hardware-accel.html
Drake Clarris

1
Dzięki za wskazówkę. Nie testowaliśmy na żadnych urządzeniach 4.0. Sądząc po odpowiedzi Deana Wilda, pomyślałem, że problemy z przyspieszeniem GPU były prawdopodobnie głównym winowajcą. Problem polega na tym, że nawet gdybyśmy mogli zwiększyć wydajność na urządzeniach z wersją 4.0, stanowią one tak niewielką część (~ 10%) rynku Androida, że ​​prawdopodobnie nadal znajdziemy rozwiązanie inne niż Sencha.
paz

bez względu na to, co robisz z Sencha, zawsze będzie on powolny ... powodem jest ich głęboko zagnieżdżona struktura domowa, która nie jest odpowiednia dla żadnej przeglądarki, nie mówiąc o przeglądarkach mobilnych.
Nav

0

Właśnie uruchomiliśmy aplikację Sencha Touch i istnieją pewne poważne problemy z wydajnością w Androidzie w porównaniu do iOS. Zachowaj ostrożność, próbując wdrożyć rozbudowane interfejsy.

Coś, co chciałbym wiedzieć 3 miesiące temu: duże projekty z góry są złe w urządzeniach mobilnych. Naprawdę potrzebujesz iteracyjnego podejścia między zespołem projektowym / deweloperskim. Przejścia CSS3 są trudne na Androidzie: unikaj wielu zaokrąglonych rogów, RGBA, gradientów, cieni tekstu. Sprawi to, że Twoja aplikacja będzie miała zajęcie.

Utrzymuj DOM tak mały, jak to możliwe; zniszcz panele, ponieważ nie są już używane.

Widzieliśmy dziwne zachowania draw () na Androidzie, ale może to wynikać z faktu, że wymagamy zbyt wiele procesora. Jedynym sposobem, aby wiedzieć, jest profilowanie całego kodu jak ninya


0

Zapoznaj się z tym artykułem zespołu inżynierów LinkedLN na temat poprawy wydajności aplikacji HTML5 poprzez ręczne kodowanie manipulacji DOM:

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

W kontekście tego artykułu widzę dwa problemy z Sencha Touch:

  1. Sencha Touch buduje interfejs użytkownika, konwertując obiekty JavaScript w Dom Nodes i dodając je do drzewa Dom. Narzędzia Chrome pokażą, że w końcu dodaje do drzewa Dom stosunkowo dużą liczbę DIV i innych elementów DOM. Czy nie miałoby to negatywnego wpływu na wydajność?

  2. Większość węzłów Dom w interfejsie Sencha jest generowana przez kod API Sencha, a nie ze znaczników. Jeśli piszemy kod, aby bezpośrednio manipulować tymi elementami Dom, czy możemy być pewni, że nie spowoduje to żadnych skutków ubocznych?

Dzisiaj opublikowałem to zapytanie na oficjalnym forum Sencha. Zaktualizuje tę odpowiedź wraz z odpowiedzią.


1
Nie widzę, czy opublikowałeś to w 2011/2012, ale obecnie iPad / iPhone nie stanowią problemu na Sencha Touch. Działa absolutnie bezbłędnie. Problemem jest każda obecna wersja Androida 2,4 itd. Translate3d jest tak niepewny, że prawie nie nadaje się do użytku.
Dominic Watson,

0

Robimy aplikację internetową dla systemu iOS / Android, używając frameworku Sencha 2, a wydajność jest po prostu okropna na Androidzie w porównaniu do IOS. Niestety mówię teraz moim klientom, że jeśli chcą aplikacji na Androida, wybierz wersję natywną lub Titanium. Mam nadzieję, że mogą wprowadzić ulepszenia, ale nigdy więcej nie użyję Sencha, jeśli platformą docelową jest Android.

FYI (urządzeniem docelowym była Galaxy S3).


-1

Sencha Touch + Phonegap Sucks na urządzeniach z Androidem. Zwłaszcza jeśli celujesz w wersję 2.2 lub nowszą. Ta kombinacja działa dobrze dla kategorii urządzeń z Androidem G3 / Note. Zapomnij Sencha Touch + Phonegap na Androidzie, jeśli chcesz wydajności i interfejsu użytkownika jak natywny.

Sencha Touch + Phonegap jest dobry tylko do szybkiego zdobywania rynków na tysiącach urządzeń, bez żądzy przyciągania wzroku i niesamowitej wydajności.

JEŻELI twój klient jest bardzo konkretny w kwestii interfejsu użytkownika i wydajności i nalega na rozwiązanie hybrydowe, po prostu daj mu zrzeczenie się odpowiedzialności i podpisany przez niego dokument, że chce aplikacji Sencha Touch + Phonegap.

Spaliłem nie tylko palce, ale całe ciało tą śmiertelną kombinacją na Androidzie.


-1

Demo zlewozmywaka kuchennego z listopada 2013 i Sencha 2 zawiesza się na moim HTC Android 4.0, inne frameworki HTML5 wykazują lepszą reakcję, na przykład XDK firmy Intel, który korzysta z jqMobi.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.