# Supporting Elderly People by Ad Hoc Generated Mobile Applications Based on Vocal Interaction
## 3 The MicroApp Generator  
The MicroApp Generator [1] enables a user to create mobile applications exploiting a service composition approach. This means that its elements are icons representing services. The iconic symbols are depicted by rounded rectangles, as shown in Figure 1. Each service icon on its top depicts an image representing the category of object handled by the service (e.g., a numeric datum) or the action performed (e.g., a camera for indicating the action of taking a picture). The MicroApp Generator is composed by a visual editor, which takes care of the definition and the modeling activities, and the MicroApp Engine, which is responsible for the execution activity, including the automatic generation of the Graphical User Interface (GUI) and the management of data exchange among services. Services can be of the following types: _(i) device services_, such as _Phone.Call, Camera.Take_, and _SMS.Send_; _(ii) web services_, such as weather, book-plane, cypher-text; _(iii) home automation services_, such as starting the air-conditioner or opening the door. They are listed in the service catalog [18], the interface for the selection of the services to be composed. Figure 1 shows some examples of services offered by MicroApp Generator. \begin{table}
\begin{tabular}{c c c c c c} \hline \hline
**Tool** & **Components** & **Language** & **Target Users** & **Target Device** & **Vocal Interaction** \\ \hline App Inventor & SC, NC & Vis & EU & Sm & TTS, STT \\ Microsoft TouchDevelop & SC, NC & TBT & D & Sm & TTS, STT \\ IFTTT & SC, SDC, NC & Vis & EU & Sm & TTS \\ Atooma & SC, NC & TB & EU & Sm & TTS \\ Vocal User Interface & - & - & EU & Pc & Sc \\ MicroApp Generator & SC, SDC, NC & Vis & EU & Sm & TTS, STT, Sc \\ \hline \hline \end{tabular} Legenda: [-] _Components: Service Components_ (SC), _Sensor and Domotics Components_ (SDC), _Native Components_ (NC); [-] _Language: Visual_ (Vis), _Template-Based_ (TB), _Template-Based_ and _Textual_ (TBT); [-] _Target Users: End-User_ (EU), _Developer_ (D); [-] _Target Device: Smartphone_ (Sm), _Personal Computer_ (PC); [-] _Vocal Interaction: Text-To-Speech_ (TTS), _Speech-To-Speech_ (STT), _Screen_ (Sc).  
\end{table} 
Table 1: Technological features of related works and tools. Figure 1: Some MicroApp service examples. Input/output parameters are represented by colored circled dots on the top and on the bottom of the icon, respectively [19]. Colors represent the type of the parameter, e.g., pink corresponds to images, cyan to contacts, yellow to email objects composed of receiver, subject, attachments, and body. As an example, the leftmost service is the service _Camera.Preview_ (see Figure 1a), which takes as input an image, displays it on the device screen, and provides it as output. Input parameters can be static, represented by triangles, or dynamic, represented by circles. The former are assigned at design time, while the latter at execution time. In Figure 1b, _Mail.Send_ receives as input a contact (represented by a cyan bullet) and two text strings (represented by two red bullets) for the subject and the body parameters of the email, respectively. The attached objects (represented by a black circled bullet) can be of any number and type and can be provided by different services. _Mail.Send_ sends the email and provides it as output for possible printing, storing, etc. If multiple contacts are provided as input (implicit loop), the email is sent to each contact. An example of a static parameter is shown in the _Contacts_ service of Figure 1c. Once this static parameter has been defined, the system requires the user to select a contact from the contact list at design time. The user can also select more contacts, with the effect of producing a list of contacts that will be all managed automatically. For example, if this list is input to an email service, the same email will be sent to all the contacts in the list. Figure 1d shows the _Camera.Take_ service, which has no input parameters. At execution time, the Image object provided as output is obtained.