What if, when you fired up your mobile phone's browser, it showed a list of the same basic apps your phone does today? And what if a developer who wanted an app to span iPhones, Android phones, and Windows phones only had to write one Web application to do that?
That's the vision that Mozilla, developer of the Firefox Web browser, wants to enable through a project called WebAPI that's designed to make Web-based applications compete better with native apps. And Mozilla has begun hiring programmers for it as part of a plan to build the necessary plumbing by next February, CNET has learned.
Web apps have grown steadily in maturity and sophistication over the years, but they still can't do all of what software written to run natively on a computing device can do. And with the arrival of newly powerful mobile devices--those using Apple's iOS and Google's Android operating systems in particular--native app programming has experienced a renaissance.
Mozilla, though, wants the Web to catch up--at least as far as mobile phones. The WebAPI effort aims to provide HTML-based software with the necessary application programming interfaces (APIs).
"We are aiming at providing all the necessary APIs to build a basic HTML5 phone experience within the next 3 to 6 months," the Mozilla wiki page on WebAPI said. Among the interfaces planned are those to interact with a phone's dialer, address book, contacts list, and camera.
If Mozilla succeeds in the effort, the project could ease the lives of developers who today must decide whether to allocate resources for iOS, Android, Windows Phone, and other operating systems. And, given that Firefox is front and center in the project, it could help Mozilla address its competitive weakness in the mobile market compared to the iOS and Android browser that both are based on the WebKit project.
Mozilla need not start from scratch. Some related work has been under way already through a group called the Device API, a project that browser maker Opera has pushed. In addition, some of the abilities are present in Adobe Systems' Flash technology, though that hasn't spread widely through the mobile device market.
Mozilla is hiring
Mozilla's Jonas Sicking revealed the WebAPI project on a mailing list yesterday and said Mozilla is hiring several full-time programmers to support the effort.
"We invite our community to work with our newly formed WebAPI team on closing the device API gap that exists today between the open Web platform and native APIs," Sicking said. "As with all other additions that we make to the Web platform, the goal is for them to be available in all browsers. We believe that Web developers should have a consistent and reliable platform to build on."
Mozilla hopes to standardize the new WebAPI interfaces--and significantly, it plans to do so through the World Wide Web Consortium. Years earlier, the W3C lost some HTML standardization initiative to a browser group called Web Hypertext Application Technology Working Group (WHATWG). The W3C, though, re-engaged with HTML standardization and now is working to speed its standardization process to match the pace of Web development better.
Nonetheless, it's native programming for mobile devices that's arguably the hottest new area. It's a market without dominant incumbent companies, flush with new customers and well integrated with payment mechanisms to deliver money to coders. The fact that Google's Chrome OS has strong internal competition from Android shows just how big a challenge Mozilla has in bringing its Web app programming vision to reality.
Linking with B2G
The Mozilla project dovetails with Mozilla's Boot to Gecko (B2G) effort. Its goal is "building a complete, standalone operating system for the open Web," all with a mobile device focus, such that opening your browser is the functional equivalent of turning on your phone.
In that regard, WebAPI also helps Mozilla match Google's Chrome OS, a browser-based operating system project that in recent months has arrived on lower-end laptops called Chromebooks. While the Mozilla and Google efforts compete to an extent, fundamentally they share a common goal in making the Web suited for advanced apps, not just basic ones. Right now programming something complex like Google Docs requires herculian abilities, and even that can't yet do basic things such as store data when the network goes down.
One more project of note, from the company that arguably has the most to lose from Web applications: Microsoft. Windows 8 will use Internet Explorer 10 for "tailored mode" applications, giving Web programming another big shot in the arm and, in all likelihood, significantly advancing the programming tools available to developers.
It's a somewhat ironic move, given Microsoft's fear in the 1990s that Netscape's effort to make the browser and the Web into something of a replacement for Windows. That fear led Microsoft into aggressive actions that ultimately led to the expensive, drawn-out antitrust lawsuit that took some of the wind out of Microsoft's sails.
Chrome OS and Mozilla's B2G also are embarked in parallel on efforts to mirror a technology on Android phones called "intents." The intents system lets applications register to be mechanisms to handle certain actions that can be performed with certain types of data. For example, the intents system can hand off a photo in the photo gallery to the Facebook app for posting when a user taps the "share" button.
To this end, Google is working on a project called Web Intents that does the same thing, but Web applications are registered to perform the actions and the browser hands off the content. Mozilla's parallel is called Web Activities, part of its experimental OpenWebApps add-on.
Mozilla is tackling other uncertainties, too: should its interfaces be high-level ones such as one for the camera, or low-level ones such as one for communicating over USB? And what's the best way to constrain the APIs so they don't cause security problems?
The work, combined with the rapid development of browsers themselves, means Web apps have a vibrant future. It means a certain amount of chaos for Web programmers, but the confusion of active projects is a better alternative to the stagnant waters of dormant or dying environments.