SlideShare une entreprise Scribd logo
1  sur  54
Télécharger pour lire hors ligne
P S
                         AP ject
                  E  B      s pro
               N W s Ap    p
                                                                    aw
                                                                      kes

             PE       Lab                                       Ro
                                                                  bH

            O Mozilla



Hi, I’m Rob Hawkes and I’m going to talk about the Mozilla Labs Apps project and what it
means for the Web.
I work at Mozilla, a non-profit company who is fighting for a better Web.

If you’re unsure about how much I love Mozilla then check out this beautiful chicken and leek
pie with extra Firefox goodness.

It was made by my talented girlfriend and it was delicious.
My official job title is Technical Evangelist but I prefer what it says on my business card.

Part of my job is to engage with developers and designers like you and I about cool new
technologies on the Web.

I’m interested in everything that’s going on but my particular focus at Mozilla is on game
development using Web technologies.

And for those of you with no idea of what a rawket is, I made a multiplayer game called
Rawkets in which players fly around in little rockets and shoot each other in the face with
HTML5 and JavaScript.

It’s actually quite fun!

http://rawkets.com
We might have enough time for questions at the end but feel free to grab me in person after
this talk or on Twitter. I’m always happy to help.

These slides will go online after this talk and they’ll be available from my personal website.

I’ll put all the details up at the end.
Created by Phil Banks (@emirpprime)


Now, it’s no secret that I spend most of my time experimenting with HTML5 and other cool
technologies like JavaScript.

If you’ve met me before then you probably already know about my slight addiction to HTML5
canvas, visual programming, and gaming.
The concept of Web apps is something that is gaining a lot of traction at the moment.

No doubt this is as a result of the success of native applications on the desktop and mobile,
particularly with iOS and Android.

What’s exciting is that HTML5 and JavaScript are now allowing developers to create app
experiences on the Web that can rival those on the desktop and mobile.

But just having the technology isn’t good enough.
ion
                                                              at
                                                          situ etter
                                              nt           be
                                                                  b
                                           rre        ou
                                                        ld
                                         Cu      ing
                                                    sc
                                               Th




Currently, app platforms are predominantly closed in either the technology required to make
the apps or the methods that are used to distribute them.

Although these approaches do have their benefits they also put unnecessary constraints on
the developers and users of apps.

It’s also not an ideal solution if we want an open Web.
je ct
                                            p ro eb
                                       p s            W
                                   A p           fthe
                                bs         good
                                                o
                              La      rthe
                        zilla       Fo

                      Mo

At Mozilla we think there is a better way, a way that puts the developers and users of apps
back in charge.

We think there is a way that embraces open technology and is for the good of the Web.

We call it the Mozilla Labs Apps project and we’re working hard to make it a reality.
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.
ie w
                                                    rev
                                               r p          wo
                                                              rk
                                           p e            nd
                                       velo        theg
                                                       rou

                                     De      aying
                                            L




Right now we’re in a limited Developer Preview to lay the groundwork and test things but
we’ll soon be opening that up so more people can try it out.
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.
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.
s ite
                                                  e b
                                            e  w             ap
                                                               ps
                                         th              for
                                    in g         on
                                                   ality
                                nd         fun
                                              cti

                            Exte g new
                                  ddin
                                        A


The Mozilla Labs Apps project proposes some additions to standard websites and introduces
a few new JavaScripts APIs into the browser that help make apps an experience unlike any
other on the Web.

If you don’t know JavaScript then don’t be put off, the amount that’s needed to make an app
is relatively small and should make sense to you.

However, I would definitely advise learning JavaScript development if you’re planning on
getting really involved in Web apps.
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.
Extension




                    my-manifest-file.webapp




It’s also recommended that the manifest file has an extension of .webapp, although this isn’t
enforced.
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          er
                                                 tal          bro
                                                                 ws
                                              Ins        nt
                                                           he
                                                      oni
                                                   so
                                                nd
                                              na
                                           sio
                                       xten
                                   Viae


You can install and manage apps using an extension for Firefox on the desktop and an
application for Android.

We’re working on building the necessary functionality directly into Firefox, as well as
providing a JavaScript include that can be used in other browsers.

https://addons.mozilla.org/en-US/firefox/addon/app-runtime/
https://apps.mozillalabs.com/bin/Soup-0.1.apk
Installing an app




      navigator.mozApps.install(manifestUrl)




Installing an app is achieved through the new mozApps JavaScript API, particularly the install
method.

By passing it 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.
The install method triggers an installation dialogue within the browser that allows the user to
decide what to do with the app.
When installed, apps can be accessed and managed via a special dashboard during the
developer preview.

This is available by accessing https://myapps.mozillalabs.com or clicking on the Apps link at
the bottom of the Firefox window.
Apps launched from the dashboard are opened in an application tab at the far left-hand side
of the tab bar.

An application tab is different in that it has a much smaller visual footprint in the tab bar and
there is little browser UI cluttering the screen, like the address bar.
ion
                                                            u  t
                                                        trib         ey
                                                     Dis        dm
                                                                   on
                                                            s an
                                                           tore
                                                         ps
                                                       Ap




