SlideShare a Scribd company logo
1 of 58
Download to read offline
Hell is other browsers - Sartre




The Open Web
   goes Mobile
   Peter-Paul Koch (ppk)
  http://quirksmode.org
  http://twitter.com/ppk
   Google, 24 April 2009
The mobile web
Four problems with making a
website work well on a phone:
- Small memory
- Small display
- Flaky browsers
- Flaky connections
The mobile web
Four problems with making a
website phone-compatible:
- Small memory

Performance tests are necessary.

And I'll leave it at that.
The mobile web
Four problems with making a
website phone-compatible:
- Small memory
- Small display

This problem has been recognized years
ago, and people are thinking about it.
Small display
CSS: solve it with media queries

@media all and (max-width: 300px) {
  div#container {
    // special styles for small displays
  }
}

Supported by Opera, iPhone, Bolt and Iris.
Small display
JS: solve it with offsetWidth

if (document.body.offsetWidth < 300) {
   // special scripts for small displays
}

offsetWidth and offsetHeight seem well
supported (except on Blackberry).
The mobile web
Four problems with making a
website phone-compatible:
- Small memory
- Small display
- Flaky browsers
- Flaky connections
Mobile browsers
Thanks to Vodafone's generous
support I'm now able to deliver a
preliminary report on the State of the
Mobile Browsers.
Mobile browsers
- Android WebKit
- Opera Mobile
- NetFront
- Safari
- Opera Mini
- Blackberry
- S60 WebKit
- IE Mobile
- Iris, Bolt, Skyfire, Obigo, OpenWeb, Nokia S40,
 Palm Blazer, Fennec, Teashark etc. etc.

You may groan now.
Mobile browsers
All these browsers have their own
problems with advanced CSS and
JavaScript.

Worse, you have to test really basic
stuff, too
such as font-style: italic
Opera Mobile
9.5 on HTC
Diamond Touch

Supported
but only in
desktop
mode
S60 WebKit on
Nokia E71

Supported,
but error in
font-variant
Opera Mini 4.2
on Nokia E71

Supported
except for
letter-
spacing
NetFront on
Sony Ericsson
C510

Basics
supported
Opera Mobile
8.00 on
Motorola V3xx

Only color
and text-
transform
supported
Mobile browsers
The current top level mobile browsers
are:
- Android WebKit
- Safari
- Opera Mobile
Mobile browsers
Top level:
Android WebKit, Safari, Opera Mobile

Mid level:
- S60 WebKit
- Blackberry
- Opera Mini
Mobile browsers
Top level:
Android WebKit, Safari, Opera Mobile

Mid level:
S60 WebKit, Blackberry, Opera Mini

Bottom level:
- NetFront
- IE Mobile (old)
Mobile browsers
Top level:
Android WebKit, Safari, Opera Mobile
Mid level:
S60 WebKit, Blackberry, Opera Mini
Bottom level:
NetFront, IE Mobile (old)

Other default browsers (old):
- OpenWeb, Nokia S40, Palm Blazer
Mobile browsers
Top level:
Android WebKit, Safari, Opera Mobile
Mid level:
S60 WebKit, Blackberry, Opera Mini
Bottom level:
NetFront, IE Mobile (old)
Other default browsers (old):
OpenWeb, Nokia S40, Palm Blazer
Other browsers (non-default):
- Iris, Bolt, Skyfire, Obigo, Fennec, Teashark etc. etc.
The mobile web
Four problems with making a
website phone-compatible:
- Small memory
- Small display
- Flaky browsers
- Flaky connections
The mobile web
Four problems with making a
website phone-compatible:
- Small memory
- Small display
- Flaky browsers
- Flaky connections
Flaky connections
If the guy next to you is downloading a
few movies
your network connection will slow
down regardless of how good it's
supposed to be.

I don't see this problem disappearing
any time soon.
Flaky connections
This is a serious problem for the
mobile web,
especially when your site uses 200K of
custom JavaScript plus a few libraries.

