Mozilla hopes to help Web apps match phone apps

The WebAPI project will endow Firefox with abilities that can match what mobile phones can do in the next half year, and Mozilla is hiring coders for the effort.

Stephen Shankland principal writer
Stephen Shankland has been a reporter at CNET since 1998 and writes about processors, digital photography, AI, quantum computing, computer science, materials science, supercomputers, drones, browsers, 3D printing, USB, and new computing technology in general. He has a soft spot in his heart for standards groups and I/O interfaces. His first big scoop was about radioactive cat poop.
Expertise processors, semiconductors, web browsers, quantum computing, supercomputers, AI, 3D printing, drones, computer science, physics, programming, materials science, USB, UWB, Android, digital photography, science Credentials
  • I've been covering the technology industry for 24 years and was a science writer for five years before that. I've got deep expertise in microprocessors, digital photography, computer hardware and software, internet standards, web technology, and other dee
Stephen Shankland
5 min read
Firefox logo

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.

Web programming is growing by leaps and bounds for many reasons. Among them: the arrival of mobile phones with capable browsers and higher-speed Net connections; the surging performance of JavaScript, the programming language used for Web applications; the embrace of cloud computing, in which applications live on a server on the Internet and can be accessed from any device with a browser; and the competition among Microsoft, Apple, Google, Opera, and Mozilla to advance their browsers with competitive new features.

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.

What's not yet clear is how universal applications written for these foundations will be. Google has its Chrome Web Store, for example, for distributing Web apps that work with Chrome; some of those are Web apps that work on other browsers, too, but browser incompatibilities can interfere with that--particularly with new, immature Web interfaces. In addition, the Chrome Web store comes with payment and permission mechanisms that won't necessarily carry over beyond the Chrome realm. Windows 8, though it's using the same basic ingredients such as HTML and JavaScript, could come with other constraints. However, Microsoft hasn't detailed plans yet.

Web Intents
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.