Creating an app is only half the story, the final chapter is distributing your app and getting it
in the hands of users.

There are a couple of prominent options here.
ne
                                                                 alo
                                                        o     it       elf
                                                                       rs
                                                       G         it y
                                                                     ou
                                                              do
                                                         land
                                                      tro
                                                    on
                                              full c
                                         Take



The first option is to provide the app only via your own website and do the leg work in
regards to promotion.

This option is an enticing one for developers who want full control over where and how their
app is distributed.

However, right now this is a tricky option if you want to charge for your app.
s
                                                             rm
                                                           fo ace
                                                        lat
                                            g          park
                                                              etpl
                                         tin          pM
                                     Exis      illa
                                                    Ap
                                            Moz
                                              he
                                            et
                                         Lik



The second option is to use an existing platform like the Mozilla App Marketplace.

There are many benefits to this option but the main ones are that you don’t need to worry
about payment systems nor have to do as much promotion.

The marketplace uses PayPal and BrowserID to make the purchase and confirmation of
purchase as easy as possible.

http://apps-preview.mozilla.org/
nce
                                                          erie
                                                       exp     eb
                                                                 sit
                                                                    es

                                          ive           ifie
                                                            dw
                                        at           lor
                                       N     er
                                                jus
                                                   tg
                                            long
                                         no
                                     are
                                  ps
                                Ap

I think what is most interesting about the apps project is the ability to break away from the
concept of apps being nothing more than glorified websites.

Instead, the new functionality allows Web apps to look and act much like native applications
that you would find in an operating system, rather than a website running within a browser.
RT
                                                                 eb
                                                                W    e OS
                                                                      th
                                                                ithin
                                                              sw
                                                            pp
                                                          ga
                                                      llin
                                                 Insta




We call this WebRT (Web run-time) and it’s really cool.

It allows you to install Web apps in the operating system as if they were a native application.

Right now, WebRT is supported on Windows, Mac, and Android.

It’s built into the Firefox extension, Android application, and JavaScript include that I
mentioned earlier for installing and managing apps.
It’s really easy to use and you don’t need to do anything special as a developer to enable it in
your app.

Whenever a user requests to install an app they will see an option to install it natively.
ock
                                                            e d
                                                          th       reen
                                          m
                                      ro or home                 sc
                                     f
                                 nch sktop,
                              Lau     or
                                         de
                                    …



Apps installed using WebRT are no different to any other native application that you have on
your computer.

They’re installed in a standard applications folder and can be launched in the same way that
you launch any other application.

For example, on the Mac your app would be installed in the ~/Applications directory.
U  I
                                                         ser
                                                      row      alo
                                                                  ne
                                               o     b      rs
                                                                ou
                                              N             an
                                                              dy
                                                         rs
                                                       ou
                                                    isy
                                            ation
                                         lic
                                      app
                                The

WebRT applications use a browser rendering engine behind the scenes but don’t display any
normal browser UI that would clutter your app.

Instead, WebRT apps look and feel like native applications while actually using HTML and
JavaScript behind the scenes.
This is an example of my HTML5 game running as a WebRT application, check out the lack of
browser UI.

Right now WebRT uses the version of Firefox you already have installed to grab the rendering
engine. In the future you won’t necessarily need a browser installed and WebRT will handle
grabbing a relevant rendering engine behind the scenes.
gy
                                                   olo
                                            c h  n         er
                                                        rth
                                       d te even fu
                                   late       ap
                                                ps
                                 Re     shing
                                              Pu




Aside from WebRT and the apps API there are many other Web technologies that help push
apps even further.
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.

It’s different to using the F11 shortcut for full screen a that makes the entire browser full
screen and keeps the address bar and other UI if you place the mouse near the top of the
screen.

With the Full Screen API only the specific HTML element that you choose will be made full
screen and the browser UI will be hidden. It’s useful for things like video and games.

https://bugzilla.mozilla.org/show_bug.cgi?id=545812
http://blog.pearce.org.nz/2011/09/mozilla-full-screen-api-progress-update.html
https://wiki.mozilla.org/Platform/Features/Full_Screen_APIs
e ts
                                                      ock
                                                    bS       ation
                                                   e
                                                  W omm  un
                                                           ic

                                                          ec
                                                     l-tim
                                             al   rea
                                        ction
                                     ire
                                 Bi-d


WebSockets is particular favourite of mine.

It a JavaScript API that allows you to provide bi-directional real-time communication between
a browser and a server.

This means you can instantly push data to and from the user as soon as it becomes available.
se  ts
                                                        a s
                                                  line           yw
                                                                   ay

                                               Off       ern
                                                            et
                                                               an
                                                      Int
                                                    he
                                                  st
                                                ed
                                              ne
                                          Who



Technologies like the application cache, Local Storage, and IndexedDB allow for a website or
app to cache necessary assets to that it can still run while offline.

This includes things like JavaScript files, CSS and images as well as standard key/value data.

Combining these techniques will allow your application to continue working even if the
Internet connection goes down. You just sync up all the changes when it gets connected
again.