They have to be downloaded every
time the user visits your site
and caching isn't always reliable.
Flaky connections
Solution:
Put the core files on your mobile phone

so that you only need to download the
data.
Flaky connections
W3C Widgets offer this solution:
- Local applications
- HTML/CSS/JavaScript
- Run in a browser (any browser)
- Can handle Ajax requests
Flaky connections
The same approach is taken by all
app systems:
- iPhone apps
- Windows Mobile apps
- Blackberry apps
- Android apps
- etc.
Flaky connections
The same approach is taken by all
app systems:
- iPhone apps (proprietary)
- Windows Mobile apps (proprietary)
- Blackberry apps (proprietary)
- Android apps (proprietary)
- etc. (probably proprietary)
Open standards
If a company wants to put data on
mobile phones, it can
- create a website (which may be slow
  to load)
- or create 4 or more separate
  applications (which is certainly
  expensive)
Open standards
If a company wants to put data on
mobile phones, it can
- create a website (which may be slow
  to load)
- or create 4 or more separate
  applications (which is certainly
  expensive)
- use W3C Widgets
W3C Widgets
Widgets are better than websites
because they download only the data;
and not the core files.

Widgets are better than app systems
because you don't have to write 4, 5, or
10 of them. Just the one is enough.
W3C Widgets
Eventually, I'll be able to share a
widget with a friend via Bluetooth,
even if I use an Android
and he uses a Nokia S60
or a HTC Windows Mobile
or a Blackberry

and It Just Works
W3C Widgets
Wouldn't that be
totally
astoundingly
absolutely
inconceivably
interoperable?
W3C Widgets
And hundreds of thousands of web
developers already know how to create
widgets.

It's just HTML/CSS/JavaScript, after
all.
W3C Widgets
- Create 1 HTML page with as much
 CSS, JavaScript, and images you
 need.
- Add an icon and a config.xml
- Zip the lot
- Change extension to .wgt
- It Just Works.
W3C Widgets
Widgets will open the web faster and
for more people than any other system.

If people can easily create them
and share them with their friends
and They Just Work
why do we need anything else?
Application systems

An app system may remain more
suited for some forms of applications:

- animation-heavy games
- secure applications
- more ... ?
Application systems

Besides, native app systems can foster
innovation, too, and eventually W3C
Widgets will profit from that.

Proprietary systems are fine
as long as you also support the
standard.
W3C Widgets
It Just Works.

But not quite yet, unfortunately.

That's one of the reasons I'm here
today.
W3C Widgets
It Just Works

in the Vodafone Widget Manager for
S60 phones.
W3C Widgets
It Just Works
S60

in the Opera/T-Mobile Widget
Manager for (probably) Windows
Mobile phones.
W3C Widgets
It Just Works
S60
Windows Mobile

in the Nokia Widget Runtime on S60
(as long as you add an info.plist file)
W3C Widgets
It Just Works
S60 (2x)
Windows Mobile

Otherwise, though, there's no support.

Yet.
W3C Widgets
It Just Works.
S60 (2x)
Windows Mobile
Google Android?
W3C Widgets
It Just Works
in Google Android?
I came here to ask if it's possible
Google Android will support W3C
Widgets
not instead of
but in addition to its own app system.
W3C Widgets
We need:
- a browser (Android WebKit will do perfectly
 fine, thanks)
- a way of associating .wgt files with
  this browser OR an installation
  mechanism
- JavaScript device APIs
JavaScript Device APIs
are APIs that grant access to phone
functionality
- camera
- contact list
- text messages
- etc.
JavaScript Device APIs
are necessary for a true mobile
experience.

W3C widgets should be able to tie into
phone functionality.
JavaScript Device APIs
- BONDI specification
(not yet implemented)
- Phonegap library
(Android, Blackberry, iPhone)
- Opera/T-Mobile widget manager
(Windows Mobile)
JavaScript Device APIs
Security

