Skip to content

1. Introduction

dfki-flpe edited this page Jul 31, 2014 · 1 revision

Introduction

Mobile access to information is an integral part of our digital life. Smartphones will replace conventional mobile phones within the next few years. As a result, people will increasingly use the mobile internet. As a drawback, portable devices usually bring limitations for user interactions, for example due to small display size and missing/small keyboards. In this regard, with the advance of speech recognition and speech synthesis technologies, their complementary use becomes attractive for mobile devices in order to implement real multimodal user interaction.

This document describes the Multimodal Mobile Interaction and Rendering framework (MMIR framework) that is developed in context of the MultiModal Interaction Group (MMIG) at the German Research Center for Artificial Intelligence (Deutsches Forschungszentrum für Künstliche Intelligenz, DFKI GmbH).

The MMIR framework aims to provide the basic components of multimodal (mobile) interaction systems such as multimodal input manager, interaction manager, and data manager so that the developers can focus on unconventional aspects of theirs project rather than repetitive tasks which are common to all projects. The adjustment and extension of such a framework should be as easy as possible. That is one of our main goals for the design and development of MMIR. Although the focus for the current version of MMIR is targeted at mobile devices such as smartphones and tablet PCs, you can use it for regular PCs, too.

Mobile applications or apps are compact software programs that perform specific tasks for the mobile user. There are basically two types of mobile apps:

Native Apps:

Native apps are the products of apps developed using the device's own development kit (SDK). The native app must be installed on the device; they are either delivered pre-installed on the phone, or they can be downloaded from Web sites. Native apps are written specifically for a type of handset so they can take more advantage of a phone's functions.

Pros:

  • With the ability to be completely offline and the availability of local databases, native apps can easily and securely perform their task.

  • A native app has the ability to interact with all the available device functions through the SDK. Whether the app needs to transmit instructions to an external device, or simply capturing an image, the native app has many options from which to choose. Cons:

  • Native apps are more difficult to develop and require specific platform knowledge and programming language.

  • Lack of cross platform compatibility, which requires the software vendors to choose a preferred platform or have multiple teams developing for multiple platforms.

Web Apps:

The Web app resides on one or multiple servers and is accessed via the Internet. It performs specified tasks – potentially the same ones as a native application – for the mobile user, usually by downloading part of the application on the device for local processing each time it is used. The software is written as Web pages in HTML and CSS, with interactive parts in JavaScript. This means that the same application code can be used by almost all devices that can surf the Web (regardless of the brand of phone).

Pro:

  • A web-based app relies on server side processing for rendering content. It is a web page that has some additional scripting done to it to ensure that the look and feel is somewhat similar to the look of native apps.

  • Server side processing means better performance in many cases, since the end user does not have to wait for the information to transferred and manipulated on the device itself.

  • From a development standpoint, web solutions tend to be easier to develop than native mobile device apps.

  • Web based apps are also cross platform and can run on (almost) any browser regardless of the device you are using. Contra:

  • Loss of hardware integration: In a web-based model, you will not have access to most of the hardware capabilities such as the device's cam or capture data from an external device, such as geo coordination from GPS sensor.

  • Loss of some features, such as multi touch .There are web sites that have created controls similar to iOS controls, but they still lack the typical experience that accompanies the native ones.

  • Lack of strong support for offline functionality when the users do not have access to WiFi or internet. Building mobile web apps is a good way for creating portable solutions. It is an approach for mobile app development that when done right, will have you rewriting a lot less code to target the variety of devices that exist in the marketplace. A mobile web app is an application that is built with the core client web technologies if HTML, CSS, and JavaScript, and is specifically designed for mobile devices.

Hybrid Approach

An alternative approach is developing cross-platform mobile applications using web technologies as well as native code. Such applications are able to interact with mobile device hardware, such as Accelerometer or GPS (native part), but they can implement all other functionalities web-based. For more details, see chapter Why Cordova [TODO: LINK].

Why Cordova

Mobile development is a mess. Building applications for the major platforms – iPhone, Android, Windows Mobile, etc. – requires different frameworks and languages. An alternative approach is developing cross-platform mobile applications with HTML, CSS, and JavaScript using Apache Cordova [∗] . Cordova is a HTML5 app platform that allows developers to create native applications with Web technologies and get access to APIs and app stores. Applications built with Cordova are not just like normal mobile web sites. Cordova applications are able to interact with mobile device hardware, such as Accelerometer or GPS, in a way that is (currently) not available for normal web applications. The resulting applications are hybrid, which means that they are neither truly native (all layout rendering is done via the web view instead of the platform's native UI framework) nor purely web based (they are not just web apps and have access to part of the device APIs).


Table 1: Comparison of supported features by Cordova on different platforms [†]

jQuery Mobile

jQuery Mobile (jQM) is an open source, touch-optimized web framework developed by the jQuery team. The development focuses on creating a framework compatible with a wide variety of smartphones and tablet computers, made necessary by the growing but heterogeneous tablet and smartphone market. jQM divides the world up into pages, which are essentially just screens. Each page is divided into three areas; the header, the main content, and the footer.

With jQM developers can create applications that will run on a number of different platforms, not only the major ones (as iOS and Android). jQM is built around the principle of progressive enhancement, meaning any jQM application will work in many browsers, even those that do not support JavaScript. Another important aspect is the small file size of the jQM library, specifically designed for mobile usage.

For more information on jQM visit http://jquerymobile.com/.