SlideShare a Scribd company logo
Building tomorrow's web with today's tools
James Pearce
 Director, Developer Relations

 @ jamespearce
   jamesp@sencha.com
Building
Tomorrow’s Web
With Today’s Tools
1941
An Experience Designed for the Medium
1995
An Experience Designed for the Medium
2007
An Experience Designed for the Medium
History has taught us
 to embrace change
History has taught us
to question assumptions
History has taught us
to have high expectations
How The Web
is Changing Mobile

     How Mobile
is Changing The Web
2008

We must have an
 iPhone App!
2009

We must have an
 Android App!
2010

We must have an
   iPad App!
2011

We must have a...
Building tomorrow's web with today's tools
omfg
Building tomorrow's web with today's tools
Building tomorrow's web with today's tools
JS
        C# Palm   J2ME
    Microsoft

                        RIM         RIM
                                    Android
                                    Apple
Apple                     Air       Microsoft
                                    Palm
Obj-C
                       Java
         C++ Android            Top U.S. Smartphone Platforms,
                                3 Month Average Ending December 2010
                                comScore MobiLens 2010
But what does this word even mean?




The Mobile Web
Cross-platform
Familiar skills & tools
Decentralized
Easily updated
Indexed
Well-understood technologies
A perfect storm
Documents            Applications

Declarative HTML     Programmatic DOM

Themes & templates       JSON APIs

    Thin client          Thick client

      URLs           Arguments & signals

Request/Response       Synchronization
Building tomorrow's web with today's tools
A New Web Stack
                WebFonts        Video      Audio    Graphics
Device Access                                                  Server & Services

  Camera                    CSS Styling & Layout                    HTTP

  Location                                                          AJAX
                                   JavaScript
  Contacts                                                          Events

    SMS                          Semantic HTML                     Sockets

 Orientation                                                         SSL
                 File Systems        Worker
                                                    x-App
    Gyro              DBs            Parallel                      More...
                                                   Messaging
                  App Cache         Processing
Building tomorrow's web with today's tools
Web technologies
          are a
   viable alternative
to native development
built with

Apps vs Web technology
Documents            Applications

Declarative HTML     Programmatic DOM

Themes & templates       JSON APIs

    Thin client          Thick client

      URLs           Arguments & signals

Request/Response       Synchronization

  Sedentary user         Mobile user



                     This is what it means
Mobile is
an adjective not a noun
480px) {
                and (m ax-width:
@me dia screen
                                      png);
  #logo {          mage: u rl(mobile.
     ba ckground-i
    }
}
Mobile devices are di erent

         GPS device
          Camera
   Music player
      Phone
atio   n/msword
      tent-Ty pe: applic
Con
The Mobile Web
    is not a
  320px Web
Building tomorrow's web with today's tools
Building tomorrow's web with today's tools
Building tomorrow's web with today's tools
How did those assorted
tank tops work out for you?
Techniques
adap tation
            n
ad·ap·ta·tio ˈtāSHəәn/  /ˌadəәp-/
            dap
noun /ˌa
                                o f adapting
                   or process
 1.  The action ted
     or  being adap
                                           r stage play
                         sio n drama, o itten work
  2.  A mo   vie, televi          f rom a wr
                    en adapted
       that has be
                                                 or species
                                an organism nment
                    by which          o its envir
                                                  o
    3.  A change                     t
                     etter suited
        becomes b
Mobile adaptation
    Presentational

   Prioritizational

    Permutational
Presentational adaptation




                  La yout
Prioritizational adaptation




                                   A
                        tion and I
                 N aviga
Permutational adaptation




                         nality
                Fu nctio
The topology of adaptation


 Client    Proxy    Server
Presentational



Prioritizational



Permutational


                   Client   Proxy   Server
‘Passive’ client adaptation




                                              55   </a>
                                   :// 555">5
                        ="   tel
               < a href
Proxy adaptation

There’s a bad sort

There’s a good sort
Server adaptation

  Views
              HTML, CSS...


Controllers
 Models
Server adaptation
           Desktop
Switcher


                     HTML, CSS...
            Mobile


  Controllers
           Models
