Web Components for Mobile Devices
This project is exploring whether a component-based approach to Web application development can simplify the development of applications for mobile devices in general, as well as mobile applications that use the POMI PRPL data management framework in particular.
Problems and Opportunities
The rapid adoption of powerful mobile devices such as Android-based phones, iPhones, and iPads is spurring the development of a variety of exciting new applications that take advantage of device features such as large touch-screens, GPS position sensors, and accelerometers. However, development of these applications is hindered by several factors. First, differences between devices make it difficult to develop applications that work on multiple devices. Many applications are developed using native frameworks for particular devices, making them inherently nonportable. Over time we expect more and more mobile applications to be delivered using the Web, which provides greater portability. However, devices still differ in hardware characteristics such as screen size and multi-touch capabilities, so creating portable Web applications will continue to be difficult.
Another problem with all Web applications, whether for mobile devices or traditional laptops and workstations, is that user data is tied to particular proprietary Web applications, so that users lose control over their own data and it is difficult to share data between applications. The POMI project is addressing this issue through the development of the PRPL storage system, which will allow users to store and control their own data. However, most Web development frameworks assume the use of relational databases as the primary source of data; the PRPL mechanisms are different enough to make it difficult to use PRPL in Web applications.
This project is exploring techniques for simplifying development of mobile applications and for incorporating PRPL-based data into those applications.
This project will be carried out using the Fiz Web application development framework. The goal off the Fiz project is to raise the level of programming for Web applications so that developers work with high-level components rather than low-level HTML. Fiz provides a framework for creating reusable components, and it also includes an initial set of components.
Fiz is synergistic with POMI in two ways.
First, the component orientation of Fiz makes sense for delivering Web applications to mobile devices. Mobile devices have constrained and widely differing form factors, so applications need to be specialized to the characteristics of individual devices to maximize usability. The traditional Web development paradigm makes it hard to reuse code, so applications would need to be customized over and over for different devices. With Fiz it may be possible to create interactive components that can specialize themselves for a range of devices; once the components have been created, applications can use them without having to worry about device differences. Or, if the differences between devices are too great to be completely encapsulated in a component, it will still be possible to create specialized components for different devices; applications can then choose from among these components based on the output device, rather than rebuilding everything from scratch for each device.
The second synergy between Fiz and POMI is in the area of data management. Most Web frameworks are narrowly focused on relational databases as the sole source of data; managing data from any other source is much more difficult. In contrast, the component approach in Fiz makes it easy to accommodate a variety of different data sources. Thus Fiz can potentially make it easy for Web applications to use PRPL data.
This project is being carried out in three stages. In the first stage we are developing a few interesting mobile applications using Fiz, in order learn more about mobile applications and to get a sense for how well Fiz works in this environment. We will test these applications on multiple devices in order to understand how device differences affect application development. In the second stage will develop new Fiz components that make it easier to develop mobile applications and (ideally) mask device differences. In the third stage, we will build a Fiz data manager for PRPL and create a few experimental applications with this, both to evaluate Fiz's data management techniques and also to evaluate PRPL as a data source for Web applications.
Faculty: John Ousterhout
Students: Sameer Madan