User:Sganta/Sencha Touch (mobile app framework)

Sencha Touch is a JavaScript UI Framework specifically built for Mobile Web. It can be used by Web developers to develop user interface for mobile web applications that look and feel like  native applications on supported  mobile devices. It is completely based on Web standards like HTML5, CSS3 and javascript.

Version History and Support
Sencha Touch is a product of Sencha which was formed after popular javascript library projects Ext JS, jQTouch and Raphaël were combined .The first release of Sencha Touch was version 0.90 beta  on july 17 2010 .This beta release supported iOS devices like iphone, ipod touch,ipad and Android Devices. Subsequently the first stable version 1.0 was released on November 2010. The latest stable version 1.1.0 adds support to BlackBerry devices running OS version 6. Sencha Touch is primarily based on Webkit, so it can support only webkit-based browsers like chrome and safari. .

GUI controls
Sencha Touch includes a set of GUI-based GUI widgets or "Components" for use within mobile web applications. These components are highly optimized for touch input .List of components :

All the components can be themed according to the target device .This is done using SASS ,a stylesheet language built over CSS.
 * Buttons with device specific themes and effects.
 * Form elements like text fields for email,address,etc.,sliders,selectors and comboboxes.
 * List component which has momentum scrolling along with index.
 * Minimalistic Icon set.
 * Toolbars/Menus.
 * Movable Tabs.
 * Bottom Toolbars.
 * Map component with support to multi-touch input like pinch and zoom.

CSS Transitions(Animations)
Sencha Touch has certain in-built transition effects.


 * Slide over or under current element.
 * Pop
 * Flips
 * Cube

Touch Events
It support common touch gestures basically built from Touch events which are webstandard but are supported only by iOS, Android OS and some touch enabled devices.
 * Tap
 * Double Tap
 * Swipe
 * Scroll
 * pinch

Application Data support
Sencha Touch being JavaScript Framework consists  of both UI libraries and also Data libraries. With the use of Data libraries the mobile web application can get data from server. Sencha Touch has a data package to support web standards for data interchange with server like AJAX and JSONP. It also supports YQL. Using these technologies, data can be bound to visual components like Lists to reflect data from server.

Offline Applications
Mobile Web Applications require connection to the network to serve data to the user. However user would like to use the application even when its not connected and synchronize with server when connected. The ability of a web application to work offline is a big feature of HTML5. HTML5 uses CACHE MANIFEST to list the resources to fetch while connected to server and maintain while to be used while offline. Sencha Touch leverages this feature and adds to it to make good offline apps. Using the Framework it is possible to dynamically change the list of resources like scripts ,stylesheets etc., that we want to cache based on the state of application and user demand. It is possible to store data offline by binding the data to components using JSONP when its online so the data is present even when the device gets disconnected.

Comparision to Native apps
Native applications on mobile devices have access to all the device components like Camera phone,GPS navigation device,etc., .This enables them to leverage the full potential of the mobile device when compared to a web application. Sencha Touch does not provide any way of accessing the device components. However it can be used along with PhoneGap to create applications native to a mobile device. The capability of such applications is restricted by the capability of PhoneGap.