https://developer.mozilla.org/en/Offline_resources_in_Firefox
P  Is
                                                         e  A
                                                     evic          cript
                                                    D            aS
                                                              Jav
                                                          ith
                                                       arew
                                                   ardw
                                                  h
                                          ssing
                                        ce
                                      Ac


Device APIs is a catch-all term for the technologies that allow developers to access hardware
and operating system APIs using JavaScript.
At Mozilla we’re working on the WebAPI effort which is our attempt at solving this problem.

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.
In fact, we recently joined the DAP to collaborate and contribute to the existing efforts.

The approach we’re taking is to try and replicate the functionality of a mobile phone with
JavaScript.

What APIs would you need to do that?

http://hacks.mozilla.org/2011/08/introducing-webapi/
http://arewemobileyet.com/
tes
                                                          uri
                                                       avo         for
                                                y     f        ait
                                                                  tw
                                               M            Ican
                                                                no
                                                       Is
                                                     AP
                                               evice
                                              D




There are so many Device APIs in the pipeline when you combine all the efforts by the various
browser manufacturers.

Here are just a few of my favourites.
PI
                                                             A
                                                         re
                                                       tu phone
                                                     ap
                                        ia          C m     icro
                                      ed      era
                                                  and
                                     M     cam
                                            the
                                      ssing
                                    ce
                                  Ac

The Media Capture API will let you access the camera and microphone 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.

You could also do things like using the microphone input for voice recognition in for input
areas. I know Google are already experimenting heavily in this area.
P I
                                                            A
                                                      tery eft
                                                    at        eisl
                                                   B      juic
                                                        uch
                                                       m
                                                    ow
                                                  th
                                                ou
                                           Find



The Battery API is interesting because it allows you to find out how much power is remaining,
or whether the device is currently being charged.
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
                                                         n   A
                                                      tio ogies
                                                  ibra      hn
                                                              ol
                                                 V     ent
                                                          ec
                                                      op
                                                  ith
                                              youw
                                        ating
                                    Vibr


Or what about the Vibration API that gives you access to the vibration motors of a device.

Apart from having a humorous name, it’s APIs like this are really going to change the way
that apps are created with JavaScript.

https://bugzilla.mozilla.org/show_bug.cgi?id=679966
o re
                                                        t  m
                                                    ou            rces
                                                ind          res
                                                                ou
                                               F     ion
                                                         and
                                                  ntat
                                                 e
                                             ocum
                                            D



I hope I’ve given you a taste for the Mozilla Labs Apps project and the potential for Web apps
right now.

There is much, much more to learn about them and the related technology.
One of the places to check out for general information is the apps section on the Mozilla Labs
website.

https://apps.mozillalabs.com/
For technical information the apps section of the Mozilla Developer Network is the place to
go.

It’s full of clear documentation on every detail of the project so far and is being update all the
time.

https://developer.mozilla.org/en/Apps
u  s
                                                          lk to C
                                                        Ta       illa
                                                                      IR
                                                             M oz
                                                          on
                                                       ps
                                                     ap
                                                   eb
                                                 nw
                                               pe
                                             #o



For anything that can’t be answered by those websites you should get in touch with us.

The developers and relevant apps-related people at Mozilla hang out in the #openwebapps
room on irc.mozilla.org so definitely head over there if you have any particular questions or
concerns.

We’ll be happy to help.
Rob Hawkes
                       @robhawkes




             Rawkes.com
             Personal website and blog

   RECENT PROJECTS                              MORE COOL STUFF


             Twitter sentiment analysis                   Rawket Scientist
             Delving into your soul                       Technical Evangelist at Mozilla


             Rawkets.com                                  ExplicitWeb.co.uk
             HTML5 & WebSockets game                      Web development podcast



Get in touch with me on Twitter: @robhawkes

Follow my blog (Rawkes) to keep up to date with stuff that I’m working on: http://
rawkes.com

I’ve recently worked on a project that analyses sentiment on Twitter: http://rawkes.com/
blog/2011/05/05/people-love-a-good-smooch-on-a-balcony

Rawkets is my multiplayer HTML5 and JavaScript game. Play it, it’s fun: http://rawkets.com
Ask MDN

                                                 Coming back this year

                                                 Web development topics
                ASKMDN                           Hand-picked experts

                                                 Great discussions



                             @ASKMDN & #ASKMDN ON TWITTER




And lastly, I’d like to quickly mention Ask MDN which is a project that I’m working on at
Mozilla.

The concept is simple; every so often we gather a bunch of experts to answer your questions
about a particular topic.

We’ve had a whole bunch of sessions to date and it’s going down really well. If you follow
@AskMDN on Twitter you’ll be sure not to miss the next one when it starts again this year.

http://twitter.com/AskMDN
O U
                             Y s?
                           K tion
                          N ues
                         A yq
                       TH An                                    R b
                                                                       es
                                                                     wk es
                                                                   Ha wk
                                                                 ob ha
                                                                  ro
                                                                 @




Thank you.

If you have any questions feel free to grab me on Twitter (@robhawkes) or email
rob@rawkes.com.

Contenu connexe

En vedette

υπολογιστέςκαι ιστορία
υπολογιστέςκαι ιστορίαυπολογιστέςκαι ιστορία
υπολογιστέςκαι ιστορίαguest388821
 
