Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I'm just about to start a project using Sencha Touch, and just done some minor testing on my HTC desire device. All tutorial videos at Vimeo seems to be using an iPhone emulator running on a Mac. Im not sure how fast this emulator is compared to a real iPhone device or even an real Android device, but from what i have experienced, it seems that my HTC desire is not performing that nicly as this emulator.

All animations (sliding, fading, etc) seems abit laggy. You can easily notice that the FPS is much less than on the Vimeo videos.

HTC desire is a relativly new and modern Android 2.2 phone, running with decent hardware, so im wondering if Sencha Touch is "ready" for the Android platform.

Anybody with practical experience with Android and Sencha Touch ?

share|improve this question
add comment

closed as primarily opinion-based by GlenH7, MichaelT, World Engineer Nov 13 '13 at 22:47

Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise.If this question can be reworded to fit the rules in the help center, please edit the question.

9 Answers

From sencha.com:

Sencha Touch, the first HTML5 mobile JavaScript framework that allows you to develop mobile web apps that look and feel native on iPhone and Android

I think the reason it is so slow, is that the application is written using HTML5/javascript. Which, when you first think about it is pretty great, since it makes it easier to move across platforms. The downside is they they "look and feel" like native apps, but actually aren't. So, instead of native code executing quickly on your device, you have what is likely a wrapper for a browser, in which all code is just markup/js, which is slower. Think about using the cnn app vs going to cnn.com in the iphone web browser, it's essentially the same type of difference. This is likely what you're seeing, as a fast mac and an emulator could push a whole lot harder than a device (unless the emulator is throttled down to be as slow as the native device, which it might be...someone double check me). This problem will likely decrease as devices get faster, but it seems like it's just the nature of the technology and the tradeoff of being able to develop cross-platform using web technologies.

share|improve this answer
add comment

I'm working on several Sencha Touch Apps for Android using Phonegap and the results are dissapointing. The UI experience on iOS devices is vastly superior to Android.

On iOS devices, everything is smooth (carousels, sliders everything), but on Android, it's all a bit laggy and unresponsive.

Update I have done a bit more research and it seems that the iOS devices make use of GPU hardware acceleration to do the CSS transitions. On the Android devices this is all done by the CPU in addition to everything else it is already doing, thus we have a laggy look and feel to the UI. Sigh..... I guess it is much harder to implement hardware acceleration when the hardware varies so much.

Interestingly, I also read that even native Android apps (even the built in menu screens) do not use hardware acceleration. Only apps utilizing OpenGL will actually make use of the GPU.

share|improve this answer
    
I felt similar when testing Sencha Touch on my HTC Desire Z, but also felt that things felt more iPhone-ish than Android-ish. Another thing was that - while the percentage of people this applies to could be low - Sencha Touch no longer "works" for me on Android since I use Firefox Mobile, while Sencha Touch is Webkit-only. –  zenzelezz Jun 28 '11 at 17:58
1  
It's been 2 years and Sencha touch is still dissapointing. –  Kugel Sep 24 '13 at 23:19
add comment

We just launched a sencha touch app and there's some significant performance issues in Android compared to iOS. Take caution when trying to implement design-heavy interfaces.

Something i wish i knew 3 months ago: big upfront designs is bad in mobile. You really need an iterative approach between the design / dev team. CSS3 transitions are tough on Android: avoid lots of rounded corners, RGBA, gradients, text shadows. It will make your app have a seizure.

Keep the DOM as small as possible; destroy the panels as they are no longer used.

We've seen some strange draw() behaviors on Android, but that may simply come from the fact we're asking too much of the CPU. Only way to know is to profile all the code like a ninya

share|improve this answer
add comment

I have done a smallish benchmark of Sencha, JQuery mobile and dojox.mobile on Android emulator and phone using phonegap for a real-life app. The bottomline is, that dojo easily outperforms both Sencha and JQuery which is both currently so sluggish as to be completely useless even on potent hardware.

So for now I'll personally go with dojo or go native.

Easy to try it out for yourself by taking either of the 'showcases' from the various frameworks and chrome2phone them to your own device.

