All posts tagged ‘Boot2Gecko’

File Under: Browsers, HTML5, Mobile

Mozilla Tempts Mobile Developers With Firefox OS Simulator

Firefox OS’s home screen, dialer and web browser. Image: Screenshot/Webmonkey

Mozilla has released a new version of its experimental Firefox OS Simulator. The Firefox OS Simulator (which also goes by the nerdtastic nickname r2d2b2g) is a new add-on for Firefox that makes it easy for web developers who would like to get their hands dirty building apps for Mozilla’s coming mobile Firefox OS.

Mozilla’s Firefox OS is still in the very early alpha stages, but if you’d like to test your apps in the latest version of the Simulator, head on over to the download page (note that there are known issues running the simulator on Linux and Windows XP).

Firefox OS is Mozilla’s answer to the question how does Firefox stay relevant in an increasingly mobile world? Locked out of Apple’s iOS due to the platform’s developer limitations and only recently beginning to create a truly competitive browser on Android, Mozilla’s long term mobile plan is to create its own mobile operating system built entirely on open web technologies.

Although the company has since switched to the “Firefox OS” moniker, the original name, Boot2Gecko, neatly captures Mozilla’s take on the mobile operating system — essentially turning the Firefox web browser into an operating system.

Applications built for Firefox OS use nothing more than web development tools — everything is made with HTML, CSS and JavaScript — which then run atop Firefox’s Gecko rendering engine.

To make it possible to create full-featured mobile apps with only HTML and other web tools, Mozilla is relying heavily on device-level APIs to tap into everything from dialing phone numbers to listing contacts, taking photos and getting Wi-Fi information. Not all of the APIs Firefox OS uses are web standards yet, though Mozilla has submitted most of them to the W3C for consideration.

Mozilla hardly has a monopoly on using web tools to build mobile apps; that was Apple’s original plan for iOS and it’s also exactly what tools like Phonegap or Cordova allow you to do for iOS, Android and other mobile platforms. The difference with Firefox OS is that you don’t need to package your app up in a native container — there’s no need for Phonegap and its ilk.

While Firefox OS may use familiar web development technologies and may run on the same Gecko engine that already powers the Firefox web browser, developers still need a way to test their apps in a mobile environment, which is where the Firefox OS Simulator comes in.

To get started with the Simulator, first open up the “Simulator Manager” by selecting the new Firefox OS Simulator option in the Firefox Web Developer menu. In the Simulator Manager you’ll find controls to start and stop the Simulator and a JS Console option to see any error messages as you develop.

For more on how to get started using the Simulator and building apps for Firefox OS, see the Mozilla Hacks blog, especially the very thorough tutorial from Mozilla community member Luca Greco, who walks through nearly the entire process of building and testing an app on Firefox OS.

File Under: Mobile, Web Standards

Video: Mozilla Developer Shows Off the Power of WebAPI

It wasn’t too long ago that Mozilla launched its WebAPI project, a cross-platform, web-based API for accessing features on mobile devices. If WebAPI succeeds it could provide an open, web-based alternative to the proprietary app systems on today’s mobile devices.

The goal of the WebAPI effort is to help web apps access the same features that platform-specific mobile apps enjoy. That way web apps could better compete with platform-native applications. Mozilla’s various WebAPIs aim to make it easier to build web apps that access your phone’s camera, GPS info, network status and accelerometer.

Now Mozilla’s Paul Rouget has put up a demo video of some of Mozilla’s WebAPIs in action. Rouget shows a number of demos, including what looks like it could be a very cool web-based camera app — a bit like Instagram, but available to anyone with a modern web browser.

If Mozilla’s WebAPI project sounds a bit familiar it may be that you’ve heard of the W3C’s Device APIs Working Group, which is attempting to define standards that cover much of the same device-to-web ground. In fact, some of Mozilla’s WebAPI project may eventually be rolled into the W3C’s efforts.

But, as Rouget mentions in the demo video, much of Mozilla’s effort is aimed at building the company’s Boot to Gecko mobile platform. The Boot to Gecko Project is Mozilla’s attempt to develop a mobile operating system that emphasizes standards-based web technologies. With that end goal in mind, Mozilla’s WebAPI may end up being somewhat different than what the W3C is trying to build.

For more details on Mozilla’s WebAPI efforts, check out the WebAPIs wiki which offers a complete list of the APIs and more details about Mozilla’s plans to standardize them.

File Under: Mobile

First Look: Mozilla’s Boot2Gecko Mobile Platform and Gaia UI

Mozilla launched a new project last year called Boot2Gecko (B2G) with the aim of developing a mobile operating system. The platform’s user interface and application stack will be built entirely with standards-based web technologies and will run on top of Gecko, the HTML rendering engine used in the Firefox web browser. The B2G project has advanced at a rapid pace this year and the platform is beginning to take shape.

The B2G team at Mozilla is preparing to give a demo of the platform’s user experience at the upcoming Mobile World Congress (MWC) event. Mozilla’s Brendan Eich told us via Twitter that the B2G project has already attracted partners, including one that is developing its own custom home screen. This suggests that multiple parties, possibly hardware vendors, are interested in adopting the platform.

