The Sencha Platform Offers MADP with Life Cycle Coverage

Development Tools / Utilities
  • Smaller Small Medium Big Bigger
  • Default Helvetica Segoe Georgia Times


The Eclipse-compatible Sencha Platform helps developers build web and mobile apps using Java and JavaScript frameworks that employ HTML5.

If your programming expertise is in Java or JavaScript frameworks that use HTML5, a natural fit for a web or mobile application development platform (MADP) at your enterprise may be the Sencha Web Application Lifecycle Management Platform, which lets users build, test, and deploy web applications for desktops, smartphones, and tablets.

Hitting the Suite Spot

The Sencha Platform consists of two frameworks: Ext JS and GXT; tools including Architect, Themer, Cmd, IDE Plugins, and Inspector; and Sencha Test. The various products can be purchased separately or together as part of varying package offers. The platform supports all major browsers, including Chrome, Firefox, IE, Opera, and Safari. Supported OSes include Linux 32 and 64-bit, Mac OS X, and Windows.

Ext JS is an extensive library of pre-tested and integrated JavaScript user interface (UI) components that leverages HTML5 features on modern browsers to help developers build data-intensive, cross-platform web apps with a Model-View-Controller (MVC) or Model-View-Viewmodel (MVVM) architecture. Premium components include an HTML5 calendar, the Sencha Pivot Grid, a Data-Driven Documents (D3) adapter, and Exporter, as well as standard components such as grids, trees, lists, forms, menus, toolbars, panels, charts, and windows. The tools help developers with application design, development, theming, debugging, build optimization, and application deployment. In addition, there are hundreds of user extensions available from Sencha's user community.

The Calendar component facilitates management of schedules and events within finished apps, or addition of a calendar function to an app without building one from scratch. The Sencha Pivot Grid lets users gather, summarize, and analyze multidimensional data. A regular grid function enables manipulation of millions of database records as well as offering services such as sorting, grouping, column locking, and summary rows. In addition, a Data Exporter plugin lets users export data from either the Pivot Grid or regular grids to standard XLSX, XML, CSV, TSV, and HTML formats, as well as designate data to be either visible or hidden.

The D3 Adapter lets developers add D3 visualizations such as heatmaps (data represented as colors), treemaps (data represented as nested rectangles), and sunbursts (data represented in multi-level pie charts). The Ext JS Charting feature enables representations of data in a wide range of chart types that automatically adjust to any browser. Other Ext JS features include components available in out-of-the-box themes (e.g., Material, Classic, Crisp, Material, Neptune, Triton) and an Accessible Rich Internet Applications (ARIA) capability that helps create apps accessible by people needing assistive technologies to operate mobile devices. Finally, an Ext JS Stencils feature streamlines mocking up, styling, prototyping, and evaluating interface designs.

An optional adjunct is Sencha Inspector, a debugging tool for apps built using Sencha frameworks. It lets developers analyze app code for issues, as well as remotely debug Sencha apps already running on mobile devices.

A Drag-and-Drop App Developer

Sencha Architect offers several keystroke-avoidance mechanisms, such as a Visual Application Builder that lets developers drag and drop app components, automatic code generation, and the ability to alter properties and configurations of any Ext JS UI component in a WYSIWYG window. Architect also accommodates addition of custom components and framework extensions and enables importation of themes from the Themer tool. Themer lets developers create custom themes, customize out-of-the-box themes, and apply various color combinations of different component states, all without writing any Syntactically Awesome Stylesheets (SASS) code.

Sencha GXT is a Java framework for building web apps on desktops and tablets via the Google Web Toolkit (GWT) compiler. This lets programmers write apps in Java and compile them as HTML5 code. GXT also includes customizable components similar to those available with Ext JS. The GXT framework encapsulates support for remote procedure calls, RequestFactory, and JavaScript Object Notation (JSON), enabling finished apps to take data input from any source. A layout manager helps designers manage data displays across multiple browsers, devices, and screen sizes, as well as make app components conform to landscape or portrait device orientation and available browser window size. GXT also includes an advanced charting package that uses surface representations of objects and sprites (two-dimensional bitmaps) developed with a drawing package supplemented with Canvas, Scalable Vector Graphics (SVG), and Vector Markup Language (VML).