share|improve this answer
1  
You're the first to say that Dojo Mobile outperforms any of the other frameworks. Among all mobile app developers I know, Dojo is the running gag of a mobile framework gone wrong... –  Steffen Müller Oct 15 '11 at 15:04
    
If you're talking only about performance, emulators should never be used. They're vastly different then running on the hardware. –  Mufasa Mar 22 '12 at 4:00
add comment

I know this is an older question, however, I can confirm that we are also having performance issues running Sencha Touch 2.0 on Android. We've built a quite simple prototype with very simple card layouts and no custom images or css at all and still noticed a big amount of lag on every Android device we tested. At first, we thought we were violating some Sencha best practices, however after looking through the code and revising every area where we thought could be causing issues, we still could not get the responsiveness and smoothness anywhere near what we had hoped for.

On more of a side note, it seems that in general any non native method (esp JS/HTML/CSS based) for developing a mobile app will always have at least some small issues with performance. We are now considering using Titanium since it offers a single code base solution with performance much closer to native (since it technically is native).

share|improve this answer
1  
Out of curiosity, have you tried on Android 4.0 devices? Since they have GPU acceleration available, it might work better. How to enable: developer.android.com/guide/topics/graphics/hardware-accel.html –  Drake Clarris Jul 31 '12 at 15:21
1  
Thanks for the tip. We haven't tested on any 4.0 devices. Judging from Dean Wild's answer, I figured GPU acceleration issues was probably the main culprit. The issue now is that even if we could get the performance up on 4.0 devices, they constitute such a small portion (~10%) of the android market that we will still probably end up going with a solution apart from Sencha. –  Edgar Jul 31 '12 at 18:11
add comment

Please refer to this article by LinkedLN Engineering team on how they improved the performance of their HTML5 app by hand coding DOM Manipulations:

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

In the context of this article I see two issues with Sencha Touch:

  1. Sencha Touch builds its UI by converting Javascript objects into Dom Nodes and adding them into the Dom Tree. Chrome Tools will show that it ends up adding a relatively high number of DIVs and other DOM elements to the Dom tree. Wouldn't this have a detrimental effect on the performance.

  2. Most of the Dom nodes in the Sencha UI are generated by Sencha API code and not from markup. If we write code to directly manipulate these Dom elements, can we be sure that it will not produce any side effects ?

I have posted this query on the official Sencha Forum today. Will update this answer with the response.

share|improve this answer
1  
Can't see if you posted this in 2011/2012 but currently iPad/iPhone just aren't a problem on Sencha Touch. It runs absolutely flawless. The problem is any current version of Android 2,4 etc. translate3d is so choppy it's almost unusable. –  Dominic Watson Dec 6 '12 at 12:53
add comment

We are doing a web app for iOS/Android using the Sencha 2 framework and the performance is just horrible on Android compared to IOS. Unfortunately, I am now telling my clients that if they want an app on Android, either go native or Titanium. Hopefully they can make improvements, but I will never use Sencha again if the target platform is Android.

FYI ( target device was Galaxy S3) .

share|improve this answer
add comment

Sencha Touch + Phonegap Sucks on Android devices. Specially if you are targeting 2.2 onwards . This combination works ok for G3/ Note category of android devices . Forget Sencha Touch + Phonegap on Android if you want performance and UI like native.

Sencha Touch + Phonegap is only good for quickly hitting markets on thousands of devices without wishing eye poping & amazing performance.

IF your client is very specific about UI and Performance and insisting on Hybrid solution , just give him disclaimer and the paper signed by him that he wants Sencha Touch + Phonegap app.

I have burnt not only my fingers but whole body with this deadly combo on Android.

share|improve this answer
add comment

Its Nov 2013 and Sencha 2 kitchen sink demo hangs on my HTC Android 4.0, other html5 frameworks show better response such as intel's XDK which uses jqMobi.

share|improve this answer
add comment

protected by GlenH7 Nov 13 '13 at 19:51

Thank you for your interest in this question. Because it has attracted low-quality answers, posting an answer now requires 10 reputation on this site.

Would you like to answer one of these unanswered questions instead?