We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
Feedback

State of Firefox OS

00:00

Formal Metadata

Title
State of Firefox OS
Title of Series
Number of Parts
199
Author
License
CC Attribution 2.0 Belgium:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor.
Identifiers
Publisher
Release Date
Language

Content Metadata

Subject Area
Genre
Abstract
What we did in 2013, the cool dev tools we got for X-mas, the great stuff we're planning for 2014, and how to get a free tablet
CodeMobile appSmartphonePlastikkarteMereologyOpen setMathematicsOperator (mathematics)Contrast (vision)Duality (mathematics)Term (mathematics)Computer iconSoftware testingPie chartTelecommunicationArithmetic progressionSoftware developerComputer fileElectronic mailing listPoint (geometry)BitMoment (mathematics)QuicksortInheritance (object-oriented programming)Metropolitan area networkNetwork topologyInstallation artTouch typingCondition numberSystem callNormal (geometry)WordKnotRight angleExecution unitShared memoryGodLecture/Conference
NumberDeclarative programmingIndependence (probability theory)MereologyLaptopTouchscreenElectronic mailing listComputer file9K33 OsaBasis <Mathematik>Point (geometry)Cycle (graph theory)WordData managementCuboidBranch (computer science)Interface (computing)Flash memorySmoothingType theoryMobile appHypermediaMetropolitan area networkPersonal area networkVector spaceLogic gateCodeRight angleSound effectControl flowProduct (business)Revision controlSoftware developerExponentiationShape (magazine)SmartphoneImage resolutionMultiplication signSet (mathematics)Digital photographyVideo gameMathematicsDefault (computer science)Numbering schemeCartesian coordinate systemFocus (optics)Moment (mathematics)BitEmailDemo (music)Zoom lensThread (computing)File archiverElectronic visual displayMobile WebLecture/Conference
WikiSet (mathematics)Mobile appInformationFacebookTouchscreenPoint (geometry)Projective planeMoment (mathematics)Software bugContent (media)NumberBookmark (World Wide Web)World Wide Web ConsortiumArithmetic progressionFlow separationDefault (computer science)Web browserPhysical systemSoftware developerCartesian coordinate systemTraffic reportingMereologyVarianceBlogQuicksortPattern languageWeb pageReal numberLevel (video gaming)Zoom lensKnotFile formatMultiplication signPersonal digital assistantObservational studyComputer animationLecture/Conference
FeedbackTask (computing)Shape (magazine)Patch (Unix)Thread (computing)Internet service providerFunction (mathematics)Online helpTraffic reportingConvolutionSoftware testingDifferent (Kate Ryan album)Mobile appMultiplication signPrototypeMoment (mathematics)World Wide Web ConsortiumMultiplicationSoftware bugPoint (geometry)Tablet computerLocal ringComputer programmingHacker (term)Graphics tabletGoodness of fitMassArithmetic progression9K33 OsaoutputProjective planeElectronic mailing listWeb-DesignerFront and back endsSystem callState of matterInterior (topology)Web pageFreewareSubject indexingData storage deviceNetwork socketDisk read-and-write headDoppler-EffektMereologyParameter (computer programming)Right angleWordVideo gameVoltmeterMusical ensembleWebsiteTable (information)String (computer science)Lecture/Conference
PlanningPrice indexCategory of beingMultiplication signOffice suiteIncidence algebraOperator (mathematics)SoftwareThread (computing)Web 2.0Mobile appBitCodeLecture/Conference
Form (programming)Standard deviationSemiconductor memoryAndroid (robot)Matching (graph theory)MereologyMultiplication signDemo (music)Software developerBitProjective planeSoftware frameworkSoftware design patternInformation securityProcess (computing)Solid geometrySoftware testingInsertion lossRothe-VerfahrenMobile WebInstallation artInformationDataflowMobile appHacker (term)Java appletLecture/Conference
Transcript: English(auto-generated)
So, I'm going to present you where we're at at the moment with Firefox OS, what we did last year, what we are doing at the moment, and where we're heading at for the next few weeks or months. And the very first thing I would like to talk about are the devices.
So, this has been the very big thing for 2013. We had one clear goal, ship a phone. So, it's been sometimes frustrating because it was not a year where we could iron the code as much as we wanted.
We wanted to have the features as quickly as possible to test them as soon as possible with our partners, with the manufacturers, the operators. And it's been a success because we've shipped three phones. The DT Open that most of you might know already, the Alcatel One Touch, and the LG Fireweb.
So, I've tried to prepare a pie chart to show you how it translates in terms of market share, but basically this is how we're entering the battlefield.
So, we're not a big threat yet, but we're on the battlefield and that's what we wanted. So, what's interesting about this experience is that those three little babies have been shipped to 14 countries, mostly South America and Europe.
And we have already 17 operators who are committed to ship a Firefox OS device pretty much all around the world. So, we're not a big competitor in this battlefield yet, but we're there and we're about to be ready to be pretty much everywhere in the world.
So, that's been our big achievement for last year and it's been quite a journey to get there. Besides these end user devices, we have developer devices.
Those two Geeks phones have been presented here last year in this same room. We had the Telefonica community member who went to show those. And they're still working great as the developer devices. We sort of support other devices like the Nexus S and Nexus 4.
It's not an official support. It's more a community driven effort to make Firefox OS work on those. But, it's not the point. We're a dedicated team. We're not Google. So, we're focusing on shipping phones and not on making Firefox OS work on existing devices.
I know it can be frustrating. I hear this a lot that people would like to install Firefox OS on their own device. They have an old Galaxy S2 or whatever that would like to reboot with Firefox OS. And no, I'm afraid the short answer is it's not easy to do it.
So, please bear with that. We're working hard to make Firefox OS a real competitor as a mobile OS. And I think we have some pretty good chance to make it happen. But, this has a cost and this cost is that we cannot afford making this work on other devices.
So, here's a technical overview of what we did last year in 2015. I'm starting from the most visible changes to the most under the hood ones. So, the first thing we've been doing has been to do some visual refresh.
So, on the left side, this is Firefox OS 1.0 and 1.3 on the right side. So, it's all a matter of details. We've lowered the contrasts. We've refined the icons. All the status bar icons on the above have been switched to monochrome icons, which are much lighter in the eye.
So, it's just a matter of refinement. I hope you'll like it. We've been doing a lot of work in communication apps. So, I'm a bit biased here because I'm in this communication app team.
But, we've added last year some support for MMS, for conference calls, for dual scene, which is an important feature for the markets that we are targeting. For you, who want to use this as your test phone, or maybe your favorite phone, or your unique phone,
there's been a very significant progress regarding the contacts import and export. It's now much easier to import existing contacts from Gmail, Outlook, or from your older device. All you have to do is to export your contact list as a vCard file.
We can import this, or we can re-export this as a vCard file. We can even write those contacts in the SIM card. I never saw this would happen, but it did. I'm glad it did. So, now we're pretty much on par with the rest of the smartphones for the telephony part.
This was a pre-request to be able to ship phones. This is where we're at at the moment. There's been a bunch of other app improvements. I'm not going to list them all. We have some release notes. The most visible part is the new lock screen. So, now there's only one gesture to unlock your phone instead of two gestures.
If you've used 1.0 or 1.1, you had to split it above and then pick either unlock or camera. So, this has been improved. The email app has been very much improved. Now we have mail notification. We support mail drafts.
We have attachments. We can display and send attachments. We have a download manager to give you a list of the files that you've... Basically, it's interesting for all the files that you cannot open directly with the phone. Like, if you're downloading a zip archive or whatever, which is not a media file,
this is where your file will end in the download manager. When we started with 1.0 and 1.1, we were focused on one resolution, which was half-HGA, and now we're supporting multi-resolution displays. So, there's been the GeeksPhone peak, but we're getting ready for other devices as well.
And, more in general, we've been doing a lot of work to improve the performance, mostly on startup time and on panning, to have a smooth scrolling experience.
We still have some room for improvement on this part, but we've already made some significant improvements. If you're still on 1.1, I suggest you to try 1.3. It feels much snappier already. Yes. 1.0. So, when we started Firefox OS, we were, at these days, on Gecko 18.
It was the Aurora, or maybe Nightly, when we started Firefox OS 1.0. And, we've been stuck with this branch for, well, one year, a bit more.
So, we had to draw a branch, which is called B2G18, which is a branch of Gecko 18. And, we've worked with this branch for a very long time. And, starting with Firefox OS 1.2, we've moved to a 12-week release cycle. As you know, Firefox itself has a six-week release cycle.
So, this means that every Firefox OS version comes with every even number of a Gecko version. So, now we are on a much healthier release cycle. It means that we can benefit from Gecko improvements on a very regular basis. One of the things that have been missing in Firefox OS 1.2 and 1.1 was Flexbox,
which has arrived in Gecko 19. So close, yet so far. So, one year developing mobile interfaces without Flexbox has been quite frustrating. So, these days are over. If you are interested in contributing some code to Firefox OS now,
the good news is you're going to have a modern Gecko. Whatever versions you're working on. Oh yeah, and this is probably the most life-changing tool we've had last year.
The DevTools team has been doing an awesome work. The application manager allows you to do some remote debugging, remote inspecting on the device. I'm sorry I didn't prepare any demo because I thought it would have been presented earlier. But if you're interested in this, I can do a quick demo after this talk to see how it works.
It's much cleaner to work with this because you don't have to flash your phone. You just have to do some live edition directly from your laptop.
It's much more efficient. So, if you've worked with Firefox OS 1.0, 1.1 and have been struggling with the flash and retry experience, those days are over, mostly. And this has been our Christmas gift.
So, asynchronous pan and zoom. The idea is to perform panning and zooming asynchronously on the compositor thread instead of doing it on the main thread. So, obviously, the idea is to have a smoother panning experience. And we've landed this right before the Christmas break.
Remember, pushing into production on Friday? That's what we did. For some reason, we have a few issues to fix on the front-end side now, but it's taking good shape. So, you can enable or disable this asynchronous pan and zoom thing from the developer settings.
So, I don't remember if now it's enabled by default or disabled by default. It's enabled by default now. So, if you find some strange bug, it might be worth to go to the developer settings panel, try to disable asynchronous pan and zoom and see if it fixes the bug. In this case, you have the bug number to report another APZ glitch,
but it's getting pretty much sorted out at the moment. If you're interested in the technical part, have a look at the wiki. You'll probably have more information about that than what you wanted to have. It's pretty explanatory. I recommend reading this.
And now, here's what we have in mind for 2014. So, again, I'm not going to give you the whole roadmap, which is on the Mozilla wiki. But I would like to talk about one experiment. Well, it's more than an experiment now.
It's a real project. It's called Haida. And this is how we would like the user experience on the mobile device to become. We would like this to be more web-ish, to be more resilient.
So, instead of having the current... We want to simplify the whole experience. We want to make the content more directly accessible. So, we have a few items that have been identified.
The first one are what we call edge gestures. So, I'm sorry we don't have any camera here to show how it works on the big screen. So, I hope you're going to be able to imagine how it looks like from this far. So, this is a way about switching application by...
Hey, impressive, huh? Try to visualize some lens. It will be bigger. So, we're just swiping to get from an application to another.
This is the alt tab. And besides the alt tab, we have the spotlights for Mac users, or the activities for GNOME 3 users, which we call the Rocket Bar. So, this is a central point where you can search among the user's bookmarks,
your history, the contacts, or hopefully pretty soon the marketplace, everything not me. So, one central point to access all your data. So, if you're looking for a contact, for a web page, it's the central place to enter two, three letters and see it complete.
This is the cool thing, well, one of the cool things about this project. We're integrating the browser directly into the system. So, there won't be any browser app in itself. Everything is a browser. The whole device is the web.
So, this simplifies a lot the experience, and it makes it much more consistent, much more web-ish, and this should be enabled in the next few weeks. And we also want to have better customization, making the home screen replaceable, and the lock screen to be customizable as well.
So, again, you'll find more information on the wiki. It's still a moving target, so not everything is very well defined at the moment. But the good thing is you can already try the edge gestures and the rocket bar to see how it changes the experience.
You just need a recent build, and go to the developer settings panel, enable those two items, and you're pretty much set. To make this happen, to make HIDA happen, we need new web APIs.
The first one that we are working on is the Datastore API. So, Datastore is about being able to share some data across several apps, which is not possible at the moment. So, this is what we need to make this central search to make the rocket bar work.
So, we have to make the Datastore API work properly, and we have to adapt the various apps to use the Datastore instead of their own APIs that they were using so far. So, for Facebook contacts, bookmarks, history. I think it works already for the contacts, not yet for the bookmarks.
But, again, you can follow the progress on this bug. It's bug 871445. And have a look at the web API if you want to help us hack on it. It would be more than welcome. Another big piece on the Gecko side are the shared workers.
So, you probably all know web workers. If you don't have a look, it's the one way to parallelize some tasks in JS. JS is basically a modal thread. So, if you want to parallelize some tasks, you have to use some workers, some web workers.
And we want to have shared workers so we can call a worker from different apps. The corollary is that we want to enable web APIs in web workers. So, there is a bug to track all these web APIs that are getting enabled in web workers.
Most important, of course, Datastore and XDB. But also, device storage, mass contacts, TCP socket. There's a long list of web APIs that we want to enable in those shared workers. It's getting prioritized. It's been prioritized, I think.
So, this is making good progress. And I hope it will bring some enhanced experience for the end user in the next few months. And one of the common questions that we've had about this project is,
Where's the tablet? Where's the tablet UI? Remember the first goal for 2013, shape a phone. We don't have much time to work on the tablet UI. We haven't had much time to work on that last year. We've been making good progress on the tablet UI.
And what we would like to propose to you now is to help us building Firefox OS on tablets. So, there's a lot of front-end work for web developers to do. There will be a lot of localization, of course. There will be a lot of user testing that will be more than appreciated on these devices.
And to make this happen, Mozilla is proposing you to provide you a 10-inch tablet, which is a reference device, which is being built at the moment. We've seen the first prototypes. It should be ready quite soon. We can help you technically to write patches to provide sharp feedback for user reports
or to help localize our strings and help identify what points should be modified in the UI to fit the localization.
And we are preparing nightly builds to make sure that every day you can get the latest, up-to-date, state-of-the-art of the project. So, this has been announced by Asa Dautler earlier this month, three weeks ago.
You'll get some news about that pretty soon. I recommend to check hacks.mozilla.org in the next few weeks, and everything will be detailed in there. I really hope you'll be interested in this program because building Firefox OS has been an incredible experience,
but it will be an awesome experience to work with you guys on this common project for the next year. That's really my wish for 2014. And that's it, if you have any questions.
So, I'm sure you have some. Who wants to begin?
Very nice progress. I'm wondering about audio API. What is the latency for audio at the moment, and will you also have an audio API in workers? I'm not the right person for that. You know Paul Adanor, right? Oh, Paul, somebody gave a microphone to this guy there.
So, the latency on cheap devices is terrible. It's around 100 milliseconds. If you get a Nexus 4 and you run Firefox OS on it, it's extremely low.
It's like around 20 milliseconds or something. I'm talking input or output. That is using the full-fledged Web Audio API, which I'll be talking about later today. So, this is while, for example, doing convolution on multiple threads and stuff like that, like crazy stuff.
So, to me, it's good enough. If you don't agree, then you can probably talk to me afterwards. Anyway, yeah, that's the plan. There is also a plan to run Web Audio in workers, but the spec is not done and the code is not done. So, feel free to contribute if you have something to contribute.
But there is a plan to do that, because there is no way around it. Like, if you do audio, you need multiple threads.
A political question. Why in the marketplace there isn't an indication for the app if the license of the apps? What was that, sorry? Why in the marketplace there isn't an indication, a license indication for the apps?
Oh, license. No idea. I agree it's a bit of a pity. We have a big room for improvements on the marketplace. Personally, I'm more worried about the startup time of the marketplace,
especially if you are on a flaky network. So, we have priorities. The marketplace is not exactly in our team. It's a common project across desktop and mobile. And, yeah, they have their own roadmap.
And I agree it's a bit disappointing for us flossing through the ice. They feel like it's not the most important information to put in front of the user. And I think I could second that. I'm more worried about the permission that I'm giving every app that I install my phone.
I don't care as much as for a desktop app, if it's GPL or proprietary. I really do care about what it does with my data. So, on this aspect, we've been doing a good job, because we have our web-ish security model, which, unlike Android, is not asking you to have all permissions from the start before installing your app,
but every app asks for permissions as it requires them. So, I would say most of the... Well, for the average user, I think it's fair enough. But, yeah, as a flossing through the ice, I agree with you.
I would really like to see this. Of course, if you want to see some demos or to test some phones, there are some on the booth. Kazir also has one. So, you could ask questions to him in front of the room.
Another question? We have still one minute, okay? Yeah. So, what are the biggest challenges you as a developer of Firefox OS are facing?
Quite a lot. Performance comes to mind first. We're trying to keep very low memory usage and to get some quick startup times.
We're trying various hacks to improve the startup times, and we're investigating a few possibilities to be able to sandbox panels. And this is also part of the Haida project, to be able to sandbox every panel.
So, this is one of the big challenges that we are going to address in this year. I think another challenge, which can be perceived as a challenge for somebody who is entering this world,
is that we don't have any standard design pattern like you could have on Java or even on angular.js apps. We want to be as closely as possible in the middle. So, we want to have the best possible performances. So, we're not using standard MV, whatever frameworks.
So, it can be frustrating for people who are very Java-oriented. It's thrilling for us who like to optimize everything. But that's another challenge, making a culture around this approach.
Thank you. Thank you so much.