A Sencha Touch app with an iOS6 theme
2.4.2 / June 15, 2015
|Operating system||Android, iOS, BlackBerry, Kindle, Windows Phone, Tizen|
|License||GPLv3 or commercial|
Subsequently, the first stable version, 1.0, was released in November 2010. Version 1.1.0 added support for devices running BlackBerry OS 6.0.
The latest release, Sencha Touch 2.4.2, was released in June 2015 and is designed to run on the following browsers and platforms:
There are no announced plans to support Firefox Mobile.
Sencha Touch follows the MVC pattern which separates the application data, the control code and view. This separation allows large scale applications to be flexible and easy to maintain.
Sencha Touch has an inbuilt DOM manipulation interface which negates the dependency on other UI frameworks like jQuery. It includes a set of graphical user interface GUI-based controls (or components) for use within mobile web applications. These components are optimized for touch input. The components are:
All the components can be themed according to the target device. This is done using Sass, a stylesheet language built over CSS. Some of the native-lookalike themes are Cupertino Classic (for iOS6.x and below), Cupertino (for iOS 7) and Mountain View (for Android).
Sencha Touch has eight in-built transition effects including slide over or under the current element, pop, flip, and cube. It supports common touch gestures built from touch events, which are Web standards but supported only by Android, iOS, and some touch enabled devices. These are tap, double tap, swipe, scroll, and pinch.
Since Sencha touch is HTML5 based, the layouts it offers are extremely adaptive in nature.
Sencha Touch also supports charting components including pie charts, bar graphs, line series, etc. with explanatory legends. These components support interactivity like pinch and zoom. Just like the Grid components in ExtJS, Sencha Touch offers TouchGrid functionality.
Profiling in Sencha Touch allows you to create different profiles catering to different screen sizes. When the application is loaded, the framework determines the type of device, and its corresponding profile determines which components and functionality need to be swapped out, and the specific views and controllers that need to be invoked, saving the developer the task of creating a different application for each type of device.
|app||The main directory that holds the app's models, views, controllers, stores and profiles|
|app.js||File that holds the application's overall settings. References to all models, views, controllers, stores and profiles can be found here. Once these references are loaded, the main app launch function is called. This function loads the first view and hence can be considered as the first point of the application|
|index.html||Main HTML file for the app. It may span many pages/screens for the mobile app|
|resources||Directory that holds all the images, CSS and any other external file that the app needs|
|app.json||App's configuration file|
|packager.json||File used to create native packages|
|ext-touch.css||This is Sencha's CSS library|
Sencha Touch provides IDE plugins for ease of development. Benefits of these plugins include code generation and auto-completion, code refactoring and ease of navigation to framework codebase and custom classes. Sencha Touch has plugins for popular IDEs like JetBrains, Visual Studio and Eclipse.
Ext.setup is the starting point to initialise the application, setting up the viewport and the event system.