SlideShare uma empresa Scribd logo
1 de 56
Baixar para ler offline
K O
                       E C      ile?
                  O  G of mo   b

               T T       ture                                        aw
                                                                       kes

             OO      e fu                                        Ro
                                                                   bH

            B      Th



Hi, I’m Rob Hawkes and I’m here today to talk about Mozilla’s Boot to Gecko project.
G  )
                                                  (B m2
                                             c ko          or
                                          G e         pla
                                                         tf

                                      t to Web a   sa
                                    oo      he
                                   B       T




Boot to Gecko, referred to as B2G, is a full operating system and platform for mobile devices.
B2G                                        Gaia
B2G is actually two separate things; B2G and Gaia

The B2G side is the hardware-related stuff and JavaScript APIs that we need to make the
phone work.

The B2G side is pretty much everything that you don’t see.
Gaia is the front-end operating system and application stack that hooks into the APIs that
B2G provides.

Gaia is basically everything that you can see and interact with.
At the basic level, B2G is powered by HTML5 and JavaScript – the same technologies that you
already use to create websites.

This makes it incredibly fast. I’m talking really fast, it boots and shuts down in a fraction of
the time that an iPhone does.
G?
                                                          B2
                                                       hy     ou
                                                                t?
                                                      W uss ab
                                                               thef
                                                        is all
                                                 hat
                                                W




But why is B2G important?

Well to put it simply, HTML5 & JavaScript are the underlying technologies behind everything
related to the future of the Web.

Pretty much every new technology that is coming out within the browser-space is connected
to HTML5 and JavaScript in some way.

And what’s great is that every major browser has invested in them, so they won’t be going
anywhere any time soon.

But there’s more to it than that.
ies
                                                        log
                                                    n o         de
                                                 ch source
                                             te he
                                                              co

                                          en          t
                                        Op      nv
                                                  iew
                                              ca
                                            yone
                                          An



It is created with open technologies.

Anyone can get involved in their creation; through browser developers like Mozilla, or
through standards organisations like the W3C.

Also, these technologies are open in that anyone can view the resulting code that is used
within Web pages, which is a fantastic way of learning.
ie s
                                                         lo g
                                                    n  o           ith
                                              e c h           lop
                                                                  w

                                           e t            de
                                                            ve

                                        Fre        ree
                                                       to
                                               se.F
                                                  u
                                               to
                                          Free



It is created with free technologies.

Anyone can use these technologies without having to pay anything, both for using the
technology and developing with it.

This is unlike closed environments like iOS where you have to pay to use official code editors
and production environments.
B2G


      Firefox                                                          Persona


                                    Web Apps

B2G is also part of the Kilimanjaro event.

Kilimanjaro is a milestone across several of the Mozilla products; Firefox, B2G, Web Apps,
and Persona.

The Kilimanjaro Event is not a single release, it is an incremental effort that results in an
coherent experience across those products.

When we reach the Kilimanjaro milestone we will have an elegant and simple experience for
HTML5 Web apps in Firefox on multiple devices that puts the user in control of their apps and
identity.

‘Kilimanjaro’ is planned to be reached by September 2012.

https://wiki.mozilla.org/Kilimanjaro
Demo




I think the best way to explain B2G and to show it’s current state is to give you a quick demo.
2  G
                                                        d B
                                                     hin          ith
                                                   be       ite
                                                               sw
                                    g  y             we
                                                          bs
                               o  lo           bu
                                                 ild
                            chn         ff y
                                            ou
                          Te         stu
                                ame
                                   es
                                 Th

B2G is created from a whole variety of technologies, from pre-existing ones to brand new
ones that have been created specifically.
Firefox Gecko

The Gecko engine lays at the core of B2G, the same engine that powers Firefox.

Needless to say, B2G isn’t just Firefox running on a phone. It’s much more than that.
WebNFC
                                                                WebVibration

                                                      Battery API


                               WebSMS        Geolocation
                                                                                 WebContacts

                                                                                 Full Screen API

                WebTelephony                                                     Settings API




                                                                        WebUSB
   Multitouch                                 WebGL         Camera



                                               WebBluetooth




At Mozilla we’re working on the WebAPI effort which is our attempt at creating the APIs
needed to run a B2G device.

In other camps it might be referred to as DAP, which is the Device APIs Working Group who
are producing a W3C specification for accessing various parts of a device through JavaScript.

The illustration above shows just a few of the APIs for B2G that we’re working on right now.
tes
                                                           uri
                                                        avo         for
                                                  y    f        ait
                                                                     tw
                                                 M             Ican
                                                                   no
                                                          Is
                                                        AP
                                                  evice
                                                 D




There are so many WebAPIs and technologies in the pipeline that relate to B2G in some way.

The following are just a few of my favourites.

You can find the rest of the WebAPIs here: https://wiki.mozilla.org/WebAPI
n ts
                                                 Eve es
                                             uch       stur
                                                     ge
                                           To ch and
                                                    ou
                                               ultit
                                              M




Touch Events

https://developer.mozilla.org/en/DOM/Touch_events
PI
                                                           A
                                                       era era
                                                     am e cam
                                                    C     h
                                                               gt
                                                          essin
                                                       Acc




The Camera API lets you access the camera on a device.

Being able to do this with JavaScript will make a whole world of difference in so many areas.

For example, instead of requiring a user to upload a profile image you could take one using
the webcam and use that instead. Simple but effective.

https://wiki.mozilla.org/Platform/Features/Camera_API
P I
                                                       S   A
                                                  SM f said
                                                eb           uf
                                               W    cript
                                                         . ‘N
                                                  avaS
                                              ithJ
                                          xtsw
                                        te
                                    ing
                                  nd
                                Se

The WebSMS API isn’t the most glamorous, but the idea of sending text messages with
JavaScript is quite appealing.

https://bugzilla.mozilla.org/show_bug.cgi?id=674725
P  I
                                                   y  A
                                               o n           lls
                                           p h             ca
                                       Tele        receive

                                     eb     akea
                                                nd
                                    W      M




The WebTelephony API allows you to make and receive phone calls using JavaScript.

I can just imagine something like this being used to hook into a Web-based version of Siri
that answers your calls for you if you’re busy.

https://bugzilla.mozilla.org/show_bug.cgi?id=674726
P I
                                                 n   A
                                              tio ogies
                                         ibra       hn
                                                      ol
                                       bV       nt
                                                  ec
                                     We     ho
                                              pe
                                                 it
                                             youw
                                       ating
                                   Vibr


WebVibration API, previously known as the WebVibrator API

https://bugzilla.mozilla.org/show_bug.cgi?id=679966
P  I
                                                        C A
                                                      NF         ion
                                                    eb    un
                                                            icat
                                                   W     m
                                                              om
                                                            sc
                                                         les
                                                     wire
                                             -like
                                         RFID



The WebNFC API is pretty cool.

It gives you the ability to transmit and receive data within distances no larger than a few
centimetres.

The idea is that it can be used in phones for things like payment (like the new Barclaycard),
travel (think Oyster Card), and file transfer.

https://bugzilla.mozilla.org/show_bug.cgi?id=674741
P I
                                                  A
                                              o th are
                                        e to        dw
                                     Blu ooth h   ar
                                   eb        et
                                  W     o blu
                                            esst
                                         Acc



WebBluetooth API

https://bugzilla.mozilla.org/show_bug.cgi?id=674737
P I
                                                        A
                                                   tery       ge
                                                 at        sa
                                                B      we
                                                         ru
                                                           po
                                                     oring
                                                 onit
                                                M




Battery API

https://bugzilla.mozilla.org/show_bug.cgi?id=678694
PI
                                                          n  A
                                                    re  e           ul
                                                 Sc             we
                                                                  rf
                                             ull           et
                                                              po
                                            F      im
                                                      ple
                                                         ,y
                                                        S




The Full Screen API allows you to expand any HTML element to fill the users screen, even if
the browser isn’t running full screen itself.

https://bugzilla.mozilla.org/show_bug.cgi?id=545812
https://wiki.mozilla.org/Platform/Features/Full_Screen_APIs
io n
                                                        t
                                                     ta ion
                                                ie n
                                            O r         rie
                                                           ntat
                                         en           fo
                                     Scre     loc
                                                 kin
                                                    go
                                            d
                                                an
                                            ing
                                          ng
                                       Cha


The Screen Orientation APIs allow you to do things like changing and locking, you guessed it,
the orientation of the screen.

Before now, it’s been incredibly difficult to lock orientation on a website or game using
nothing but JavaScript.

https://bugzilla.mozilla.org/show_bug.cgi?id=740188
http://dvcs.w3.org/hg/screen-orientation/raw-file/default/Overview.html
GL
                                                           eb
                                                          W phics
                                                              ra
                                                          tedg
                                                        ra
                                                   ccele
                                               re-a
                                           rdwa
                                         Ha



WebGL brings the ability to provide advanced hardware-accelerated 2D and 3D graphics
directly within the browser.

https://developer.mozilla.org/en/WebGL
ps
                                                   A p
                                                eb atform
                                              W a pl
                                           pen eb as
                                          O   heW  t
                                                on
                                              up
                                       ilding
                                     Bu


Open Web Apps is an initiative that is core to B2G and one that is important to the Web as a
whole.

It’s a way of creating and distributing apps that puts the developers and users of apps back
in charge.

It’s a way that embraces open technology and is for the good of the Web.
ach
                                                              Re
                                                                    rm
                                                                 tfo
                                                            s-pla
                                                        cros
                                                     ed
                                                   us
                                                be
                                             an
                                           sc
                                        App



It allows you to create rich HTML5 app experiences that run across multiple devices and form
factors (desktop, mobile, tablet, etc.)
g  y
                                                      o lo
                                                 ch n           es
                                              e              sit
                                           n t         ew
                                                           eb
                                         pe        om
                                                     ak
                                        O     us
                                                et
                                           eady
                                        alr
                                     ou
                                   ty
                                Wha


It allows you to use Web standards and open technologies such as HTML5, CSS and
JavaScript.

Anything you currently use to build a website with can be used to build an app.
oice
                                                          f ch        ol
                                                         o        on
                                                                    tr
                                          o m ers in             c
                                        ed
                                     Fre d consum
                                           an
                                            vs
                                          de
                                    tting
                                  Pu

It puts you in control of every aspect of the app experience; from easy development, to
distribution, to direct communication with your customers.
The Mozilla Marketplace is our own platform for selling and distributing Web apps.

It’s in development right now but we plan to open the doors later this year.

However, there’s nothing to stop you creating your own marketplace though. All the APIs to
do that are documented and built into Firefox today. In fact, we encourage it!

https://marketplace.mozilla.org
https://developer.mozilla.org/en/Apps
te d
                                                           r
                                                       ta app
                                                   g s
                                               ttin         te
                                                               an
                                             Ge      to
                                                        crea
                                                       How




Creating a Web app isn’t crazy hard, it’s just a case of understanding the new features in
browsers.

https://developer.mozilla.org/en/Apps
tes
                                                          bsi
                                                        we     olo
                                                                  gy
                                         ar e         tec
                                                         hn
                                      ps           me
                                    Ap     et
                                              he
                                                 sa
                                         us
                                             ey
                                           Th



Apps are websites and are built using the same technology and processes.

If you already know how to make a website then creating your first Web app is a breeze.
fe st
                                                     n  i
                                                   a
                                                m o an a       pp
                                          io  n         int
                                       a t          ite
                                   plic         we
                                                  bs
                                 Ap      rninga
                                       Tu



The only thing that you need to do to turn a website into app is create an application
manifest.
{
              "version": "1.0",
              "name": "MozillaBall",
              "description": "Exciting Open Web development action!",
              "icons": {
                 "16": "/img/icon-16.png",
                 "48": "/img/icon-48.png",
                 "128": "/img/icon-128.png"
              },
              "developer": {
                 "name": "Mozilla Labs",
                 "url": "http://mozillalabs.com"
              },
              "installs_allowed_from": [
                 "https://appstore.mozillalabs.com"
              ],
              "default_locale": "en"
          }


This is a JSON file that effectively describes your application; it’s name, icons, and other
related data.
nts
                                                 e
                                          irem ember
                                     q  u
                                 t re         ttor
                                                  em

                              fes          tan
                            ni         mp
                                         or
                          Ma          I




There are a couple of important things to remember when creating an application manifest.
a in
                                                       o m ty
                                                    e d      curi
                                                  am nt of se
                                                 S    me
                                                           ele
                                                        An




The first is that it needs to be hosted from the same domain as your Web app.

This is pretty straightforward and it adds an element of security in that it is unlikely that a
rouge manifest file will be able to be put on the same domain without your knowledge.
Content-type header




       application/x-web-app-manifest+json




The second is that it needs to be served with a specific content type (application/x-web-app-
manifest+json).

This is probably the most tricky process in turning a website into an app as it involves
changing settings on your server or a bit of hackery in your manifest file.

If you don’t want to fiddle with your server then you can always set the content-type header
using something like PHP or Node.js.
to r
                                                               a
                                                            lid s ok
                                                          va
                                            st           hin
                                                                 g i

                                        nife       everyt
                                      Ma      su
                                                re
                                                 king
                                               Ma




If you want to make sure your manifest is valid you can have it checked at http://
appmanifest.org
p s
                                                         a p
                                                   lin g          ce
                                                tal          etp
                                                                la

                                             Ins        rM
                                                          ark
                                                    sero
                                                brow
                                            the
                                         gh
                                     hrou
                                    T


You can install apps in B2G through the browser or the Mozilla Marketplace.

You can also install apps on the desktop and Android using Firefox.
Installing an app




      navigator.mozApps.install(manifestUrl)




Behind the scenes, installing an app is achieved through the new mozApps JavaScript API.

By passing the ‘install’ method a string URL to the app’s manifest file you will trigger the
installation process.

An example of when you would call this method is after a user clicks on an “Install this app”
button on your own website.

It would be called automatically if your app was installed from the Mozilla Marketplace, or any
other external website.
The install method triggers an installation dialogue within the browser that allows the user to
decide what to do with the app.

On Windows, a desktop shortcut is created for the app you installed and it will also be in the
start menu.

On Mac, the app is added to your /Applications directory.

On B2G, the app is added to your homescreen.
a y
                                                       d
                                                     to ns
                                                 2 G       tio
                                            g B          op
                                         sin are a f  ew
                                        U     he
                                                re
                                                   T




There are a whole bunch of ways to start using and testing B2G today.
If you have some knowledge of git, you can clone the Gaia repository and launch Gaia using a
recent Firefox Nightly build.

Pros: 
- No build system  and very little setup required
- Can use the Firefox dev tools

Cons:
- The viewport is based on the size of the browser window
- Many device-like things won't work
- Apps are launched in separate, pinned tabs
- Firefox Nightly might be unstable

http://nightly.mozilla.org
https://github.com/andreasgal/gaia/
There is also gaia-devserver, a node-based tool for developing Gaia in Firefox Nightly.

https://github.com/jrburke/gaia-devserver
Gaia in Nightly




You’ll have to resize the browser to get it looking right but it’s a great way to quickly play
with Gaia and start developing for it.
B2G Simulator




It is also possible to build a Boot to Gecko 'simulator' and run Gaia using this application.
This software is based on Firefox but behaves similar to the on-device experience of Boot to
Gecko.

If you are familiar with building the Firefox code-base or C++ projects, you can build this
application yourself.

Pros: 
- Mobile viewport, similar experience to a mobile device in most respects
- More device apis (not all)

Cons:
- Need to install a C/C++ build system and build gecko
- The Firefox dev tools are not available

https://wiki.mozilla.org/Gaia/Hacking#Building_B2G
B2G Device




The last option is to build B2G on your own device.

This is the most difficult option and is only recommended on a spare device by someone who
knows what they’re doing.

We’re constantly improving the method of getting B2G onto your own device so we hope that
it will be a lot more reliable and safer in the near future.

https://developer.mozilla.org/en/Mozilla/Boot_to_Gecko#Setting_up_.
26_building_Boot_to_Gecko
e ry
                                                         ack ce
                                                    ia h         de
                                                                   vi
                                                  Ga        ha
                                                              ck
                                                        the
                                                       to
                                                    ps
                                                  ap
                                             hing
                                          Pus



The 10 devices that we’ve brought along for you today are already set up ready to have
applications pushed to them and things tweaked.

To do that you’ll need to plug the device into your computer and directly push updates to it.

This approach is useful for development as it allows you to quickly test things without having
to upload the app to the Web and installing or updating it from there.

https://wiki.mozilla.org/B2G/DeveloperPhone#Advanced_Gaia_Hacking
The first thing you need is the Android Debug Bridge.

This allows you to communicate between your computer and the B2G device via a USB cable.

http://developer.android.com/sdk/index.html
Dev installation




         https://github.com/andreasgal/gaia/




The next step, if you haven’t got it already, is to download Gaia from GitHub.

The very latest version may be unstable so it’s recommended to use the build that we’ve
brought along and can provide you on a memory stick.

https://github.com/andreasgal/gaia/
Dev installation




             Add app to ‘../gaia/apps/myapp’




Once you have Gaia then add or create your application in the ‘../gaia/apps/myapp’
directory.

Make sure to include the application manifest file.
Dev installation




                            make install-gaia




The last step is to push your app and any Gaia updates to the device.

That’s it!
2 G
                                                         B
                                                 g   to ture
                                          u t in          he
                                                             fu
                                        ib              et
                                     ntr           cre
                                                      at
                                   Co      an
                                              help
                                         uc
                                            Yo



There are plenty of ways to get involved with B2G, from development all the way to general
testing.

The best way to keep up to speed with things is to frequent the B2G mailing lists.

- https://lists.mozilla.org/listinfo/community-b2g
- https://groups.google.com/forum/#!forum/mozilla.dev.b2g

If you want to help with development then the best place to do that is on the B2G and Gaia
GitHub repositories.

- https://github.com/andreasgal/B2G/
- https://github.com/andreasgal/gaia/
u  s
                                                           lk to C
                                                         Ta       illa
                                                                       IR
                                                                oz
                                                                 M
                                                              on
                                                        elive
                                                       W




The general rule of thumb at Mozilla is to look for the relevant people on IRC if you want a
quick response, we tend to live on there.

The server you want is irc.mozilla.org

The channels you want are #b2g and #gaia for B2G-related stuff, #openwebapps for Open
Web Apps, and #webapi for anything about WebAPIs.
ol
                                            g  co
                                    th begin inning
                               m  e
                           f so         jus
                                           tthe

                       ld o       is is
                      o         Th

                  resh
                Th
I think it’s amazing that we can now build an entire operating system for a phone using Web
technologies. It just blows my mind.

We really are on the threshold of something awesome here.

I definitely advise you to start checking out B2G and the related projects, developing for
them, and helping with their development.

I’d love to see a day where all sorts of devices are powered by the Web, like TVs and set-top
boxes.

Perhaps we’ll even get those Internet-enabled fridges that we desire so much!
U
                               O r
                             Y te
                           K e la
                          N m
                         A rab
                       TH ?G                                           es
                                                                     wk es
                                                                   Ha wk
                                                                 ob ha
                                                                R b
                              ion                                @ro

                           est
                         Qu

Thank you.

If you have any questions feel free to grab me here, on Twitter (@robhawkes)

Mais conteúdo relacionado

Destaque

Lovely Animals Nearby The North Pole
Lovely Animals Nearby The North PoleLovely Animals Nearby The North Pole
Lovely Animals Nearby The North Poleyangbqada
 
050531 Presentation Info 2005
050531 Presentation Info 2005050531 Presentation Info 2005
050531 Presentation Info 2005Dov Winer
 
Learning Objects: Achievements and frustrations in a leading initiative - the...
Learning Objects: Achievements and frustrations in a leading initiative - the...Learning Objects: Achievements and frustrations in a leading initiative - the...
Learning Objects: Achievements and frustrations in a leading initiative - the...Dov Winer
 
ILO's Master Trainers Training Prg Pics
ILO's Master Trainers Training Prg PicsILO's Master Trainers Training Prg Pics
ILO's Master Trainers Training Prg PicsSeena Chatterjee
 
040806 Minerva Lund Isoc
040806 Minerva Lund Isoc040806 Minerva Lund Isoc
040806 Minerva Lund IsocDov Winer
 
Samsung YP-U4 Bilder
Samsung YP-U4 BilderSamsung YP-U4 Bilder
Samsung YP-U4 Bilderjulia135
 
040126 Content Weg Meital Presentation
040126 Content Weg Meital Presentation040126 Content Weg Meital Presentation
040126 Content Weg Meital PresentationDov Winer
 
งานนำเสนอ1
งานนำเสนอ1งานนำเสนอ1
งานนำเสนอ1wannis
 
ViziCities: Making SimCity for the Real World
ViziCities: Making SimCity for the Real WorldViziCities: Making SimCity for the Real World
ViziCities: Making SimCity for the Real WorldRobin Hawkes
 
MA J Dammes so443050 - It Came from A Dunia Lain
MA J Dammes   so443050 - It Came from A Dunia LainMA J Dammes   so443050 - It Came from A Dunia Lain
MA J Dammes so443050 - It Came from A Dunia LainNur Agustinus
 
030714 Vaadat Internet Jafi Pedagogia
030714 Vaadat Internet Jafi Pedagogia030714 Vaadat Internet Jafi Pedagogia
030714 Vaadat Internet Jafi PedagogiaDov Winer
 
061112 Eva Minerva2006 Final
061112 Eva Minerva2006 Final061112 Eva Minerva2006 Final
061112 Eva Minerva2006 FinalDov Winer
 
Learning sessions #5 pre incubator - BooTown
Learning sessions #5 pre incubator - BooTownLearning sessions #5 pre incubator - BooTown
Learning sessions #5 pre incubator - BooTownjvielman
 

Destaque (20)

Lovely Animals Nearby The North Pole
Lovely Animals Nearby The North PoleLovely Animals Nearby The North Pole
Lovely Animals Nearby The North Pole
 
050531 Presentation Info 2005
050531 Presentation Info 2005050531 Presentation Info 2005
050531 Presentation Info 2005
 
Learning Objects: Achievements and frustrations in a leading initiative - the...
Learning Objects: Achievements and frustrations in a leading initiative - the...Learning Objects: Achievements and frustrations in a leading initiative - the...
Learning Objects: Achievements and frustrations in a leading initiative - the...
 
ILO's Master Trainers Training Prg Pics
ILO's Master Trainers Training Prg PicsILO's Master Trainers Training Prg Pics
ILO's Master Trainers Training Prg Pics
 
040806 Minerva Lund Isoc
040806 Minerva Lund Isoc040806 Minerva Lund Isoc
040806 Minerva Lund Isoc
 
Samsung YP-U4 Bilder
Samsung YP-U4 BilderSamsung YP-U4 Bilder
Samsung YP-U4 Bilder
 
040126 Content Weg Meital Presentation
040126 Content Weg Meital Presentation040126 Content Weg Meital Presentation
040126 Content Weg Meital Presentation
 
Damas
DamasDamas
Damas
 
งานนำเสนอ1
งานนำเสนอ1งานนำเสนอ1
งานนำเสนอ1
 
Mars
MarsMars
Mars
 
Eesti Rahatähed
Eesti RahatähedEesti Rahatähed
Eesti Rahatähed
 
ViziCities: Making SimCity for the Real World
ViziCities: Making SimCity for the Real WorldViziCities: Making SimCity for the Real World
ViziCities: Making SimCity for the Real World
 
MA J Dammes so443050 - It Came from A Dunia Lain
MA J Dammes   so443050 - It Came from A Dunia LainMA J Dammes   so443050 - It Came from A Dunia Lain
MA J Dammes so443050 - It Came from A Dunia Lain
 
030714 Vaadat Internet Jafi Pedagogia
030714 Vaadat Internet Jafi Pedagogia030714 Vaadat Internet Jafi Pedagogia
030714 Vaadat Internet Jafi Pedagogia
 
Good behaviors
Good behaviorsGood behaviors
Good behaviors
 
061112 Eva Minerva2006 Final
061112 Eva Minerva2006 Final061112 Eva Minerva2006 Final
061112 Eva Minerva2006 Final
 
Keaksaraan sebagai fondasi pendidikan nasional
Keaksaraan sebagai fondasi pendidikan nasional Keaksaraan sebagai fondasi pendidikan nasional
Keaksaraan sebagai fondasi pendidikan nasional
 
Learning sessions #5 pre incubator - BooTown
Learning sessions #5 pre incubator - BooTownLearning sessions #5 pre incubator - BooTown
Learning sessions #5 pre incubator - BooTown
 
MongoDB
MongoDBMongoDB
MongoDB
 
Talent Revolution Workshop
Talent Revolution WorkshopTalent Revolution Workshop
Talent Revolution Workshop
 

Mais de Robin Hawkes

ViziCities - Lessons Learnt Visualising Real-world Cities in 3D
ViziCities - Lessons Learnt Visualising Real-world Cities in 3DViziCities - Lessons Learnt Visualising Real-world Cities in 3D
ViziCities - Lessons Learnt Visualising Real-world Cities in 3DRobin Hawkes
 
Understanding cities using ViziCities and 3D data visualisation
Understanding cities using ViziCities and 3D data visualisationUnderstanding cities using ViziCities and 3D data visualisation
Understanding cities using ViziCities and 3D data visualisationRobin Hawkes
 
Calculating building heights using a phone camera
Calculating building heights using a phone cameraCalculating building heights using a phone camera
Calculating building heights using a phone cameraRobin Hawkes
 
WebVisions – ViziCities: Bringing Cities to Life Using Big Data
WebVisions – ViziCities: Bringing Cities to Life Using Big DataWebVisions – ViziCities: Bringing Cities to Life Using Big Data
WebVisions – ViziCities: Bringing Cities to Life Using Big DataRobin Hawkes
 
Understanding cities using ViziCities and 3D data visualisation
Understanding cities using ViziCities and 3D data visualisationUnderstanding cities using ViziCities and 3D data visualisation
Understanding cities using ViziCities and 3D data visualisationRobin Hawkes
 
ViziCities: Creating Real-World Cities in 3D using OpenStreetMap and WebGL
ViziCities: Creating Real-World Cities in 3D using OpenStreetMap and WebGLViziCities: Creating Real-World Cities in 3D using OpenStreetMap and WebGL
ViziCities: Creating Real-World Cities in 3D using OpenStreetMap and WebGLRobin Hawkes
 
Beautiful Data Visualisation & D3
Beautiful Data Visualisation & D3Beautiful Data Visualisation & D3
Beautiful Data Visualisation & D3Robin Hawkes
 
The State of WebRTC
The State of WebRTCThe State of WebRTC
The State of WebRTCRobin Hawkes
 
Bringing Cities to Life Using Big Data & WebGL
Bringing Cities to Life Using Big Data & WebGLBringing Cities to Life Using Big Data & WebGL
Bringing Cities to Life Using Big Data & WebGLRobin Hawkes
 
Mobile App Development - Pitfalls & Helpers
Mobile App Development - Pitfalls & HelpersMobile App Development - Pitfalls & Helpers
Mobile App Development - Pitfalls & HelpersRobin Hawkes
 
Mozilla Firefox: Present and Future - Fluent JS
Mozilla Firefox: Present and Future - Fluent JSMozilla Firefox: Present and Future - Fluent JS
Mozilla Firefox: Present and Future - Fluent JSRobin Hawkes
 
The State of HTML5 Games - Fluent JS
The State of HTML5 Games - Fluent JSThe State of HTML5 Games - Fluent JS
The State of HTML5 Games - Fluent JSRobin Hawkes
 
HTML5 Technologies for Game Development - Web Directions Code
HTML5 Technologies for Game Development - Web Directions CodeHTML5 Technologies for Game Development - Web Directions Code
HTML5 Technologies for Game Development - Web Directions CodeRobin Hawkes
 
MelbJS - Inside Rawkets
MelbJS - Inside RawketsMelbJS - Inside Rawkets
MelbJS - Inside RawketsRobin Hawkes
 
MDN Hackday London - Open Web Games with HTML5 & JavaScript
MDN Hackday London - Open Web Games with HTML5 & JavaScriptMDN Hackday London - Open Web Games with HTML5 & JavaScript
MDN Hackday London - Open Web Games with HTML5 & JavaScriptRobin Hawkes
 
HTML5 Games - Not Just for Gamers
HTML5 Games - Not Just for GamersHTML5 Games - Not Just for Gamers
HTML5 Games - Not Just for GamersRobin Hawkes
 
NY HTML5 - Game Development with HTML5 & JavaScript
NY HTML5 - Game Development with HTML5 & JavaScriptNY HTML5 - Game Development with HTML5 & JavaScript
NY HTML5 - Game Development with HTML5 & JavaScriptRobin Hawkes
 
Open Web Games with HTML5 & JavaScript
Open Web Games with HTML5 & JavaScriptOpen Web Games with HTML5 & JavaScript
Open Web Games with HTML5 & JavaScriptRobin Hawkes
 
Open Web Games with HTML5 & JavaScript
Open Web Games with HTML5 & JavaScriptOpen Web Games with HTML5 & JavaScript
Open Web Games with HTML5 & JavaScriptRobin Hawkes
 
Open Web Apps and the Mozilla Labs Apps project
Open Web Apps and the Mozilla Labs Apps projectOpen Web Apps and the Mozilla Labs Apps project
Open Web Apps and the Mozilla Labs Apps projectRobin Hawkes
 

Mais de Robin Hawkes (20)

ViziCities - Lessons Learnt Visualising Real-world Cities in 3D
ViziCities - Lessons Learnt Visualising Real-world Cities in 3DViziCities - Lessons Learnt Visualising Real-world Cities in 3D
ViziCities - Lessons Learnt Visualising Real-world Cities in 3D
 
Understanding cities using ViziCities and 3D data visualisation
Understanding cities using ViziCities and 3D data visualisationUnderstanding cities using ViziCities and 3D data visualisation
Understanding cities using ViziCities and 3D data visualisation
 
Calculating building heights using a phone camera
Calculating building heights using a phone cameraCalculating building heights using a phone camera
Calculating building heights using a phone camera
 
WebVisions – ViziCities: Bringing Cities to Life Using Big Data
WebVisions – ViziCities: Bringing Cities to Life Using Big DataWebVisions – ViziCities: Bringing Cities to Life Using Big Data
WebVisions – ViziCities: Bringing Cities to Life Using Big Data
 
Understanding cities using ViziCities and 3D data visualisation
Understanding cities using ViziCities and 3D data visualisationUnderstanding cities using ViziCities and 3D data visualisation
Understanding cities using ViziCities and 3D data visualisation
 
ViziCities: Creating Real-World Cities in 3D using OpenStreetMap and WebGL
ViziCities: Creating Real-World Cities in 3D using OpenStreetMap and WebGLViziCities: Creating Real-World Cities in 3D using OpenStreetMap and WebGL
ViziCities: Creating Real-World Cities in 3D using OpenStreetMap and WebGL
 
Beautiful Data Visualisation & D3
Beautiful Data Visualisation & D3Beautiful Data Visualisation & D3
Beautiful Data Visualisation & D3
 
The State of WebRTC
The State of WebRTCThe State of WebRTC
The State of WebRTC
 
Bringing Cities to Life Using Big Data & WebGL
Bringing Cities to Life Using Big Data & WebGLBringing Cities to Life Using Big Data & WebGL
Bringing Cities to Life Using Big Data & WebGL
 
Mobile App Development - Pitfalls & Helpers
Mobile App Development - Pitfalls & HelpersMobile App Development - Pitfalls & Helpers
Mobile App Development - Pitfalls & Helpers
 
Mozilla Firefox: Present and Future - Fluent JS
Mozilla Firefox: Present and Future - Fluent JSMozilla Firefox: Present and Future - Fluent JS
Mozilla Firefox: Present and Future - Fluent JS
 
The State of HTML5 Games - Fluent JS
The State of HTML5 Games - Fluent JSThe State of HTML5 Games - Fluent JS
The State of HTML5 Games - Fluent JS
 
HTML5 Technologies for Game Development - Web Directions Code
HTML5 Technologies for Game Development - Web Directions CodeHTML5 Technologies for Game Development - Web Directions Code
HTML5 Technologies for Game Development - Web Directions Code
 
MelbJS - Inside Rawkets
MelbJS - Inside RawketsMelbJS - Inside Rawkets
MelbJS - Inside Rawkets
 
MDN Hackday London - Open Web Games with HTML5 & JavaScript
MDN Hackday London - Open Web Games with HTML5 & JavaScriptMDN Hackday London - Open Web Games with HTML5 & JavaScript
MDN Hackday London - Open Web Games with HTML5 & JavaScript
 
HTML5 Games - Not Just for Gamers
HTML5 Games - Not Just for GamersHTML5 Games - Not Just for Gamers
HTML5 Games - Not Just for Gamers
 
NY HTML5 - Game Development with HTML5 & JavaScript
NY HTML5 - Game Development with HTML5 & JavaScriptNY HTML5 - Game Development with HTML5 & JavaScript
NY HTML5 - Game Development with HTML5 & JavaScript
 
Open Web Games with HTML5 & JavaScript
Open Web Games with HTML5 & JavaScriptOpen Web Games with HTML5 & JavaScript
Open Web Games with HTML5 & JavaScript
 
Open Web Games with HTML5 & JavaScript
Open Web Games with HTML5 & JavaScriptOpen Web Games with HTML5 & JavaScript
Open Web Games with HTML5 & JavaScript
 
Open Web Apps and the Mozilla Labs Apps project
Open Web Apps and the Mozilla Labs Apps projectOpen Web Apps and the Mozilla Labs Apps project
Open Web Apps and the Mozilla Labs Apps project
 

Último

From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 

Último (20)

From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 

B2G: An Introduction to Mozilla's Boot to Gecko Project

  • 1. K O E C ile? O G of mo b T T ture aw kes OO e fu Ro bH B Th Hi, I’m Rob Hawkes and I’m here today to talk about Mozilla’s Boot to Gecko project.
  • 2. G ) (B m2 c ko or G e pla tf t to Web a sa oo he B T Boot to Gecko, referred to as B2G, is a full operating system and platform for mobile devices.
  • 3. B2G Gaia B2G is actually two separate things; B2G and Gaia The B2G side is the hardware-related stuff and JavaScript APIs that we need to make the phone work. The B2G side is pretty much everything that you don’t see.
  • 4. Gaia is the front-end operating system and application stack that hooks into the APIs that B2G provides. Gaia is basically everything that you can see and interact with.
  • 5. At the basic level, B2G is powered by HTML5 and JavaScript – the same technologies that you already use to create websites. This makes it incredibly fast. I’m talking really fast, it boots and shuts down in a fraction of the time that an iPhone does.
  • 6. G? B2 hy ou t? W uss ab thef is all hat W But why is B2G important? Well to put it simply, HTML5 & JavaScript are the underlying technologies behind everything related to the future of the Web. Pretty much every new technology that is coming out within the browser-space is connected to HTML5 and JavaScript in some way. And what’s great is that every major browser has invested in them, so they won’t be going anywhere any time soon. But there’s more to it than that.
  • 7. ies log n o de ch source te he co en t Op nv iew ca yone An It is created with open technologies. Anyone can get involved in their creation; through browser developers like Mozilla, or through standards organisations like the W3C. Also, these technologies are open in that anyone can view the resulting code that is used within Web pages, which is a fantastic way of learning.
  • 8. ie s lo g n o ith e c h lop w e t de ve Fre ree to se.F u to Free It is created with free technologies. Anyone can use these technologies without having to pay anything, both for using the technology and developing with it. This is unlike closed environments like iOS where you have to pay to use official code editors and production environments.
  • 9. B2G Firefox Persona Web Apps B2G is also part of the Kilimanjaro event. Kilimanjaro is a milestone across several of the Mozilla products; Firefox, B2G, Web Apps, and Persona. The Kilimanjaro Event is not a single release, it is an incremental effort that results in an coherent experience across those products. When we reach the Kilimanjaro milestone we will have an elegant and simple experience for HTML5 Web apps in Firefox on multiple devices that puts the user in control of their apps and identity. ‘Kilimanjaro’ is planned to be reached by September 2012. https://wiki.mozilla.org/Kilimanjaro
  • 10. Demo I think the best way to explain B2G and to show it’s current state is to give you a quick demo.
  • 11. 2 G d B hin ith be ite sw g y we bs o lo bu ild chn ff y ou Te stu ame es Th B2G is created from a whole variety of technologies, from pre-existing ones to brand new ones that have been created specifically.
  • 12. Firefox Gecko The Gecko engine lays at the core of B2G, the same engine that powers Firefox. Needless to say, B2G isn’t just Firefox running on a phone. It’s much more than that.
  • 13. WebNFC WebVibration Battery API WebSMS Geolocation WebContacts Full Screen API WebTelephony Settings API WebUSB Multitouch WebGL Camera WebBluetooth At Mozilla we’re working on the WebAPI effort which is our attempt at creating the APIs needed to run a B2G device. In other camps it might be referred to as DAP, which is the Device APIs Working Group who are producing a W3C specification for accessing various parts of a device through JavaScript. The illustration above shows just a few of the APIs for B2G that we’re working on right now.
  • 14. tes uri avo for y f ait tw M Ican no Is AP evice D There are so many WebAPIs and technologies in the pipeline that relate to B2G in some way. The following are just a few of my favourites. You can find the rest of the WebAPIs here: https://wiki.mozilla.org/WebAPI
  • 15. n ts Eve es uch stur ge To ch and ou ultit M Touch Events https://developer.mozilla.org/en/DOM/Touch_events
  • 16. PI A era era am e cam C h gt essin Acc The Camera API lets you access the camera on a device. Being able to do this with JavaScript will make a whole world of difference in so many areas. For example, instead of requiring a user to upload a profile image you could take one using the webcam and use that instead. Simple but effective. https://wiki.mozilla.org/Platform/Features/Camera_API
  • 17. P I S A SM f said eb uf W cript . ‘N avaS ithJ xtsw te ing nd Se The WebSMS API isn’t the most glamorous, but the idea of sending text messages with JavaScript is quite appealing. https://bugzilla.mozilla.org/show_bug.cgi?id=674725
  • 18. P I y A o n lls p h ca Tele receive eb akea nd W M The WebTelephony API allows you to make and receive phone calls using JavaScript. I can just imagine something like this being used to hook into a Web-based version of Siri that answers your calls for you if you’re busy. https://bugzilla.mozilla.org/show_bug.cgi?id=674726
  • 19. P I n A tio ogies ibra hn ol bV nt ec We ho pe it youw ating Vibr WebVibration API, previously known as the WebVibrator API https://bugzilla.mozilla.org/show_bug.cgi?id=679966
  • 20. P I C A NF ion eb un icat W m om sc les wire -like RFID The WebNFC API is pretty cool. It gives you the ability to transmit and receive data within distances no larger than a few centimetres. The idea is that it can be used in phones for things like payment (like the new Barclaycard), travel (think Oyster Card), and file transfer. https://bugzilla.mozilla.org/show_bug.cgi?id=674741
  • 21. P I A o th are e to dw Blu ooth h ar eb et W o blu esst Acc WebBluetooth API https://bugzilla.mozilla.org/show_bug.cgi?id=674737
  • 22. P I A tery ge at sa B we ru po oring onit M Battery API https://bugzilla.mozilla.org/show_bug.cgi?id=678694
  • 23. PI n A re e ul Sc we rf ull et po F im ple ,y S The Full Screen API allows you to expand any HTML element to fill the users screen, even if the browser isn’t running full screen itself. https://bugzilla.mozilla.org/show_bug.cgi?id=545812 https://wiki.mozilla.org/Platform/Features/Full_Screen_APIs
  • 24. io n t ta ion ie n O r rie ntat en fo Scre loc kin go d an ing ng Cha The Screen Orientation APIs allow you to do things like changing and locking, you guessed it, the orientation of the screen. Before now, it’s been incredibly difficult to lock orientation on a website or game using nothing but JavaScript. https://bugzilla.mozilla.org/show_bug.cgi?id=740188 http://dvcs.w3.org/hg/screen-orientation/raw-file/default/Overview.html
  • 25. GL eb W phics ra tedg ra ccele re-a rdwa Ha WebGL brings the ability to provide advanced hardware-accelerated 2D and 3D graphics directly within the browser. https://developer.mozilla.org/en/WebGL
  • 26. ps A p eb atform W a pl pen eb as O heW t on up ilding Bu Open Web Apps is an initiative that is core to B2G and one that is important to the Web as a whole. It’s a way of creating and distributing apps that puts the developers and users of apps back in charge. It’s a way that embraces open technology and is for the good of the Web.
  • 27. ach Re rm tfo s-pla cros ed us be an sc App It allows you to create rich HTML5 app experiences that run across multiple devices and form factors (desktop, mobile, tablet, etc.)
  • 28. g y o lo ch n es e sit n t ew eb pe om ak O us et eady alr ou ty Wha It allows you to use Web standards and open technologies such as HTML5, CSS and JavaScript. Anything you currently use to build a website with can be used to build an app.
  • 29. oice f ch ol o on tr o m ers in c ed Fre d consum an vs de tting Pu It puts you in control of every aspect of the app experience; from easy development, to distribution, to direct communication with your customers.
  • 30. The Mozilla Marketplace is our own platform for selling and distributing Web apps. It’s in development right now but we plan to open the doors later this year. However, there’s nothing to stop you creating your own marketplace though. All the APIs to do that are documented and built into Firefox today. In fact, we encourage it! https://marketplace.mozilla.org https://developer.mozilla.org/en/Apps
  • 31. te d r ta app g s ttin te an Ge to crea How Creating a Web app isn’t crazy hard, it’s just a case of understanding the new features in browsers. https://developer.mozilla.org/en/Apps
  • 32. tes bsi we olo gy ar e tec hn ps me Ap et he sa us ey Th Apps are websites and are built using the same technology and processes. If you already know how to make a website then creating your first Web app is a breeze.
  • 33. fe st n i a m o an a pp io n int a t ite plic we bs Ap rninga Tu The only thing that you need to do to turn a website into app is create an application manifest.
  • 34. { "version": "1.0", "name": "MozillaBall", "description": "Exciting Open Web development action!", "icons": { "16": "/img/icon-16.png", "48": "/img/icon-48.png", "128": "/img/icon-128.png" }, "developer": { "name": "Mozilla Labs", "url": "http://mozillalabs.com" }, "installs_allowed_from": [ "https://appstore.mozillalabs.com" ], "default_locale": "en" } This is a JSON file that effectively describes your application; it’s name, icons, and other related data.
  • 35. nts e irem ember q u t re ttor em fes tan ni mp or Ma I There are a couple of important things to remember when creating an application manifest.
  • 36. a in o m ty e d curi am nt of se S me ele An The first is that it needs to be hosted from the same domain as your Web app. This is pretty straightforward and it adds an element of security in that it is unlikely that a rouge manifest file will be able to be put on the same domain without your knowledge.
  • 37. Content-type header application/x-web-app-manifest+json The second is that it needs to be served with a specific content type (application/x-web-app- manifest+json). This is probably the most tricky process in turning a website into an app as it involves changing settings on your server or a bit of hackery in your manifest file. If you don’t want to fiddle with your server then you can always set the content-type header using something like PHP or Node.js.
  • 38. to r a lid s ok va st hin g i nife everyt Ma su re king Ma If you want to make sure your manifest is valid you can have it checked at http:// appmanifest.org
  • 39. p s a p lin g ce tal etp la Ins rM ark sero brow the gh hrou T You can install apps in B2G through the browser or the Mozilla Marketplace. You can also install apps on the desktop and Android using Firefox.
  • 40. Installing an app navigator.mozApps.install(manifestUrl) Behind the scenes, installing an app is achieved through the new mozApps JavaScript API. By passing the ‘install’ method a string URL to the app’s manifest file you will trigger the installation process. An example of when you would call this method is after a user clicks on an “Install this app” button on your own website. It would be called automatically if your app was installed from the Mozilla Marketplace, or any other external website.
  • 41. The install method triggers an installation dialogue within the browser that allows the user to decide what to do with the app. On Windows, a desktop shortcut is created for the app you installed and it will also be in the start menu. On Mac, the app is added to your /Applications directory. On B2G, the app is added to your homescreen.
  • 42. a y d to ns 2 G tio g B op sin are a f ew U he re T There are a whole bunch of ways to start using and testing B2G today.
  • 43. If you have some knowledge of git, you can clone the Gaia repository and launch Gaia using a recent Firefox Nightly build. Pros:  - No build system  and very little setup required - Can use the Firefox dev tools Cons: - The viewport is based on the size of the browser window - Many device-like things won't work - Apps are launched in separate, pinned tabs - Firefox Nightly might be unstable http://nightly.mozilla.org https://github.com/andreasgal/gaia/
  • 44. There is also gaia-devserver, a node-based tool for developing Gaia in Firefox Nightly. https://github.com/jrburke/gaia-devserver
  • 45. Gaia in Nightly You’ll have to resize the browser to get it looking right but it’s a great way to quickly play with Gaia and start developing for it.
  • 46. B2G Simulator It is also possible to build a Boot to Gecko 'simulator' and run Gaia using this application. This software is based on Firefox but behaves similar to the on-device experience of Boot to Gecko. If you are familiar with building the Firefox code-base or C++ projects, you can build this application yourself. Pros:  - Mobile viewport, similar experience to a mobile device in most respects - More device apis (not all) Cons: - Need to install a C/C++ build system and build gecko - The Firefox dev tools are not available https://wiki.mozilla.org/Gaia/Hacking#Building_B2G
  • 47. B2G Device The last option is to build B2G on your own device. This is the most difficult option and is only recommended on a spare device by someone who knows what they’re doing. We’re constantly improving the method of getting B2G onto your own device so we hope that it will be a lot more reliable and safer in the near future. https://developer.mozilla.org/en/Mozilla/Boot_to_Gecko#Setting_up_. 26_building_Boot_to_Gecko
  • 48. e ry ack ce ia h de vi Ga ha ck the to ps ap hing Pus The 10 devices that we’ve brought along for you today are already set up ready to have applications pushed to them and things tweaked. To do that you’ll need to plug the device into your computer and directly push updates to it. This approach is useful for development as it allows you to quickly test things without having to upload the app to the Web and installing or updating it from there. https://wiki.mozilla.org/B2G/DeveloperPhone#Advanced_Gaia_Hacking
  • 49. The first thing you need is the Android Debug Bridge. This allows you to communicate between your computer and the B2G device via a USB cable. http://developer.android.com/sdk/index.html
  • 50. Dev installation https://github.com/andreasgal/gaia/ The next step, if you haven’t got it already, is to download Gaia from GitHub. The very latest version may be unstable so it’s recommended to use the build that we’ve brought along and can provide you on a memory stick. https://github.com/andreasgal/gaia/
  • 51. Dev installation Add app to ‘../gaia/apps/myapp’ Once you have Gaia then add or create your application in the ‘../gaia/apps/myapp’ directory. Make sure to include the application manifest file.
  • 52. Dev installation make install-gaia The last step is to push your app and any Gaia updates to the device. That’s it!
  • 53. 2 G B g to ture u t in he fu ib et ntr cre at Co an help uc Yo There are plenty of ways to get involved with B2G, from development all the way to general testing. The best way to keep up to speed with things is to frequent the B2G mailing lists. - https://lists.mozilla.org/listinfo/community-b2g - https://groups.google.com/forum/#!forum/mozilla.dev.b2g If you want to help with development then the best place to do that is on the B2G and Gaia GitHub repositories. - https://github.com/andreasgal/B2G/ - https://github.com/andreasgal/gaia/
  • 54. u s lk to C Ta illa IR oz M on elive W The general rule of thumb at Mozilla is to look for the relevant people on IRC if you want a quick response, we tend to live on there. The server you want is irc.mozilla.org The channels you want are #b2g and #gaia for B2G-related stuff, #openwebapps for Open Web Apps, and #webapi for anything about WebAPIs.
  • 55. ol g co th begin inning m e f so jus tthe ld o is is o Th resh Th I think it’s amazing that we can now build an entire operating system for a phone using Web technologies. It just blows my mind. We really are on the threshold of something awesome here. I definitely advise you to start checking out B2G and the related projects, developing for them, and helping with their development. I’d love to see a day where all sorts of devices are powered by the Web, like TVs and set-top boxes. Perhaps we’ll even get those Internet-enabled fridges that we desire so much!
  • 56. U O r Y te K e la N m A rab TH ?G es wk es Ha wk ob ha R b ion @ro est Qu Thank you. If you have any questions feel free to grab me here, on Twitter (@robhawkes)