Lifecycle Management for Mobile Apps

Sencha Cmd branches out into the application lifecycle management (ALM) aspect of web and mobile software. Not only is it a productivity and performance optimization tool, it offers ALM automation tools such as scaffolding (a technique that enables construction of a basic application that can create, retrieve, update, and delete objects), code minification (removing all unneeded characters from JavaScript or other source code), and production build generation, among others. The scaffolding capability can build entire apps with new MVC or Model-View-ViewModel (MVVM) components, as well as lets developers put code-generation hooks that are either specific to a web page or shared across multiple pages in a workspace. Cmd embodies a lightweight web server that can serve files from a local host and a logging feature that aids in troubleshooting. Cmd also furnishes a set of command line syntax and integrates with Apache Ant. Finally, Cmd includes a JavaScript compiler that understands and reduces Sencha frameworks semantics to reduce the loading time of apps, and it manages the dependencies and packages them for developers.

Integrated development environment (IDE) plugins for Sencha improve productivity via web application tool plugins such as Eclipse (Mars and Luna versions), JetBrains (IntelliJ, PhpStorm, PyCharm, RubyMine, and WebStorm), and Microsoft Visual Studio. Designers can develop and debug web apps a single time for use on multiple platforms and devices, as well as tie Sencha tools in with their favorite third-party IDEs. These tools help developers use code completion, generate code snippets, and refactor code, as well as navigate through the Sencha framework codebase and personal custom classes as overrides.

End-to-End Functional Testing for Mobile Apps

No application-building platform would be complete without a means of testing developed apps, and Sencha Test fills that niche. This platform component helps developers and QA testers create unit and end-to-end functional tests rapidly and execute them simultaneously on multiple browsers. Sencha Test's functions include Sencha Test Studio, Test Runner, Sencha Test CLI, and Test Archiver.

Sencha Test Studio is a GUI that lets users write tests in JavaScript (Jasmine) or a preferred IDE, store them anywhere, and execute them immediately. This facilitates testing code as it is built. Test Studio also includes an event recorder that automatically captures events rather than forcing traces through code interactions, select or find stable properties for specific components, and reuse code generated by the event recorder to minimize test-creation time.

Test Runner is a feature that lets users run selected tests on all browsers from a local machine, a connected mobile device, or on a browser farm. In addition, test personnel can schedule automated test runs overnight, or at any convenient time, with minimal configuration.

Sencha Test Command Line Interface (CLI) lets testers launch automated test runs from the command line once individual tests are checked into the source-control repository. The system can sense changes to app code or test files in the repository and respond appropriately.

The Test Archiver feature enables tracking of historical testing trends, and provides visual analysis tools to help identify problems such as incorrect screen rendering.

Test results from both manual and automated test runs are presented in summary-level reports and detailed reports of failed tests. A visual screen comparison feature lets testers compare images from multiple test runs and minimize time comparing screen images manually. Developers can identify and fix code problems via integration with Istanbul, a JavaScript code tool that tracks statements, branch, and function coverage.

IBM i users can modernize their existing web applications using Ext JS and CNX Valence. The latter includes a set of IBM i-based tools that interface Ext JS with RPG code to produce cross-platform web apps with good performance and an enhanced user experience.

Upcoming Enhancements

The latest upgrades to the Sencha platform, announced in early November, include plans to enhance the Ext JS framework to include new features of JavaScript ES2015, a Sencha Visual Studio Code Plugin that will let developers write Ext JS apps using Microsoft's new code editor, and a Sencha Electron package that facilitates building of desktop apps in Ext JS by using the open-source application packager Electron. In addition, Sencha Test now integrates WebDriver to further enhance test creation and automation for web apps. Finally, Sencha plans to open-source Fashion, a Java-based theme compiler.

According to Sencha, in addition to supporting enterprises with multiple apps for which mobile access is needed, the Sencha platform is also well-suited for small companies with a single application, provided the application is expected to be used for more than six months.