780 吴冠中画 3(Hys 2009)
780 吴冠中画 3(Hys 2009)780 吴冠中画 3(Hys 2009)
780 吴冠中画 3(Hys 2009)yangbqada
 
061112 Eva Minerva2006 Final
061112 Eva Minerva2006 Final061112 Eva Minerva2006 Final
061112 Eva Minerva2006 FinalDov Winer
 
Bendiciones
BendicionesBendiciones
Bendicionesgsierra
 
Rawkets: An inside look at a multiplayer HTML5 game
Rawkets: An inside look at a multiplayer HTML5 gameRawkets: An inside look at a multiplayer HTML5 game
Rawkets: An inside look at a multiplayer HTML5 gameRobin 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
 
Absolutely Cool Photos Ys
Absolutely Cool Photos YsAbsolutely Cool Photos Ys
Absolutely Cool Photos Ysyangbqada
 
Learning sessions #5 Pre Incubator - NobleMotion Dance
Learning sessions #5 Pre Incubator - NobleMotion DanceLearning sessions #5 Pre Incubator - NobleMotion Dance
Learning sessions #5 Pre Incubator - NobleMotion Dancejvielman
 
香港六合彩 » SlideShare
香港六合彩 » SlideShare香港六合彩 » SlideShare
香港六合彩 » SlideSharekknbmwmj
 
A Manifesto For The Restoration Of The Nt Church
A Manifesto  For The Restoration Of The Nt ChurchA Manifesto  For The Restoration Of The Nt Church
A Manifesto For The Restoration Of The Nt ChurchMiguel Rodriguez
 
ASJA_O'FLAHAVAN_1May2011
ASJA_O'FLAHAVAN_1May2011ASJA_O'FLAHAVAN_1May2011
ASJA_O'FLAHAVAN_1May2011LeslieOflahavan
 
University of The Future 2012
University of The Future 2012University of The Future 2012
University of The Future 2012Nur Agustinus
 
Dov Winer at Info2010 Conference
Dov Winer at Info2010 ConferenceDov Winer at Info2010 Conference
Dov Winer at Info2010 ConferenceDov Winer
 

En vedette (20)

Ettore sottssas
Ettore sottssasEttore sottssas
Ettore sottssas
 
test
testtest
test
 
υπολογιστέςκαι ιστορία
υπολογιστέςκαι ιστορίαυπολογιστέςκαι ιστορία
υπολογιστέςκαι ιστορία
 
780 吴冠中画 3(Hys 2009)
780 吴冠中画 3(Hys 2009)780 吴冠中画 3(Hys 2009)
780 吴冠中画 3(Hys 2009)
 
Expanding Learning Time and Space
Expanding Learning Time and SpaceExpanding Learning Time and Space
Expanding Learning Time and Space
 
061112 Eva Minerva2006 Final
061112 Eva Minerva2006 Final061112 Eva Minerva2006 Final
061112 Eva Minerva2006 Final
 
Bendiciones
BendicionesBendiciones
Bendiciones
 
Ettore
EttoreEttore
Ettore
 
Rawkets: An inside look at a multiplayer HTML5 game
Rawkets: An inside look at a multiplayer HTML5 gameRawkets: An inside look at a multiplayer HTML5 game
Rawkets: An inside look at a multiplayer HTML5 game
 
Pakej Perkhidmatan INSPIRASI BAKAT
Pakej Perkhidmatan INSPIRASI BAKATPakej Perkhidmatan INSPIRASI BAKAT
Pakej Perkhidmatan INSPIRASI BAKAT
 
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
 
Absolutely Cool Photos Ys
Absolutely Cool Photos YsAbsolutely Cool Photos Ys
Absolutely Cool Photos Ys
 
EL ATOMO DE BOHR
EL ATOMO DE BOHREL ATOMO DE BOHR
EL ATOMO DE BOHR
 
Learning sessions #5 Pre Incubator - NobleMotion Dance
Learning sessions #5 Pre Incubator - NobleMotion DanceLearning sessions #5 Pre Incubator - NobleMotion Dance
Learning sessions #5 Pre Incubator - NobleMotion Dance
 
香港六合彩 » SlideShare
香港六合彩 » SlideShare香港六合彩 » SlideShare
香港六合彩 » SlideShare
 
A Manifesto For The Restoration Of The Nt Church
A Manifesto  For The Restoration Of The Nt ChurchA Manifesto  For The Restoration Of The Nt Church
A Manifesto For The Restoration Of The Nt Church
 
ASJA_O'FLAHAVAN_1May2011
ASJA_O'FLAHAVAN_1May2011ASJA_O'FLAHAVAN_1May2011
ASJA_O'FLAHAVAN_1May2011
 
University of The Future 2012
University of The Future 2012University of The Future 2012
University of The Future 2012
 
EL ORIGEN DEL UNIVERSO
EL ORIGEN DEL UNIVERSOEL ORIGEN DEL UNIVERSO
EL ORIGEN DEL UNIVERSO
 
Dov Winer at Info2010 Conference
Dov Winer at Info2010 ConferenceDov Winer at Info2010 Conference
Dov Winer at Info2010 Conference
 