If I receive a widget from someone
and it uses device APIs
how do I know it's not going to try to
steal my contact list?
JavaScript Device APIs
Security

This problem will probably be solved
by signed widgets and security levels.

On the lowest security levels, phone
users will be prompted for every device
API call the widget wants to perform.
Higher levels do it automatically.
JavaScript Device APIs
Security

Still, this problem will remain pretty
serious and more research is
necessary.

Google can certainly help us figure out
a good answer.
W3C Widgets
Security

JavaScript's same-source policy is not
implemented in widgets,
because they have to be able to request
data from any source.

This, too, requires more thought.
W3C Widgets
Pros
- Open standards
- Countless people can already create
  them
- Interoperability on a massive scale
- They'll open the Web more quickly
  than any other system
W3C Widgets
Cons
- Other systems may remain better
  suited for certain applications
- As yet moderately supported
- Security issues
W3C Widgets
The pros heavily outweigh the cons.

So let's get to work.
Thank you
for your attention
Questions?
Ask away.
Or ask me on Twitter
http://twitter.com/ppk
or on my site
http://quirksmode.org

More Related Content

Similar to Google presentation: The Open Web goes mobile

Open Source to the Rescue of Mobile App and Mobile Web Fragmentation
Open Source to the Rescue of Mobile App and Mobile Web FragmentationOpen Source to the Rescue of Mobile App and Mobile Web Fragmentation
Open Source to the Rescue of Mobile App and Mobile Web FragmentationTom Deryckere
 
The Mobile Web - Fronteers 2009
The Mobile Web - Fronteers 2009The Mobile Web - Fronteers 2009
The Mobile Web - Fronteers 2009Peter-Paul Koch
 
The challenges of building mobile HTML5 applications - FEEC Brazil 2012 - Recife
The challenges of building mobile HTML5 applications - FEEC Brazil 2012 - RecifeThe challenges of building mobile HTML5 applications - FEEC Brazil 2012 - Recife
The challenges of building mobile HTML5 applications - FEEC Brazil 2012 - RecifeCaridy Patino
 
Mobile Web High Performance
Mobile Web High PerformanceMobile Web High Performance
Mobile Web High PerformanceAmjad Rafique
 
HTML5 Can't Do That
HTML5 Can't Do ThatHTML5 Can't Do That
HTML5 Can't Do ThatNathan Smith
 
State of the Mobile Browsers
State of the Mobile BrowsersState of the Mobile Browsers
State of the Mobile BrowsersPeter-Paul Koch
 
I like i phone and android but know .net
I like i phone and android but know .netI like i phone and android but know .net
I like i phone and android but know .netChris Love
 
European SharePoint Conference: Mobile Applications for SharePoint using HTML5
European SharePoint Conference: Mobile Applications for SharePoint using HTML5European SharePoint Conference: Mobile Applications for SharePoint using HTML5
European SharePoint Conference: Mobile Applications for SharePoint using HTML5Christian Heindel
 
Creating mobile apps without native code
Creating mobile apps without native codeCreating mobile apps without native code
Creating mobile apps without native codeJoakim Kemeny
 
Building Mobile Websites with Joomla
Building Mobile Websites with JoomlaBuilding Mobile Websites with Joomla
Building Mobile Websites with JoomlaTom Deryckere
 
Philly ete-2011
Philly ete-2011Philly ete-2011
Philly ete-2011davyjones
 
Seminar Android - Pengenalan PhoneGap
Seminar Android - Pengenalan PhoneGapSeminar Android - Pengenalan PhoneGap
Seminar Android - Pengenalan PhoneGapNur Hidayat
 
Fixing the mobile web - Internet World Romania
Fixing the mobile web - Internet World RomaniaFixing the mobile web - Internet World Romania
Fixing the mobile web - Internet World RomaniaChristian Heilmann
 
HTML5 or Android for Mobile Development?
HTML5 or Android for Mobile Development?HTML5 or Android for Mobile Development?
HTML5 or Android for Mobile Development?Reto Meier
 