According to a roadmap recently published by Mozilla, the B2G project could potentially reach the product stage by the second quarter of 2012. That’s a highly ambitious target, but the project’s impressive rate of development suggests that it can be done. The pervasive use of HTML and JavaScript to build the user interface and application stack is no doubt speeding the project along. Web technologies are very conducive to rapid development.

The B2G platform consists of three main layers. The bottom layer, which is called Gonk, includes the Linux kernel, the hardware abstraction layer, the telephony stack, and other low-level system components. The middle layer is the Gecko rendering engine, which has been improved with new APIs that expose device capabilities. The top layer is Gaia, the B2G user interface, which is built entirely with HTML and JavaScript.

The Linux kernel that is used in Gonk is said to be “reasonably close” to upstream Linux. According to Mozilla’s documentation, Gonk uses some of the underlying bits of the Android open source project, including some minor kernel customizations, in order to make it easier for hardware vendors to get B2G running on Android hardware. B2G is not based on Android, however, and will not run Android applications. It’s currently possible to replace the Android environment on a Samsung Galaxy S II with a B2G build.

Much of the interaction between the Gecko and Gonk layers will be mediated by a B2G process that runs with a high privilege level and acts as a sort of Gecko server. The B2G process will paint to the framebuffer and interact with hardware components like a built-in GPS antenna or camera.

The wireless modem functionality is implemented in a radio interface layer (RIL) daemon, which B2G will interact with through a simple proxy process. Actual web content and multimedia playback will be handled by separate processes that communicate with the B2G process.

Mozilla aims to build the entire B2G user interface and application stack with native HTML and JavaScript. In order to accomplish that, Mozilla launched the WebAPI project, which exposes device functionality to web content through JavaScript APIs. Mozilla has already previously introduced APIs for accessing certain device capabilities, such as the accelerometer and geolocation APIs that are supported in the mobile versions of Firefox.

The WebAPI project goes a step further and adds a great deal of additional functionality for tasks like taking pictures with the built-in camera, dialing the phone, accessing the device’s battery level and status, sending and managing SMS messages, accessing the user’s address book, and making a device vibrate. These capabilities are largely made accessible to web content through a set of JavaScript APIs. This means that the B2G dialer interface, for example, is just a web page that uses a JavaScript function to initiate a call.

Mozilla is working to standardize these APIs through the W3C Device APIs working group. In theory, the same underlying JavaScript APIs that are used to enable access to underlying platform features on B2G could eventually be supported natively in the default web browsers that ship with other platforms.

The standardization effort around device APIs is especially significant. If the APIs gain widespread adoption, it would make it possible for large portions of the B2G user experience and application stack (which are, essentially, just web content) to run in web browsers on other platforms. At that heart of Mozilla’s agenda for B2G is a vision of the future in which browser-based mobile applications, built with standards-based HTML and JavaScript, will be capable of doing everything that can be done today with the native mobile application development frameworks.

Because B2G’s Gaia user interface layer is implemented in HTML and JavaScript, it can technically run in a regular desktop web browser. Of course, the device-related capabilities will only work when the content is run in an environment that has WebAPI support.

We tested the Gaia home screen user interface and several of the platform’s applications in a Firefox nightly build. All we had to do to get it running was download the code from the relevant GitHub repository and then open the homescreen.html file in Firefox.

When the page loads, the user will see the B2G lock screen, which displays the current date and time. The home screen interface can be accessed by dragging the lock screen up. The home screen displays a grid of application launchers and has a notification bar at the top. You can drag a notification slider down from the bar, much like the equivalent user interface element in Android.

B2G lock screen

If you look at the source code of the homescreen.html page, you will see that the contents of the interface, including the lock screen, are created with HTML div tags with some JavaScript code to handle interaction and populate the values. It’s quite simple and predictable web content.

The B2G home screen

Individual applications run inside of a frame in the homescreen interface. We tested several applications, including a dialer, a web browser, and a map application. Like the home screen, these are all implemented in HTML and CSS. The web browser is basically a web page with an HTML input element for the URL bar and an embedded iframe element where the page content loads.

B2G sample map application

B2G's Web browser. It's practically begging for a Yo Dawg joke

The B2G dialer

The current implementation of the Gaia environment is still simplistic and incomplete, but it offers a compelling demonstration of how conventional web content can be used to create a smartphone user experience. It’s possible to do anything in the B2G user interface that can be done with HTML and CSS, so the possibilities for styling and theming are prodigiously extensive. Such intrinsic flexibility could help make B2G appealing to hardware vendors because it would make it easier for them to create custom user interfaces that differentiate their products.

Mozilla hasn’t created an HTML-based widget toolkit for application development. The applications currently included in Gaia are just straight markup with CSS for design. It’s theoretically possible to use existing HTML widget toolkits in B2G, however, such as jQuery Mobile and Sencha Touch.

The B2G project is off to an impressive start. The underlying concept of bringing native application capabilities to the standards-based web technology stack is also tremendously compelling. It hints at the possibility that the open web could someday provide a unified application platform for mobile devices.

It’s also worth noting that the project is entirely open. As Eich pointed out to us yesterday in response to our coverage of Open webOS, the B2G project has had open governance and public source code since its first day. B2G also benefits from Mozilla’s engineering talent and potential partners. The B2G platform has an opportunity to bring positive disruption to the mobile landscape and be a serious contender.

This article originally appeared on Ars Technica, Wired’s sister site for in-depth technology news.