Device detection with plugins
      WordPress Mobile Pack
      http://wordpress.org/extend/plugins/wordpress-mobile-pack



       WPTouch
       http://wordpress.org/extend/plugins/wptouch



       Drupal Mobile Plugin
       http://drupal.org/project/mobileplugin
Brand consistency
Device detection with PHP
if (isset($_SERVER['HTTP_X_WAP_PROFILE']) { ...

if (in_array(substr($user_agent, 0, 4), $prefixes)) { ...

if (strpos($accept, 'wap') !== false) { ...

if (preg_match("/(" . $keywords . ")/i", $user_agent)) { ...




 https://github.com/jamesgpearce/mobiledetect
Device detection with Rails
class ApplicationController < ActionController::Base
    has_mobile_fu
end



*.mobile.erb

is_mobile_device?
in_mobile_view?



  https://github.com/brendanlim/mobile-fu
Device detection with node.js
   var Connect = require("connect"),
    Monomi = require("monomi");

Connect.createServer(

    Monomi.detectBrowserType(),

    function(request, response, next) {
        response.writeHead(200, {'Content-Type': 'text/plain'});
        response.write('Hello World: ');
        response.end('you are using a ' + request.monomi.browserType);
    }

).listen(8080);




     https://github.com/jamesgpearce/monomi
Detection & user choice
   “Switch to our desktop site”
Building tomorrow's web with today's tools
Thematic consistency
w3c-speak


             http://mysite.com/posts/123



            http://m.mysite.com/posts/123
Using di erent URLs
    can preserve
   the integrity of
     ‘One Web’
Device diversity
Can I Use?
http://caniuse.com

Modernizr
http://modernizr.com

DeviceAtlas
http://deviceatlas.com
dapt ation
                                         a
                            ve c lient           esign
Presentational        Passi                Web
                                                D
                                      sive
                              R espon                 t ation
                                                 adap
                                           Proxy              t ection
                                                   Devi ce de
Prioritizational
                                                                       e
                                                                le sit
                                                         Mobi

Permutational


                   Client           Proxy              Server
dapt ation
                                         a
                            ve c lient           esign
Presentational        Passi                Web
                                                D
                                      sive
                              R espon                 t ation
                                                 adap
                                           Proxy              t ection
                                                   Devi ce de
Prioritizational
                                                                       e
                                                                le sit
                                                         Mobi

Permutational


                   Client           Proxy              Server
A dedicated mobile app
            Desktop
Switchers



             Mobile
             REST
                      JSO    on
  Controllers            N
                               ce

            Models
The stack of the present


                 req/res
User interface             Rendering
Business logic
   Storage
The stack of the future



                  User interface
           sync
Security          Business logic
Storage              Storage

                    The return of
                   the thick client
Building tomorrow's web with today's tools
Do we have time for some
        code?
Progressive enhancement
assumption




   HTML                      JS      CSS


                              progressive
                             enhancement
                                            app




                 doc
                                                  vs




           assumption




HTML              JS                 CSS
                                            app




               detection
               +/- feature
Thick client, thin server


The shortfall in the cloud
http://mysite.com/myimage.png




http://i.tinysrc.mobi/http://mysite.com/myimage.png
dapt ation
                                         a
                            ve c lient           esign
Presentational        Passi                Web
                                                D
                                      sive
                              R espon                 t ation
                                                 adap
                                           Proxy              t ection
                                                   Devi ce de
Prioritizational
                                                                       e
                                                                le sit
                                                         Mobi

                                        p       d su pport
Permutational
                              Mob ile ap Clou


                   Client           Proxy              Server
Building tomorrow's web with today's tools
Mobile is
an adjective not a noun
The Mobile Web
    is not a
  320px Web
History has taught us
 to embrace change
History has taught us
to question assumptions
History has taught us
to have high expectations
James Pearce
 Director, Developer Relations

 @ jamespearce
   jamesp@sencha.com

More Related Content

PDF
An Execution Engine For Semantic Business Processes
PPTX
Manage Agility through Manage-ability – Introducing Design Time at Run Time ...
PDF
Instant Agility in Oracle Fusion Middleware through Design Time @ Run Time (O...
PPTX
Track 2, session 5, aligning security with business kartik shahani
PPTX
Compuware APM Solution
PDF
Nuno Godinho
PPT
2010 06-18 service oriented architecture (soa) v4
PDF
Viestintäaamupäivä exchange 2013
An Execution Engine For Semantic Business Processes
Manage Agility through Manage-ability – Introducing Design Time at Run Time ...
Instant Agility in Oracle Fusion Middleware through Design Time @ Run Time (O...
Track 2, session 5, aligning security with business kartik shahani
Compuware APM Solution
Nuno Godinho
2010 06-18 service oriented architecture (soa) v4
Viestintäaamupäivä exchange 2013

What's hot (19)

PDF
Dharmes Mistry Tony De Bree S O A Business Persp V1b
PDF
IT Governance Portals
PPTX
Viestinnän seminaari 8.11.2012 / Exchange
PDF
Lenya and Shibboleth
PPT
Session 1928 Semantic SOA Gvernance Deck
ODP
WebSphere Portal | The Front End Of SOA
PDF
Emakina Academy 6 - Boost your intranet - Web Content Management for SAP
PDF
S-CUBE LP: Quality of Service-Aware Service Composition: QoS optimization in ...
PDF
2. FOMS _ FeedHenry_ Mícheál Ó Foghlú
PPTX
MoMoAthens Cross-Screen_Introduction to Webinos by Webinos
PPTX
Don't Lose Your Viewers: Keep Their Attention With High Performance Streaming
PDF
OpenSplice DDS: The Open Source Middleware Accelerating Wall Street
XLSX
Crm application analysis tool
PPT
]project-open[ Data-Model 100511b
PDF
GlassFish Mobility Platform - Hans Hrasna
PDF
When Content Meets Applications
PPTX
Issues in the Web Application Landscape and webinos Architecture
PDF
Emakina Academy 6 - Boost your intranet - STIB
PDF
Glass Fish Mobility Platform Santiago Pericas Geersten V2
Dharmes Mistry Tony De Bree S O A Business Persp V1b
IT Governance Portals
Viestinnän seminaari 8.11.2012 / Exchange
Lenya and Shibboleth
Session 1928 Semantic SOA Gvernance Deck
WebSphere Portal | The Front End Of SOA
Emakina Academy 6 - Boost your intranet - Web Content Management for SAP
S-CUBE LP: Quality of Service-Aware Service Composition: QoS optimization in ...
2. FOMS _ FeedHenry_ Mícheál Ó Foghlú
MoMoAthens Cross-Screen_Introduction to Webinos by Webinos
Don't Lose Your Viewers: Keep Their Attention With High Performance Streaming
OpenSplice DDS: The Open Source Middleware Accelerating Wall Street
Crm application analysis tool
]project-open[ Data-Model 100511b
GlassFish Mobility Platform - Hans Hrasna
When Content Meets Applications
Issues in the Web Application Landscape and webinos Architecture
Emakina Academy 6 - Boost your intranet - STIB
Glass Fish Mobility Platform Santiago Pericas Geersten V2
Ad

Similar to Building tomorrow's web with today's tools (20)

PDF
Building Cloud-Based Cross-Platform Mobile Web Apps
PDF
HTML5 and the dawn of rich mobile web applications
PDF
Building cross platform mobile web apps
PDF
Mike Taulty MIX10 Silverlight 4 Patterns Frameworks
PPT
Complex End-to-End Testing
PDF
An Intro to Mobile HTML5
PDF
An Introduction to Sencha Touch
PPTX
Patterns of Cloud Applications Using Microsoft Azure Services Platform
PDF
Building Cross Platform Mobile Web Apps
PDF
Resource Oriented Architecture in Wireless Sensor Network
PPTX
Azure Services Platform
PPT
Mobile Application Security – Effective methodology, efficient testing!
PPTX
(ATS3-GS02) Accelrys Enterprise Platform in Enterprise Architectures
PDF
OreDev 2008: Software + Services
PDF
[Infosecworld 08 Orlando] New Defenses for .NET Web Apps: IHttpModule in Prac...
PDF
API Reliability Guide
PDF
Aras Role Based Clients
PDF
Special Purpose Role-Based Clients for PLM using Aras
PDF
Distributed Shared Memory on Ericsson Labs
PDF
HTML5 and the dawn of rich mobile web applications pt 1
Building Cloud-Based Cross-Platform Mobile Web Apps
HTML5 and the dawn of rich mobile web applications
Building cross platform mobile web apps
Mike Taulty MIX10 Silverlight 4 Patterns Frameworks
Complex End-to-End Testing
An Intro to Mobile HTML5
An Introduction to Sencha Touch
Patterns of Cloud Applications Using Microsoft Azure Services Platform
Building Cross Platform Mobile Web Apps
Resource Oriented Architecture in Wireless Sensor Network
Azure Services Platform
Mobile Application Security – Effective methodology, efficient testing!
(ATS3-GS02) Accelrys Enterprise Platform in Enterprise Architectures
OreDev 2008: Software + Services
[Infosecworld 08 Orlando] New Defenses for .NET Web Apps: IHttpModule in Prac...
API Reliability Guide
Aras Role Based Clients
Special Purpose Role-Based Clients for PLM using Aras
Distributed Shared Memory on Ericsson Labs
HTML5 and the dawn of rich mobile web applications pt 1
Ad

More from James Pearce (16)

PDF
Mobile Device APIs
PDF
The City Bars App with Sencha Touch 2
PDF
A Snapshot of the Mobile HTML5 Revolution
PDF
A mobile web app for Android in 75 minutes
PDF
HTML5 and the dawn of rich mobile web applications pt 2
PDF
Building a Mobile App with Sencha Touch
PDF
Create a mobile web app with Sencha Touch
PDF
Cross platform mobile web apps
PDF
Bd conf sencha touch workshop
PDF
City bars workshop
PDF
San Diego Hackathon
PDF
Creating and Distributing Mobile Web Applications with PhoneGap
PDF
Theming and Sass
PDF
Source Dev Con Keynote
PDF
Sencha Touch for Rubyists
PDF
Serving Mobile Apps from Content Management Systems
Mobile Device APIs
The City Bars App with Sencha Touch 2
A Snapshot of the Mobile HTML5 Revolution
A mobile web app for Android in 75 minutes
HTML5 and the dawn of rich mobile web applications pt 2
Building a Mobile App with Sencha Touch
Create a mobile web app with Sencha Touch
Cross platform mobile web apps
Bd conf sencha touch workshop
City bars workshop
San Diego Hackathon
Creating and Distributing Mobile Web Applications with PhoneGap
Theming and Sass
Source Dev Con Keynote
Sencha Touch for Rubyists
Serving Mobile Apps from Content Management Systems

Recently uploaded (20)

PDF
Machine learning based COVID-19 study performance prediction
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
KodekX | Application Modernization Development
PDF
Electronic commerce courselecture one. Pdf
PDF
CIFDAQ's Market Insight: SEC Turns Pro Crypto
DOCX
The AUB Centre for AI in Media Proposal.docx
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PPT
Teaching material agriculture food technology
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
PDF
Approach and Philosophy of On baking technology
PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Machine learning based COVID-19 study performance prediction
Understanding_Digital_Forensics_Presentation.pptx
Diabetes mellitus diagnosis method based random forest with bat algorithm
KodekX | Application Modernization Development
Electronic commerce courselecture one. Pdf
CIFDAQ's Market Insight: SEC Turns Pro Crypto
The AUB Centre for AI in Media Proposal.docx
Digital-Transformation-Roadmap-for-Companies.pptx
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Reach Out and Touch Someone: Haptics and Empathic Computing
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
The Rise and Fall of 3GPP – Time for a Sabbatical?
Mobile App Security Testing_ A Comprehensive Guide.pdf
Teaching material agriculture food technology
Chapter 3 Spatial Domain Image Processing.pdf
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
Approach and Philosophy of On baking technology
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
Dropbox Q2 2025 Financial Results & Investor Presentation
Agricultural_Statistics_at_a_Glance_2022_0.pdf

Building tomorrow's web with today's tools