Cross Platform Development Strategies with vendor review and PhoneGap case study
Cross Platform Development Strategies with vendor review and PhoneGap case studyCross Platform Development Strategies with vendor review and PhoneGap case study
Cross Platform Development Strategies with vendor review and PhoneGap case studyElegant Technologies, LLC
 

Similar to Google presentation: The Open Web goes mobile (20)

Samsung
SamsungSamsung
Samsung
 
DDive- Giuseppe Grasso - mobile su Lotus
DDive- Giuseppe Grasso - mobile su LotusDDive- Giuseppe Grasso - mobile su Lotus
DDive- Giuseppe Grasso - mobile su Lotus
 
Open Source to the Rescue of Mobile App and Mobile Web Fragmentation
Open Source to the Rescue of Mobile App and Mobile Web FragmentationOpen Source to the Rescue of Mobile App and Mobile Web Fragmentation
Open Source to the Rescue of Mobile App and Mobile Web Fragmentation
 
Vodafone Widget Camp
Vodafone Widget CampVodafone Widget Camp
Vodafone Widget Camp
 
The Mobile Web - Fronteers 2009
The Mobile Web - Fronteers 2009The Mobile Web - Fronteers 2009
The Mobile Web - Fronteers 2009
 
The challenges of building mobile HTML5 applications - FEEC Brazil 2012 - Recife
The challenges of building mobile HTML5 applications - FEEC Brazil 2012 - RecifeThe challenges of building mobile HTML5 applications - FEEC Brazil 2012 - Recife
The challenges of building mobile HTML5 applications - FEEC Brazil 2012 - Recife
 
Mobile Web High Performance
Mobile Web High PerformanceMobile Web High Performance
Mobile Web High Performance
 
HTML5 Can't Do That
HTML5 Can't Do ThatHTML5 Can't Do That
HTML5 Can't Do That
 
State of the Mobile Browsers
State of the Mobile BrowsersState of the Mobile Browsers
State of the Mobile Browsers
 
I like i phone and android but know .net
I like i phone and android but know .netI like i phone and android but know .net
I like i phone and android but know .net
 
European SharePoint Conference: Mobile Applications for SharePoint using HTML5
European SharePoint Conference: Mobile Applications for SharePoint using HTML5European SharePoint Conference: Mobile Applications for SharePoint using HTML5
European SharePoint Conference: Mobile Applications for SharePoint using HTML5
 
Creating mobile apps without native code
Creating mobile apps without native codeCreating mobile apps without native code
Creating mobile apps without native code
 
Building Mobile Websites with Joomla
Building Mobile Websites with JoomlaBuilding Mobile Websites with Joomla
Building Mobile Websites with Joomla
 
Windows Phone Introduction
Windows Phone IntroductionWindows Phone Introduction
Windows Phone Introduction
 
chapter2
chapter2chapter2
chapter2
 
Philly ete-2011
Philly ete-2011Philly ete-2011
Philly ete-2011
 
Seminar Android - Pengenalan PhoneGap
Seminar Android - Pengenalan PhoneGapSeminar Android - Pengenalan PhoneGap
Seminar Android - Pengenalan PhoneGap
 
Fixing the mobile web - Internet World Romania
Fixing the mobile web - Internet World RomaniaFixing the mobile web - Internet World Romania
Fixing the mobile web - Internet World Romania
 
HTML5 or Android for Mobile Development?
HTML5 or Android for Mobile Development?HTML5 or Android for Mobile Development?
HTML5 or Android for Mobile Development?
 
Cross Platform Development Strategies with vendor review and PhoneGap case study
Cross Platform Development Strategies with vendor review and PhoneGap case studyCross Platform Development Strategies with vendor review and PhoneGap case study
Cross Platform Development Strategies with vendor review and PhoneGap case study
 

More from Peter-Paul Koch