Similaire à Open Web Apps and the Mozilla Labs Apps project

Browserscene: Creating demos on the Web
Browserscene: Creating demos on the WebBrowserscene: Creating demos on the Web
Browserscene: Creating demos on the WebRobin Hawkes
 
Melbourne Geek Night - Boot to Gecko – The Web as a Platform
Melbourne Geek Night - Boot to Gecko – The Web as a PlatformMelbourne Geek Night - Boot to Gecko – The Web as a Platform
Melbourne Geek Night - Boot to Gecko – The Web as a PlatformRobin Hawkes
 
Boot to Gecko – The Web as a Platform
Boot to Gecko – The Web as a PlatformBoot to Gecko – The Web as a Platform
Boot to Gecko – The Web as a PlatformRobin Hawkes
 
WebSockets - Embracing the real-time Web
WebSockets - Embracing the real-time WebWebSockets - Embracing the real-time Web
WebSockets - Embracing the real-time WebRobin Hawkes
 
Hacking with B2G – Web Apps and Customisation
Hacking with B2G – Web Apps and CustomisationHacking with B2G – Web Apps and Customisation
Hacking with B2G – Web Apps and CustomisationRobin Hawkes
 
Trends & Momentum in Events - 2013
Trends & Momentum in Events - 2013Trends & Momentum in Events - 2013
Trends & Momentum in Events - 2013Randle Stonier
 
Geek Meet - Boot to Gecko: The Future of Mobile?
Geek Meet - Boot to Gecko: The Future of Mobile?Geek Meet - Boot to Gecko: The Future of Mobile?
Geek Meet - Boot to Gecko: The Future of Mobile?Robin Hawkes
 
MDN Hackday London - Boot to Gecko: The Future of Mobile
MDN Hackday London - Boot to Gecko: The Future of MobileMDN Hackday London - Boot to Gecko: The Future of Mobile
MDN Hackday London - Boot to Gecko: The Future of MobileRobin Hawkes
 
Firefox OS / B2G and the future of the web
Firefox OS / B2G and the future of the webFirefox OS / B2G and the future of the web
Firefox OS / B2G and the future of the webChristian Heilmann
 
Open Web Games with HTML5 & JavaScript
Open Web Games with HTML5 & JavaScriptOpen Web Games with HTML5 & JavaScript
Open Web Games with HTML5 & JavaScriptRobin Hawkes
 
EBG206/306 Business Communication Tools
EBG206/306 Business Communication ToolsEBG206/306 Business Communication Tools
EBG206/306 Business Communication ToolsChris Hall
 
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
 
Open Business @ DMY Berlin 2011 - MakerLab
Open Business @ DMY Berlin 2011 - MakerLabOpen Business @ DMY Berlin 2011 - MakerLab
Open Business @ DMY Berlin 2011 - MakerLabMassimo Menichinelli
 
On Open Business @ EDUfashion conference - Ljubljana 02/06/2011
On Open Business @ EDUfashion conference - Ljubljana 02/06/2011On Open Business @ EDUfashion conference - Ljubljana 02/06/2011
On Open Business @ EDUfashion conference - Ljubljana 02/06/2011Massimo Menichinelli
 
Qualitative Data and UX Design
Qualitative Data and UX DesignQualitative Data and UX Design
Qualitative Data and UX DesignChris Palmieri
 
Making social media work for you | StreetGames National Conference 2013
Making social media work for you | StreetGames National Conference 2013Making social media work for you | StreetGames National Conference 2013
Making social media work for you | StreetGames National Conference 2013StreetGames
 
Paducation #mlcb
Paducation #mlcbPaducation #mlcb
Paducation #mlcbRalf Appelt
 

Similaire à Open Web Apps and the Mozilla Labs Apps project (20)

Browserscene: Creating demos on the Web
Browserscene: Creating demos on the WebBrowserscene: Creating demos on the Web
Browserscene: Creating demos on the Web
 
Melbourne Geek Night - Boot to Gecko – The Web as a Platform
Melbourne Geek Night - Boot to Gecko – The Web as a PlatformMelbourne Geek Night - Boot to Gecko – The Web as a Platform
Melbourne Geek Night - Boot to Gecko – The Web as a Platform
 
Boot to Gecko – The Web as a Platform
Boot to Gecko – The Web as a PlatformBoot to Gecko – The Web as a Platform
Boot to Gecko – The Web as a Platform
 
WebSockets - Embracing the real-time Web
WebSockets - Embracing the real-time WebWebSockets - Embracing the real-time Web
WebSockets - Embracing the real-time Web
 
Hacking with B2G – Web Apps and Customisation
Hacking with B2G – Web Apps and CustomisationHacking with B2G – Web Apps and Customisation
Hacking with B2G – Web Apps and Customisation
 
Trends & Momentum in Events - 2013
Trends & Momentum in Events - 2013Trends & Momentum in Events - 2013
Trends & Momentum in Events - 2013
 
Geek Meet - Boot to Gecko: The Future of Mobile?
Geek Meet - Boot to Gecko: The Future of Mobile?Geek Meet - Boot to Gecko: The Future of Mobile?
Geek Meet - Boot to Gecko: The Future of Mobile?
 
