Book Review: Sencha Touch Mobile JavaScript Framework

Disclosure: I am not being paid for this review, but Packt Publishing did offer me the book for free in exchange for my review. I also work for Sencha Inc. I intend for this review to remain impartial, but be be your own judge.

The Sencha frameworks have a long history of being difficult to learn, and as the first real mobile JavaScript framework Sencha Touch (1.x) was no different.

For many web developers, JavaScript seems like a magical language that simply modifies an existing page built with HTML and CSS. Sencha Touch (much like ExtJS) approaches web development from an entirely different angle – developers create an application by almost exclusively writing JavaScript, and the framework handles most of the HTML and CSS for you.

Sencha Touch Mobile JavaScript Framework is a wonderful starting point for web developers looking to make the jump into highly interactive mobile web applications.

What I Liked

I definitely liked that the book was aimed at beginners. Sencha’s products have a steep learning curve (despite our best efforts to offer guides and support), so books like this go a long way in helping our community!

I also liked how the authors introduced topics like SASS/Compass, Sencha.io Src, and other bits. The explanations were concise, and the examples were just enough to capture the imagination of the reader.

The authors also peppered the book with good advice. One example was event delegation (which helps save memory and improve performance).

Finally, I loved that the authors built a full-feature app in Chapter 8. It’s the kind of example that should really help people apply the knowledge learned throughout the rest of the book!

What I Didn’t Like

My first criticism is that the book discusses Sencha Touch 1.x – only because ST 2.x was released very recently. This fact immediately lowers the value of the book, as there are major differences between versions.

Although I liked that the book was aimed at beginners, I didn’t like that the authors spent time explaining how to download and use an FTP client (in chapter 2). That’s just wasting paper in my opinion… beginner or not, it’s not appropriate for a technical book as some level of knowledge has to be expected.

I also EMPHATICALLY disagree with the authors’ tip in Chapter 4 to use an “id” config on all components (so you can use Ext.getCmp(). DO NOT DO THIS. Stop telling people to do this. It is a really, really bad idea and causes a million run-time bugs when developers are not careful. The Ext.ComponentQuery class and its methods are a much better solution.

And unless I missed it, the authors failed to mention that Sencha Touch Charts are not free for commercial use. Although the cost isn’t all that expensive, that’s a big deal to a lot of developers.

Final Thoughts

I hope the authors take the time to update the book (soon) for Sencha Touch 2.x because it’s a great starting point for the framework. While more advanced developers familiar with Sencha Touch won’t get much out of it, I definitely think it’s a book worth recommending.

Please share this post!

About 

Arthur Kay is a long-time nerd and JavaScript enthusiast. He lives in the Chicago suburbs and is active in the local web development community.

Arthur currently works for Sencha, Inc. as Senior Software Engineer. The thoughts, ideas, and opinions expressed on this website are Arthur's alone and do not represent his employer.

2 comments for “Book Review: Sencha Touch Mobile JavaScript Framework

  1. April 17, 2012 at 4:57 am

    Hi,

    About the use of the id. Coming from a .NET background I find it weird and confusing to define your class and your instance(it’s what you are doing when adding an id to the config). I did it anyway, because I am lazy and the use of Ext.getCmp() was so convenient. But at the end of the day, I ran into multiple and frustrating run time issues because of this poor design. Can you develop a bit more on that and tell us more about the Ext.ComponentQuery method ?

    • Arthur Kay
      April 18, 2012 at 11:52 am

      Boris, there an over-abundance of information on this topic on the Sencha forums. Hard-coding a component’s “id” itself is problematic from the DOM’s point-of-view. Relying on Ext.getCmp further complicates matters because modern JavaScript applications have a fluid DOM… Components are rendered and destroyed constantly, so relying on static DOM ids is a terrible idea.

Leave a Reply

Your email address will not be published. Required fields are marked *