Rethinking the mobile web
Rethinking the mobile webRethinking the mobile web
Rethinking the mobile webPeter-Paul Koch
 
The mobile browser world
The mobile browser worldThe mobile browser world
The mobile browser worldPeter-Paul Koch
 
The future of the mobile web
The future of the mobile webThe future of the mobile web
The future of the mobile webPeter-Paul Koch
 
The mobile browser world
The mobile browser worldThe mobile browser world
The mobile browser worldPeter-Paul Koch
 
The touch events - WebExpo
The touch events - WebExpoThe touch events - WebExpo
The touch events - WebExpoPeter-Paul Koch
 
Voices That Matter: JavaScript Events
Voices That Matter: JavaScript EventsVoices That Matter: JavaScript Events
Voices That Matter: JavaScript EventsPeter-Paul Koch
 
The Ajax Experience: State Of The Browsers
The Ajax Experience: State Of The BrowsersThe Ajax Experience: State Of The Browsers
The Ajax Experience: State Of The BrowsersPeter-Paul Koch
 
An Event Apart Boston: Principles of Unobtrusive JavaScript
An Event Apart Boston: Principles of Unobtrusive JavaScriptAn Event Apart Boston: Principles of Unobtrusive JavaScript
An Event Apart Boston: Principles of Unobtrusive JavaScriptPeter-Paul Koch
 
Yahoo presentation: JavaScript Events
Yahoo presentation: JavaScript EventsYahoo presentation: JavaScript Events
Yahoo presentation: JavaScript EventsPeter-Paul Koch
 

More from Peter-Paul Koch (12)

Rethinking the mobile web
Rethinking the mobile webRethinking the mobile web
Rethinking the mobile web
 
The mobile browser world
The mobile browser worldThe mobile browser world
The mobile browser world
 
The future of the mobile web
The future of the mobile webThe future of the mobile web
The future of the mobile web
 
The mobile browser world
The mobile browser worldThe mobile browser world
The mobile browser world
 
The touch events
The touch eventsThe touch events
The touch events
 
JSON over SMS
JSON over SMSJSON over SMS
JSON over SMS
 
The touch events - WebExpo
The touch events - WebExpoThe touch events - WebExpo
The touch events - WebExpo
 
The touch events
The touch eventsThe touch events
The touch events
 
Voices That Matter: JavaScript Events
Voices That Matter: JavaScript EventsVoices That Matter: JavaScript Events
Voices That Matter: JavaScript Events
 
The Ajax Experience: State Of The Browsers
The Ajax Experience: State Of The BrowsersThe Ajax Experience: State Of The Browsers
The Ajax Experience: State Of The Browsers
 
An Event Apart Boston: Principles of Unobtrusive JavaScript
An Event Apart Boston: Principles of Unobtrusive JavaScriptAn Event Apart Boston: Principles of Unobtrusive JavaScript
An Event Apart Boston: Principles of Unobtrusive JavaScript
 
Yahoo presentation: JavaScript Events
Yahoo presentation: JavaScript EventsYahoo presentation: JavaScript Events
Yahoo presentation: JavaScript Events
 

Recently uploaded

Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 

Recently uploaded (20)

Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 

