A Chatty App provides a unique user experience and is optimized for simultaneous use on different smartphones, mobile devices and full-screen devices. These qualities are a result of the unique structure of a Chatty App. This structure is illustrated in the attached diagram and is described below. By reading this you will understand how a Chatty App achieves its unique qualities.

Each Chatty App consists if the following which are common to all the devices for which the Chatty App is designed for:

ChatData: This is the internal data model of the application. It is based on XML and is defined in the Chat Editor

ChatRules: These are rules that are defined graphically using the Rules Editor. The rules are used to control the internal flow and logic of the application and the logic of scripts. Since they are based on ChatData, the rules are context-sensitive.

ChatActions: There are two types of Actions that are defined in the Actions Editor. Web Service Actions allow the Chatty App to interact with third-party Web Services so that the app can use the service provided by the latter. Script Actions allow the developer to write complex, rule-based scripts to implement some logical function or action. Once defined, Actions become reusable components and can be invoked from the user interface or from any point in the flow of the Chatty App

In order to support multiple smartphones, the designer defines a Device Group for each device or group of devices with similar sizes and characteristics. So if the designer wants to support iPhone, Google Nexus and full-screen devices, he will create three Device Groups, one for each type of devices. One of the device groups is declared to be the default device group which is used in case a user accesses the Chatty App from a device for which there is no device group declared.

For each Device Group the designer defines one ChatFlow which is a flow chart that dictates the logic of the Chatty App. Since the ChatFlows are unique to each device or group of devices, the logic of the application could be different for each device. The ChatFlow can use the rules to change the flow of the application. Furthermore actions can be executed at any step in the ChatFlow based on rules.

For each step in the ChatFlow there is a ChatBite which is an electronic form. Since the ChatFlow is unique to a device or a group of similar devices, the ChatBites are also unique and can fit the size and characteristics of the device. Thus for the iPhone there can be one set of ChatBites and for the full-screen device there could be a totally different set which fits. This ensures that the user interface of each device is optimized for the device and is not a force-fit. Another big advantage of having a unique set of ChatBites for each type of device is that the code for each can be different. This is important because even now there are subtle differences in the way scripts are executed in different devices. Actions can also be triggered based on events in the ChatBite.

To appreciate how this unique structure of a Chatty App allows the app to run in different devices, please read the Chatty App End User Experience.