Some thoughts on Sencha Touch 2.0

Wow, I just started playing with Sencha Touch version 2 which you can now download, and which comes with an extjs 4 style API on the sencha website, and I was so impressed I spent a few hours this weekend ditching my entire ICD10 app that was being written in jquery mobile. Why? The one word answer is speed, both in development time, and performance. Unlike version 1 I could hardly tell if I was coding extjs or touch, they seemed to work and act the same, this is a great plus for someone with a 9 – 5 in extjs coding. As far as performance is concerned take a look at the two apps side by side, then try to do a search for a medical term like ‘strep’ and see how they both respond. Now, imagine this difference playing out on a mobile device and not your desktop.

jquery mobile ICD 10 app

Sencha Touch 2 ICD 10 app

In addition, it looks like phonegap was purchased by Adobe, and it is now easier than ever to package and create native app files from your html5 / javascript application code, although the ‘free’ aspect of it has fallen by the wayside, the time saved is well worth the cost.

What’s wrong with writing apps for phones in non-native languages?

The book ReWork devotes a page to the principle of focusing on what won’t change when developing software. So if you you think about that for a second the timeless customer wish list for software can be boiled down to speed, simplicity, ease of use and clarity. If you can deliver that and just that your product will be relevant not only today but years from now. So, what’s the easiest way to stray from the path of speed, simplicity, and clarity. It might just be the next big thing.

Can you remember when Visual Basic was going to end programming as we know it; allowing those proficient in word processing and spreadsheets the ability to program complex applications. How about dumb terminals all connecting to a central server that would revolutionize the workplace desktop; that concept has been repackaged and is now called the cloud. Then there is the obvious misapplication of productivity applications, case in point, Sharepoint was supposed to be the answer to the document sharing problem facing many corporate offices by allowing people to collaborate across great distances and keeping multiple copies of documents all stored on the server. This program performs this task well, but maybe not with the clarity or simplicity of google docs, however, the real problem is that this product is often misapplied as a content management system. In reality, this product makes some really awful public facing websites. This is a clear misapplication.

You see where this is going, just like in life every trade-off comes with unintended consequences, and there are no shortcuts.

Mobile app development with non native languages is no exception to the rule. It comes with quite a few limitations, including, speed, access to all of the native phone features, and reliance on third party software for deployment to app stores. I found this out the hard way as I wrote an app for the iPhone using Sencha that worked great, but would not run on my Android device, so the one code base multiple platforms did not materialize in my case. The setup of Eclipse and the Android SDK was about the same as the setup outlined in the phonegap tutorial on this site. So for the past four weeks I decided to rewrite the Sencha apps into Native android apps using the eclipse and the Android SDK. The resulting pure Java product offers simplicity, clarity, and the learning curve is smaller than figuring out all of the moving pieces required to compile JavaScript apps to native phone apps.

App Store? Need not apply – Javascript as a cross platform iPhone, Android, and Blackberry development tool.

Solitaire written with Sench Touch (Javascript) on Safari 5

Recently Extjs changed it’s name to Sencha and rolled out a new product, Sencha Touch, which essentially takes the Extjs components that may be used to build mobile applications. So what! you may be saying to yourself, the mobile app market is expected to surpass 25 Billion dollars in revenue in 2008, so clearly there are mobile applications, and development tools, right? So what makes this different? What makes this a game changer? Well, first, Steve Jobs of Apple penned a telling article that can be found at http://www.apple.com/hotnews/thoughts-on-flash/ which basically states that the mobile devices produced by apple will support HTML 5 and the latest open web standards, opposed to flash or other ‘closed’ systems.

In his own words, “Rather than use Flash, Apple has adopted HTML5, CSS and JavaScript – all open standards. Apple’s mobile devices all ship with high performance, low power implementations of these open standards. HTML5, the new web standard that has been adopted by Apple, Google and many others, lets web developers create advanced graphics, typography, animations and transitions without relying on third party browser plug-ins (like Flash). HTML5 is completely open and controlled by a standards committee, of which Apple is a member.”

This paves the way for HTML5 / CSS3 / JS applications to become the truly cross platform standard for Apple and Android phones, which I am betting will replace many of the alternatives on the market now. It also provides developers a way to write apps that do not need to be vetted by the apple store, and to distribute apps over the web creating revenue that needs not be shared with the device maker.

Sencha allows you write Javascript applications that behave like native mobile applications. Try playing this solitare game (http://touchsolitaire.mobi/app/)  on your iPhone, or browse to it using Safari (http://www.apple.com/safari/whats-new.html) and you will get a true appreciation of what is possible with the new browsers. In fact, I believe that this may show the power of  HTML 5 and CSS3 better than many of the ‘HTML 5’ sites that have popped up on the net recently.