Google presentation: The Open Web goes mobile

  • 1. Hell is other browsers - Sartre The Open Web goes Mobile Peter-Paul Koch (ppk) http://quirksmode.org http://twitter.com/ppk Google, 24 April 2009
  • 2. The mobile web Four problems with making a website work well on a phone: - Small memory - Small display - Flaky browsers - Flaky connections
  • 3. The mobile web Four problems with making a website phone-compatible: - Small memory Performance tests are necessary. And I'll leave it at that.
  • 4. The mobile web Four problems with making a website phone-compatible: - Small memory - Small display This problem has been recognized years ago, and people are thinking about it.
  • 5. Small display CSS: solve it with media queries @media all and (max-width: 300px) { div#container { // special styles for small displays } } Supported by Opera, iPhone, Bolt and Iris.
  • 6. Small display JS: solve it with offsetWidth if (document.body.offsetWidth < 300) { // special scripts for small displays } offsetWidth and offsetHeight seem well supported (except on Blackberry).
  • 7. The mobile web Four problems with making a website phone-compatible: - Small memory - Small display - Flaky browsers - Flaky connections
  • 8. Mobile browsers Thanks to Vodafone's generous support I'm now able to deliver a preliminary report on the State of the Mobile Browsers.
  • 9. Mobile browsers - Android WebKit - Opera Mobile - NetFront - Safari - Opera Mini - Blackberry - S60 WebKit - IE Mobile - Iris, Bolt, Skyfire, Obigo, OpenWeb, Nokia S40, Palm Blazer, Fennec, Teashark etc. etc. You may groan now.
  • 10. Mobile browsers All these browsers have their own problems with advanced CSS and JavaScript. Worse, you have to test really basic stuff, too such as font-style: italic
  • 11. Opera Mobile 9.5 on HTC Diamond Touch Supported but only in desktop mode
  • 12. S60 WebKit on Nokia E71 Supported, but error in font-variant
  • 13. Opera Mini 4.2 on Nokia E71 Supported except for letter- spacing
  • 15. Opera Mobile 8.00 on Motorola V3xx Only color and text- transform supported
  • 16. Mobile browsers The current top level mobile browsers are: - Android WebKit - Safari - Opera Mobile
  • 17. Mobile browsers Top level: Android WebKit, Safari, Opera Mobile Mid level: - S60 WebKit - Blackberry - Opera Mini
  • 18. Mobile browsers Top level: Android WebKit, Safari, Opera Mobile Mid level: S60 WebKit, Blackberry, Opera Mini Bottom level: - NetFront - IE Mobile (old)
  • 19. Mobile browsers Top level: Android WebKit, Safari, Opera Mobile Mid level: S60 WebKit, Blackberry, Opera Mini Bottom level: NetFront, IE Mobile (old) Other default browsers (old): - OpenWeb, Nokia S40, Palm Blazer
  • 20. Mobile browsers Top level: Android WebKit, Safari, Opera Mobile Mid level: S60 WebKit, Blackberry, Opera Mini Bottom level: NetFront, IE Mobile (old) Other default browsers (old): OpenWeb, Nokia S40, Palm Blazer Other browsers (non-default): - Iris, Bolt, Skyfire, Obigo, Fennec, Teashark etc. etc.
  • 21. The mobile web Four problems with making a website phone-compatible: - Small memory - Small display - Flaky browsers - Flaky connections
  • 22. The mobile web Four problems with making a website phone-compatible: - Small memory - Small display - Flaky browsers - Flaky connections
  • 23. Flaky connections If the guy next to you is downloading a few movies your network connection will slow down regardless of how good it's supposed to be. I don't see this problem disappearing any time soon.
  • 24. Flaky connections This is a serious problem for the mobile web, especially when your site uses 200K of custom JavaScript plus a few libraries. They have to be downloaded every time the user visits your site and caching isn't always reliable.
  • 25. Flaky connections Solution: Put the core files on your mobile phone so that you only need to download the data.
  • 26. Flaky connections W3C Widgets offer this solution: - Local applications - HTML/CSS/JavaScript - Run in a browser (any browser) - Can handle Ajax requests
  • 27. Flaky connections The same approach is taken by all app systems: - iPhone apps - Windows Mobile apps - Blackberry apps - Android apps - etc.
  • 28. Flaky connections The same approach is taken by all app systems: - iPhone apps (proprietary) - Windows Mobile apps (proprietary) - Blackberry apps (proprietary) - Android apps (proprietary) - etc. (probably proprietary)
  • 29. Open standards If a company wants to put data on mobile phones, it can - create a website (which may be slow to load) - or create 4 or more separate applications (which is certainly expensive)
  • 30. Open standards If a company wants to put data on mobile phones, it can - create a website (which may be slow to load) - or create 4 or more separate applications (which is certainly expensive) - use W3C Widgets
  • 31. W3C Widgets Widgets are better than websites because they download only the data; and not the core files. Widgets are better than app systems because you don't have to write 4, 5, or 10 of them. Just the one is enough.
  • 32. W3C Widgets Eventually, I'll be able to share a widget with a friend via Bluetooth, even if I use an Android and he uses a Nokia S60 or a HTC Windows Mobile or a Blackberry and It Just Works
  • 33. W3C Widgets Wouldn't that be totally astoundingly absolutely inconceivably interoperable?
  • 34. W3C Widgets And hundreds of thousands of web developers already know how to create widgets. It's just HTML/CSS/JavaScript, after all.
  • 35. W3C Widgets - Create 1 HTML page with as much CSS, JavaScript, and images you need. - Add an icon and a config.xml - Zip the lot - Change extension to .wgt - It Just Works.
  • 36. W3C Widgets Widgets will open the web faster and for more people than any other system. If people can easily create them and share them with their friends and They Just Work why do we need anything else?
  • 37. Application systems An app system may remain more suited for some forms of applications: - animation-heavy games - secure applications - more ... ?
  • 38. Application systems Besides, native app systems can foster innovation, too, and eventually W3C Widgets will profit from that. Proprietary systems are fine as long as you also support the standard.
  • 39. W3C Widgets It Just Works. But not quite yet, unfortunately. That's one of the reasons I'm here today.
  • 40. W3C Widgets It Just Works in the Vodafone Widget Manager for S60 phones.
  • 41. W3C Widgets It Just Works S60 in the Opera/T-Mobile Widget Manager for (probably) Windows Mobile phones.
  • 42. W3C Widgets It Just Works S60 Windows Mobile in the Nokia Widget Runtime on S60 (as long as you add an info.plist file)
  • 43. W3C Widgets It Just Works S60 (2x) Windows Mobile Otherwise, though, there's no support. Yet.
  • 44. W3C Widgets It Just Works. S60 (2x) Windows Mobile Google Android?
  • 45. W3C Widgets It Just Works in Google Android? I came here to ask if it's possible Google Android will support W3C Widgets not instead of but in addition to its own app system.
  • 46. W3C Widgets We need: - a browser (Android WebKit will do perfectly fine, thanks) - a way of associating .wgt files with this browser OR an installation mechanism - JavaScript device APIs
  • 47. JavaScript Device APIs are APIs that grant access to phone functionality - camera - contact list - text messages - etc.
  • 48. JavaScript Device APIs are necessary for a true mobile experience. W3C widgets should be able to tie into phone functionality.
  • 49. JavaScript Device APIs - BONDI specification (not yet implemented) - Phonegap library (Android, Blackberry, iPhone) - Opera/T-Mobile widget manager (Windows Mobile)
  • 50. JavaScript Device APIs Security If I receive a widget from someone and it uses device APIs how do I know it's not going to try to steal my contact list?
  • 51. JavaScript Device APIs Security This problem will probably be solved by signed widgets and security levels. On the lowest security levels, phone users will be prompted for every device API call the widget wants to perform. Higher levels do it automatically.
  • 52. JavaScript Device APIs Security Still, this problem will remain pretty serious and more research is necessary. Google can certainly help us figure out a good answer.
  • 53. W3C Widgets Security JavaScript's same-source policy is not implemented in widgets, because they have to be able to request data from any source. This, too, requires more thought.
  • 54. W3C Widgets Pros - Open standards - Countless people can already create them - Interoperability on a massive scale - They'll open the Web more quickly than any other system
  • 55. W3C Widgets Cons - Other systems may remain better suited for certain applications - As yet moderately supported - Security issues
  • 56. W3C Widgets The pros heavily outweigh the cons. So let's get to work.
  • 57. Thank you for your attention
  • 58. Questions? Ask away. Or ask me on Twitter http://twitter.com/ppk or on my site http://quirksmode.org