In the SmartClient Platform (which comprises both SmartClient & Smart GWT), all presentation duties, and all HTML generation, takes place in the browser. No HTML generation or presentation duties are handled by the server. Once a SmartClient application has loaded, only data is transmitted between the browser and server.
By minimizing server contact, this architecture boosts responsiveness and scalability far beyond what is possible with server-side architectures such as JSF, ZK or Vaadin. By minimizing the amount of server-side code, the architecture also improves stability and reliability (only server code can crash the application for all users).
The SmartClient Platform delivers a set of extensible UI components which manage presentation automatically, and provide uniform appearance and behavior on all supported browsers.
Using standard object-oriented approaches, you can extend, customize and create new components without ever learning low-level AJAX techniques or doing cross-browser testing and debugging.
The Isomorphic SmartClient Platform focuses on business applications as opposed to simple web sites. Where many AJAX toolkits handle principally the display of data, SmartClient focuses on the full data lifecycle: display, edit, save, repeat.
The Platform's core strengths include efficient navigation and editing of large, complex data models, and the productivity features needed by business users.
Our grid component is far and away the most sophisticated available, with out-of-the-box support for inline editing, frozen columns, multi-field sort, grouping-by-value, expandable rows, auto-fitting to data, inline filtering, formula columns, user-defined highlighting rules, export and charting, as well as deep customization APIs in every area of appearance and behavior.
Applications built with the SmartClient Platform provide support for mobile and touch devices without additional effort, and also allow you to tune your application to best support specific devices.
Because finger taps and gestures arrive as normal mouse events, normal event handling code just works on touch devices - users can even trigger context menus and hovers via touch-and-hold, and drag and drop via finger slides. Device-aware components automatically switch appearance and behavior to mimic typical mobile UIs.
For deeper control, gesture & orientation change events, as well as native functions like phone dialing are all there to let you fully tune the mobile experience.
The SmartClient Platform's components can be easily embedded in existing applications. Grids, forms, trees, dialogs, wizards and other SmartClient components can be added without making architectural changes.
When embedded in this fashion, our components are fully functional, still capable of drag and drop, dynamic databinding, data paging and adaptive client-side operations.
The SmartClient Platform enables you to automatically generate a default UI from your server side data model, then customize any part of it without losing auto-generation.
All of the Platform's data-aware components, including grids, forms, detail & tiled views, can be generated directly from standard metadata sources such as Java Beans, SQL Schema or XML Schema.
Without this capability, you need to hand-code every component, and every screen of your application duplicates the information you already have in your server data model, leading to highly redundant, brittle applications.
The SmartClient Plaform integrates with any server platform through standards-based approaches such as REST and WSDL web services.
Our Platform also includes a Java integration server for accelerated integration with Java servers, with special support for popular Java frameworks such as JPA, Hibernate and other Java Beans persistence frameworks, Spring, and JDBC.
The SmartClient Platform supports offline and intermittently connected applications, with built-in support for automatic caching of recently accessed data.
Web applications built with the SmartClient Platform can also be delivered as installable desktop applications with elevated priveleges such as local file access via "packaging" technologies like Adobe AIR, Mozilla Prism, and Titanium Desktop.
Going beyond just widgets, our platform provides a model/view/controller architecture within the browser. The SmartClient MVC architecture provides a standardized model for server contact that simplifies AJAX applications and allows developers to quickly learn each other's code. This avoids the "code soup" typical of projects that adopt widgets-only AJAX frameworks, where loading and saving of data is done differently on every screen.
AJAX MVC also provides tremendous performance and scalability benefits. All loading and saving of data is performed by intelligent data manager components, which: