After using Sencha Touch for some smaller projects, I’ve come to realize it’s garbage.

The main problem is it’s performance is very lackluster. While I only tried it on iOS (which is said to be faster than Android), there is noticeable lag when interacting with the app. Even if you apply many tricks, you just can’t get instant transitions between screens, hitting the back button it always takes a second before the transition starts. The recommended solution? Disable animations. Yes that’s it, your Sencha app will have no animations, but at least it’ll run on Android too! If you look through the Sencha app gallery you’ll see that that is the solution most have chosen.

Secondly, the documentation is awful. Looking up things, documentation often states properties as having values like ‘object’, so what kind of object? Descriptions never include examples. Often you’ll google for a solution and find out that setting some value to -1 will magically solve the problem you’re having.

Thirdly, it’s poorly thought out. Many of the edge-cases require incredibly hacky solutions. Like displaying a button when there are no search results instead of just a string. Or putting components inside table view cell (which is supported, but it’s convoluted). I feel like Sencha would benefit immensely if a major actor invested in it and actually sorted all these things out (if it’s not beyond saving). With such small-scale efforts that are done now it will never be good enough to replace the frameworks that Apple, Microsoft & Google supports.

And finally, subtle bugs. During the use I’ve spent approximately a fourth of development time trying to figure out why something displays funny, why the app crashes on certain devices and why I can’t update a table in a certain way. And the fact that many issues needs to be debugged on device with alerts essentially (although the Safari remote debugger eased this somewhat) makes it even more of a pain.

Overall, stay away from Sencha for anything except the most trivial of apps, like travel guides locked to a specific city or a museum tour app.