MDN Hackday London - Boot to Gecko: The Future of Mobile
MDN Hackday London - Boot to Gecko: The Future of MobileMDN Hackday London - Boot to Gecko: The Future of Mobile
MDN Hackday London - Boot to Gecko: The Future of Mobile
 
The Connected Classrom
The Connected ClassromThe Connected Classrom
The Connected Classrom
 
Firefox OS / B2G and the future of the web
Firefox OS / B2G and the future of the webFirefox OS / B2G and the future of the web
Firefox OS / B2G and the future of the web
 
Open Web Games with HTML5 & JavaScript
Open Web Games with HTML5 & JavaScriptOpen Web Games with HTML5 & JavaScript
Open Web Games with HTML5 & JavaScript
 
Enterprenurship
EnterprenurshipEnterprenurship
Enterprenurship
 
EBG206/306 Business Communication Tools
EBG206/306 Business Communication ToolsEBG206/306 Business Communication Tools
EBG206/306 Business Communication Tools
 
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
 
Open Business @ DMY Berlin 2011 - MakerLab
Open Business @ DMY Berlin 2011 - MakerLabOpen Business @ DMY Berlin 2011 - MakerLab
Open Business @ DMY Berlin 2011 - MakerLab
 
On Open Business @ EDUfashion conference - Ljubljana 02/06/2011
On Open Business @ EDUfashion conference - Ljubljana 02/06/2011On Open Business @ EDUfashion conference - Ljubljana 02/06/2011
On Open Business @ EDUfashion conference - Ljubljana 02/06/2011
 
Qualitative Data and UX Design
Qualitative Data and UX DesignQualitative Data and UX Design
Qualitative Data and UX Design
 
Making social media work for you | StreetGames National Conference 2013
Making social media work for you | StreetGames National Conference 2013Making social media work for you | StreetGames National Conference 2013
Making social media work for you | StreetGames National Conference 2013
 
Paducation #mlcb
Paducation #mlcbPaducation #mlcb
Paducation #mlcb
 
Google
GoogleGoogle
Google
 

Plus 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
 
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
 
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
 
HTML5 Games - Not Just for Gamers
HTML5 Games - Not Just for GamersHTML5 Games - Not Just for Gamers
HTML5 Games - Not Just for GamersRobin Hawkes
 
Open Web Games using HTML5 & JavaScript
Open Web Games using HTML5 & JavaScriptOpen Web Games using HTML5 & JavaScript
Open Web Games using HTML5 & JavaScriptRobin Hawkes
 

Plus de Robin Hawkes (16)

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
 
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
 
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
 
HTML5 Games - Not Just for Gamers
HTML5 Games - Not Just for GamersHTML5 Games - Not Just for Gamers
HTML5 Games - Not Just for Gamers
 
Open Web Games using HTML5 & JavaScript
Open Web Games using HTML5 & JavaScriptOpen Web Games using HTML5 & JavaScript
Open Web Games using HTML5 & JavaScript
 

Dernier

Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 

Dernier (20)

Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 

