General: Principles and Strategy
The increasing trend of mobile learning
Recent years have seen an ever increasing trend toward mobile learning. By recent estimation, over half of all college students have internet-capable handheld devices. A dean in higher education even remarked that "students were more likely to remember their phone than their wallet when heading out".
This being the case, a mobile presence is no longer just a desire, but rather an expectation.
Native apps versus web apps
Generally, two approaches exist for a mobile application:
Native - Platform-specific applications that run on specific device hardware, generally with low portability, centralized distribution and robust hardware interfaces.
Web - Web applications that run in an Internet browser, consequently with superior portability but also an apparent lack of hardware interfaces. Although the web is ideally portable across devices as is, in reality browsers interface still vary enough to require variation.
The mobile device platform market is rapidly and continually expanding. As students are early and frequent adopters of new technologies such as mobile devices, developing a native application that serves a substantial number of devices on campus quickly becomes a challenge. Therefore, the Mobile Web Framework instead focuses on providing a web-based platform that can serve the vast majority of mobile devices.
An approach to the mobile web
As opposed to the traditional web, which is a collection of disparate content linked by page hops and searches, the mobile web focuses on an integrated experience categorized by task-oriented and directed content. It offers a single platform from which content can be delivered to all web-capable devices, but it drives many developers away because of the wide range of capabilities between different browsers. The Mobile Web Framework removes this challenge in developing for the mobile web.
Beyond these benefits, the nature of the framework as hosted centrally, but leveraged in a distributed fashion, it allows a service provider to establish a unified identity for the entire mobile application, regardless of what server or environment the actual application resides in. This allows content providers to leverage it from their own server with their own business logic and data, while appearing as part of a single environment, heterogeneous in composition but homogeneous in appearance to the end user.
The UCLA Mobile Web Framework is currently in production across numerous institutions, including five in the University of California system with several more preparing to roll out applications using it.
The Mobile Web Framework has several guiding principles:
- Device Agnostic Works on any web-capable device.
- Graceful Degradation Provides functionality to the best ability of each device.
- Federated Architecture Run centrally, but used in a distributed manner.
- Unified Mobile Presence One outwards presence even in a distributed environment.
- Language & Environment Independent Compatible with any language system and environment.
- Modern Web Standards Complies with modern web standards.
The framework, at this time, distinguishes between four different types of phones:
- Full Styles elements with CSS 3 and exposes HTML 5 functionality where available.
- Basic Least common denominator with XHTML MP 1.0 and WCSS.
More information is available on device classifications here
In addition, for modules running on the same host as the framework, the framework also includes a set of PHP object libraries both to access framework telemetry and to build pages using decorators.
The rapidly changing mobile device landscape presents one of the greatest challenges for the mobile developer. In the past, developers have had to address these differences individually. This has added enormous overhead to the development of mobile applications in terms of scope, resources, and budget- both upfront in development and implementation, and later, in maintenance and upgrade cycles. The UCLA Mobile web Framework allows developers (including Universities) to avoid detailed device-by-device planning, implementation, upgrades and maintenance and all their associated costs, and instead makes real the promise of "develop once, use everywhere" by providing a simple abstraction layer whereby the framework itself makes device-by-device determinations.
The framework documentation also provides comprehensive information for developing MWF applications, including specifications for both styling and interface classes in the framework, as well as general HTML recommendations necessary for semantic degradation on non-CSS devices.