Open Web Apps and the Mozilla Labs Apps project

  • 1. P S AP ject E B s pro N W s Ap p aw kes PE Lab Ro bH O Mozilla Hi, I’m Rob Hawkes and I’m going to talk about the Mozilla Labs Apps project and what it means for the Web.
  • 2. I work at Mozilla, a non-profit company who is fighting for a better Web. If you’re unsure about how much I love Mozilla then check out this beautiful chicken and leek pie with extra Firefox goodness. It was made by my talented girlfriend and it was delicious.
  • 3. My official job title is Technical Evangelist but I prefer what it says on my business card. Part of my job is to engage with developers and designers like you and I about cool new technologies on the Web. I’m interested in everything that’s going on but my particular focus at Mozilla is on game development using Web technologies. And for those of you with no idea of what a rawket is, I made a multiplayer game called Rawkets in which players fly around in little rockets and shoot each other in the face with HTML5 and JavaScript. It’s actually quite fun! http://rawkets.com
  • 4. We might have enough time for questions at the end but feel free to grab me in person after this talk or on Twitter. I’m always happy to help. These slides will go online after this talk and they’ll be available from my personal website. I’ll put all the details up at the end.
  • 5. Created by Phil Banks (@emirpprime) Now, it’s no secret that I spend most of my time experimenting with HTML5 and other cool technologies like JavaScript. If you’ve met me before then you probably already know about my slight addiction to HTML5 canvas, visual programming, and gaming.
  • 6. The concept of Web apps is something that is gaining a lot of traction at the moment. No doubt this is as a result of the success of native applications on the desktop and mobile, particularly with iOS and Android. What’s exciting is that HTML5 and JavaScript are now allowing developers to create app experiences on the Web that can rival those on the desktop and mobile. But just having the technology isn’t good enough.
  • 7. ion at situ etter nt be b rre ou ld Cu ing sc Th Currently, app platforms are predominantly closed in either the technology required to make the apps or the methods that are used to distribute them. Although these approaches do have their benefits they also put unnecessary constraints on the developers and users of apps. It’s also not an ideal solution if we want an open Web.
  • 8. je ct p ro eb p s W A p fthe bs good o La rthe zilla Fo Mo At Mozilla we think there is a better way, a way that puts the developers and users of apps back in charge. We think there is a way that embraces open technology and is for the good of the Web. We call it the Mozilla Labs Apps project and we’re working hard to make it a reality.
  • 9. 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.)
  • 10. 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.
  • 11. 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.
  • 12. ie w rev r p wo rk p e nd velo theg rou De aying L Right now we’re in a limited Developer Preview to lay the groundwork and test things but we’ll soon be opening that up so more people can try it out.
  • 13. 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.
  • 14. 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.
  • 15. s ite e b e w ap ps th for in g on ality nd fun cti Exte g new ddin A The Mozilla Labs Apps project proposes some additions to standard websites and introduces a few new JavaScripts APIs into the browser that help make apps an experience unlike any other on the Web. If you don’t know JavaScript then don’t be put off, the amount that’s needed to make an app is relatively small and should make sense to you. However, I would definitely advise learning JavaScript development if you’re planning on getting really involved in Web apps.
  • 16. 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.
  • 17. { "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.
  • 18. 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.
  • 19. 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.
  • 20. 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.
  • 21. Extension my-manifest-file.webapp It’s also recommended that the manifest file has an extension of .webapp, although this isn’t enforced.
  • 22. 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
  • 23. p s a p lin g er tal bro ws Ins nt he oni so nd na sio xten Viae You can install and manage apps using an extension for Firefox on the desktop and an application for Android. We’re working on building the necessary functionality directly into Firefox, as well as providing a JavaScript include that can be used in other browsers. https://addons.mozilla.org/en-US/firefox/addon/app-runtime/ https://apps.mozillalabs.com/bin/Soup-0.1.apk
  • 24. Installing an app navigator.mozApps.install(manifestUrl) Installing an app is achieved through the new mozApps JavaScript API, particularly the install method. By passing it 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.
  • 25. The install method triggers an installation dialogue within the browser that allows the user to decide what to do with the app.
  • 26. When installed, apps can be accessed and managed via a special dashboard during the developer preview. This is available by accessing https://myapps.mozillalabs.com or clicking on the Apps link at the bottom of the Firefox window.
  • 27. Apps launched from the dashboard are opened in an application tab at the far left-hand side of the tab bar. An application tab is different in that it has a much smaller visual footprint in the tab bar and there is little browser UI cluttering the screen, like the address bar.
  • 28. ion u t trib ey Dis dm on s an tore ps Ap Creating an app is only half the story, the final chapter is distributing your app and getting it in the hands of users. There are a couple of prominent options here.
  • 29. ne alo o it elf rs G it y ou do land tro on full c Take The first option is to provide the app only via your own website and do the leg work in regards to promotion. This option is an enticing one for developers who want full control over where and how their app is distributed. However, right now this is a tricky option if you want to charge for your app.
  • 30. s rm fo ace lat g park etpl tin pM Exis illa Ap Moz he et Lik The second option is to use an existing platform like the Mozilla App Marketplace. There are many benefits to this option but the main ones are that you don’t need to worry about payment systems nor have to do as much promotion. The marketplace uses PayPal and BrowserID to make the purchase and confirmation of purchase as easy as possible. http://apps-preview.mozilla.org/
  • 31. nce erie exp eb sit es ive ifie dw at lor N er jus tg long no are ps Ap I think what is most interesting about the apps project is the ability to break away from the concept of apps being nothing more than glorified websites. Instead, the new functionality allows Web apps to look and act much like native applications that you would find in an operating system, rather than a website running within a browser.
  • 32. RT eb W e OS th ithin sw pp ga llin Insta We call this WebRT (Web run-time) and it’s really cool. It allows you to install Web apps in the operating system as if they were a native application. Right now, WebRT is supported on Windows, Mac, and Android. It’s built into the Firefox extension, Android application, and JavaScript include that I mentioned earlier for installing and managing apps.
  • 33. It’s really easy to use and you don’t need to do anything special as a developer to enable it in your app. Whenever a user requests to install an app they will see an option to install it natively.
  • 34. ock e d th reen m ro or home sc f nch sktop, Lau or de … Apps installed using WebRT are no different to any other native application that you have on your computer. They’re installed in a standard applications folder and can be launched in the same way that you launch any other application. For example, on the Mac your app would be installed in the ~/Applications directory.
  • 35. U I ser row alo ne o b rs ou N an dy rs ou isy ation lic app The WebRT applications use a browser rendering engine behind the scenes but don’t display any normal browser UI that would clutter your app. Instead, WebRT apps look and feel like native applications while actually using HTML and JavaScript behind the scenes.
  • 36. This is an example of my HTML5 game running as a WebRT application, check out the lack of browser UI. Right now WebRT uses the version of Firefox you already have installed to grab the rendering engine. In the future you won’t necessarily need a browser installed and WebRT will handle grabbing a relevant rendering engine behind the scenes.
  • 37. gy olo c h n er rth d te even fu late ap ps Re shing Pu Aside from WebRT and the apps API there are many other Web technologies that help push apps even further.
  • 38. 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. It’s different to using the F11 shortcut for full screen a that makes the entire browser full screen and keeps the address bar and other UI if you place the mouse near the top of the screen. With the Full Screen API only the specific HTML element that you choose will be made full screen and the browser UI will be hidden. It’s useful for things like video and games. https://bugzilla.mozilla.org/show_bug.cgi?id=545812 http://blog.pearce.org.nz/2011/09/mozilla-full-screen-api-progress-update.html https://wiki.mozilla.org/Platform/Features/Full_Screen_APIs
  • 39. e ts ock bS ation e W omm un ic ec l-tim al rea ction ire Bi-d WebSockets is particular favourite of mine. It a JavaScript API that allows you to provide bi-directional real-time communication between a browser and a server. This means you can instantly push data to and from the user as soon as it becomes available.
  • 40. se ts a s line yw ay Off ern et an Int he st ed ne Who Technologies like the application cache, Local Storage, and IndexedDB allow for a website or app to cache necessary assets to that it can still run while offline. This includes things like JavaScript files, CSS and images as well as standard key/value data. Combining these techniques will allow your application to continue working even if the Internet connection goes down. You just sync up all the changes when it gets connected again. https://developer.mozilla.org/en/Offline_resources_in_Firefox
  • 41. P Is e A evic cript D aS Jav ith arew ardw h ssing ce Ac Device APIs is a catch-all term for the technologies that allow developers to access hardware and operating system APIs using JavaScript.
  • 42. At Mozilla we’re working on the WebAPI effort which is our attempt at solving this problem. 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. In fact, we recently joined the DAP to collaborate and contribute to the existing efforts. The approach we’re taking is to try and replicate the functionality of a mobile phone with JavaScript. What APIs would you need to do that? http://hacks.mozilla.org/2011/08/introducing-webapi/ http://arewemobileyet.com/
  • 43. tes uri avo for y f ait tw M Ican no Is AP evice D There are so many Device APIs in the pipeline when you combine all the efforts by the various browser manufacturers. Here are just a few of my favourites.
  • 44. PI A re tu phone ap ia C m icro ed era and M cam the ssing ce Ac The Media Capture API will let you access the camera and microphone 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. You could also do things like using the microphone input for voice recognition in for input areas. I know Google are already experimenting heavily in this area.
  • 45. P I A tery eft at eisl B juic uch m ow th ou Find The Battery API is interesting because it allows you to find out how much power is remaining, or whether the device is currently being charged.
  • 46. 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
  • 47. P I n A tio ogies ibra hn ol V ent ec op ith youw ating Vibr Or what about the Vibration API that gives you access to the vibration motors of a device. Apart from having a humorous name, it’s APIs like this are really going to change the way that apps are created with JavaScript. https://bugzilla.mozilla.org/show_bug.cgi?id=679966
  • 48. o re t m ou rces ind res ou F ion and ntat e ocum D I hope I’ve given you a taste for the Mozilla Labs Apps project and the potential for Web apps right now. There is much, much more to learn about them and the related technology.
  • 49. One of the places to check out for general information is the apps section on the Mozilla Labs website. https://apps.mozillalabs.com/
  • 50. For technical information the apps section of the Mozilla Developer Network is the place to go. It’s full of clear documentation on every detail of the project so far and is being update all the time. https://developer.mozilla.org/en/Apps
  • 51. u s lk to C Ta illa IR M oz on ps ap eb nw pe #o For anything that can’t be answered by those websites you should get in touch with us. The developers and relevant apps-related people at Mozilla hang out in the #openwebapps room on irc.mozilla.org so definitely head over there if you have any particular questions or concerns. We’ll be happy to help.
  • 52. Rob Hawkes @robhawkes Rawkes.com Personal website and blog RECENT PROJECTS MORE COOL STUFF Twitter sentiment analysis Rawket Scientist Delving into your soul Technical Evangelist at Mozilla Rawkets.com ExplicitWeb.co.uk HTML5 & WebSockets game Web development podcast Get in touch with me on Twitter: @robhawkes Follow my blog (Rawkes) to keep up to date with stuff that I’m working on: http:// rawkes.com I’ve recently worked on a project that analyses sentiment on Twitter: http://rawkes.com/ blog/2011/05/05/people-love-a-good-smooch-on-a-balcony Rawkets is my multiplayer HTML5 and JavaScript game. Play it, it’s fun: http://rawkets.com
  • 53. Ask MDN Coming back this year Web development topics ASKMDN Hand-picked experts Great discussions @ASKMDN & #ASKMDN ON TWITTER And lastly, I’d like to quickly mention Ask MDN which is a project that I’m working on at Mozilla. The concept is simple; every so often we gather a bunch of experts to answer your questions about a particular topic. We’ve had a whole bunch of sessions to date and it’s going down really well. If you follow @AskMDN on Twitter you’ll be sure not to miss the next one when it starts again this year. http://twitter.com/AskMDN
  • 54. O U Y s? K tion N ues A yq TH An R b es wk es Ha wk ob ha ro @ Thank you. If you have any questions feel free to grab me on Twitter (@robhawkes) or email rob@rawkes.com.