SlideShare a Scribd company logo
How to put the
Mobile in the Mobile Web
Jenifer Hanen
Design | Dev Mobile | Web
Web Designer or Developer who is....
Mobile Curious?
 But not sure where to start?
Let’s start on the Bunny Slopes...

Recommended for you

Planning Your Progressive Web App
Planning Your Progressive Web AppPlanning Your Progressive Web App
Planning Your Progressive Web App

Presented at Web Directions Code, Melbourne If you have a website—particularly one that generates revenue for your organization—you need a Progressive Web App. So where do you begin? How do you decide which features of a Progressive Web App make sense for your users? What tools can make the process easier (or harder)? In this practical session, Jason will guide you through the key design decisions you’ll need to make about your Progressive Web App and how those decisions impact the scope of your project. He'll also teach you how to avoid common pitfalls and help you take full advantage of Progressive Web App technology.

progressive web appswebdesign
The Future of the Web - Cold Front conference 2016
The Future of the Web - Cold Front conference 2016The Future of the Web - Cold Front conference 2016
The Future of the Web - Cold Front conference 2016

A presentation about the Future of the Web at the Cold Front conference in Copenhagen, Denmark, Sep 1 2016.

Progressive Web App Challenges
Progressive Web App ChallengesProgressive Web App Challenges
Progressive Web App Challenges

The document discusses progressive web apps (PWAs) and outlines key considerations for creating a PWA. It addresses questions around what a PWA is, how to make a website feel like an app, offline functionality, push notifications, and creating a roadmap. Examples from companies that implemented PWAs successfully are provided. The conclusion recommends developing a progressive roadmap that starts with baseline PWA features and builds out functionality over time based on priorities and initiatives.

progressivewebapp
Mobilism 2011: How to put the mobile in the mobile web
But...
You Say...The client does not
have the budget for a
separate mobile site.
And this was a Gorilla Mobile
Website.
Strip it all the way down
<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN"
"http://www.wapforum.org/DTD/xhtml-mobile10.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Ultimate Removal Mobile Site</title>
<meta name="description" content="Ultimate Removal, Inc. is a demolition contractor in the tenant improvement
niche of commercial construction. Ultimate Removal, Inc. is now one of the largest tenant improvement
demolition contractors in the Los Angeles area." />
<link rel="shortcut icon" href="../images/favicon.ico" />
<link rel="stylesheet" type="text/css" href="mobile.css"/>
<meta http-equiv="Cache-Control" content="max-age=600" />
</head>

<body class="index">
!    <div id="index-container">
!    !         <h1 title="Ultimate Removal, Inc. | Demolition Contractor"><img src="../images/urilogosm.jpg"
title="Ultimate Removal, Inc. | Demolition Contractor" alt="Ultimate Removal, Inc. | Demolition Contractor" /
></h1>
!    !     !    <ul id="index-nav-list"><span></span>
!    !     !    !     <li class="index-nav"><a href="about.php" accesskey="1">About Us</a></li>
!    !     !    !     <li class="index-nav"><a href="#">|</a></li>
!    !     !    !     <li class="index-nav"><a href="services.php" accesskey="3">Services</a></li>
!    !     !    !     <li class="index-nav"><a href="#">|</a></li>
!    !     !    !     <li class="index-nav"><a href="projects.php" accesskey="7">Projects</a></li>
!    !     !    !     <li class="index-nav"><a href="#">|</a></li>
!    !     !    !     <li class="index-nav"><a href="contact.php" accesskey="8">Contact Us </a></li>
!    !     !    </ul>
!    !     !    <h2 title="Ultimate Removal, Inc. - Demolition Contractor | Tenant Improvements | High Rise-
rise Specialists | Hard & Soft Demolition | Concrete Sawing & Removal"><img src="../images/uritxtsm.jpg"
title="Ultimate Removal, Inc. - Demolition Contractor | Tenant Improvements | High Rise-rise Specialists | Hard
& Soft Demolition | Concrete Sawing & Removal" alt="Ultimate Removal, Inc. - Demolition Contractor | Tenant
Improvements | High Rise-rise Specialists | Hard & Soft Demolition | Concrete Sawing & Removal" /></h2>
!    !     </div>

!    <div id="footer"><p>&copy; 2009 Ultimate Removal, Inc. All rights reserved. <a href="tel:
+19095240800">Tel: 909-524-0800</a></p></div>

!    <script type="text/javascript">
!    var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
!    document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/
javascript'%3E%3C/script%3E"));
!    </script>
!    <script type="text/javascript">
!    try {
!    var pageTracker = _gat._getTracker("UA-8949178-1");
!    pageTracker._trackPageview();
!    } catch(err) {}</script>
!    </body>
!    </html>
My Hunch was Right.

!    <script type="text/javascript">
!    var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
!    document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/
javascript'%3E%3C/script%3E"));
!    </script>
!    <script type="text/javascript">
!    try {
!    var pageTracker = _gat._getTracker("UA-8949178-1");
!    pageTracker._trackPageview();
!    } catch(err) {}</script>




                                                                              6 months after launch,
                                                                  57% of users were coming to the
                                                                site via a BlackBerry browser, 23%
                                                                    with an iPhone, & the rest was
                                                                                 desktop browsers.

Recommended for you

Progressive Web Apps keynote, Google Developer Summit, Tokyo, Japan
Progressive Web Apps keynote, Google Developer Summit, Tokyo, JapanProgressive Web Apps keynote, Google Developer Summit, Tokyo, Japan
Progressive Web Apps keynote, Google Developer Summit, Tokyo, Japan

This document provides a history of the development of the web from 1991 to the present. It discusses technologies like HTML, HTTP, XMLHttpRequest, AJAX, and mobile web development. It then introduces progressive web apps, which are web applications that are reliable, fast and engaging like native apps through the use of technologies like service workers, web app manifests and push notifications. Examples are given of companies like Flipkart that have seen success adopting progressive web apps.

progressive web appspwatokyo
Why Nobody Fills Out My Forms 2 - Electric Boogalo (Updated)
Why Nobody Fills Out My Forms 2 - Electric Boogalo (Updated)Why Nobody Fills Out My Forms 2 - Electric Boogalo (Updated)
Why Nobody Fills Out My Forms 2 - Electric Boogalo (Updated)

Still having difficulty encouraging people to fill out web forms to sign up for newsletters, apply for jobs, or complete their online shopping orders? Find out even more tips to help keep people from abandoning early, such as making form field widths more convenient, easing credit card entry, grouping related fields into sections to promote scanning, and styling buttons and controls so your webpage does not look like it was written in 2000.

formsmobilemobile design
Skill Session - Web Multi Device
Skill Session - Web Multi DeviceSkill Session - Web Multi Device
Skill Session - Web Multi Device

The document discusses responsive web design and developing for multiple devices. It recommends creating a single responsive website that adapts to different screens through techniques like fluid grids, flexible images, and media queries. It also suggests considering hybrid approaches that incorporate both web and native capabilities to deliver high-quality experiences across all devices.

Let’s Talk Bandwidth:



Meet Rita El Khoury
Lebanese
Pharmacist
Mobilist
Blogger
ritaelkhoury.com

                                iPod
                           Nokia N8
                        HTC Desire Z
Data is Expensive in Lebanon
“Data plans in Lebanon are divided between prepaid and
postpaid plans. Most people are on prepaid, the only deal
they can get is a fixed 25MB/month for 5$ or 3$, non
renewable before another month.

On postpaid, we get 3 plans:
50MB for 10$,
120MB for 15$,
250MB for 30$.
Every additional MB costs 0.10$.

I am on the 120MB plan and I do just fine, most months
hovering between 100 and 160mb of use. Those are all
EDGE connections by the way, we have been on them for
approximately 2years. 3.5G is promised to be deployed in
the summer.”

- Rita El Khoury, May 2011
Not an Ad




“For the mobile web, I exclusively use Opera Mini. Whether on my
iPod, Nokia N8 or Desire Z, Opera Mini is the only browser I will use.
Its data efficiency is the reason I can view all web pages I need access
to on the go without going ridiculously over my cap.” - Rita El Khoury, 2011
Without Flailing Around and SCREAMING...

Recommended for you

Responsive web design & mobile web development - a technical and business app...
Responsive web design & mobile web development - a technical and business app...Responsive web design & mobile web development - a technical and business app...
Responsive web design & mobile web development - a technical and business app...

The document discusses responsive web design and mobile web development. It recommends creating a single page web application that is optimized for all devices as a long term goal. It also discusses challenges like different screen sizes, browsers, and touch vs mouse interactions across diverse devices. The document advocates adapting the web experience according to the device using responsive design principles.

hybrid applicationiosresponsive web design
2021 Chrome Dev Summit: Web Performance 101
2021 Chrome Dev Summit: Web Performance 1012021 Chrome Dev Summit: Web Performance 101
2021 Chrome Dev Summit: Web Performance 101

What do we mean when we talk about "web performance"? Why should you care about it? How can measure it? How do you get other people in your organization to care? In this workshop at the 2021 Chrome Dev Summit, I covered these questions – including an overview of the history of performance metrics, up to Core Web Vitals.

web performanceuser experienceseo
Making Mobile Sites Faster
Making Mobile Sites FasterMaking Mobile Sites Faster
Making Mobile Sites Faster

The document discusses how mobile sites are getting slower due to larger page sizes from images, CSS, JavaScript and fonts. It provides tips for optimizing images, such as using responsive images and smaller image sizes. It also recommends prioritizing critical content over non-essential elements like unnecessary JavaScript and web fonts to improve page load times.

mobileperformance
Three ways to put the Mobile in the Mobile Web:

	

 CSS : The famed and lauded Media Queries

	

 Javascript : Oh Braces, camelCase & Semicolons

	

 Server-Side : Fear Not
<!DOCTYPE html>
As always, we need to
   start with good,                   <html>
  semantic markup.
 XHTML or HTML5                       ...
 Which should I use?                  </html>
     It depends...                      or

     <?xml version="1.0"?>
     <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.1//EN"
     "http://www.w3.org/MarkUp/DTD/xhtml-basic11.dtd" >
     <html xmlns="http://www.w3.org/1999/xhtml"
                        xml:lang="en" >
     ...
                Update: It was pointed out to me by Jeremy Keith & Paul Stevens
     </html>   that this is about DTDs, not XHTML v. HTML, will blog about this.
CSS : The famed and lauded Media Queries
                  http://www.flickr.com/photos/jcroft/112754603/
In Ethan Marcotte’s Responsive Web Design article,
he advocates for the use of:

CSS @media types & query
<link rel="stylesheet" type="text/css"
  media="screen and (max-device-width: 480px) and (resolution: 163dpi)"
  href="shetland.css" />




Flexible layout
@media screen and (max-device-width: 480px) {
  .column {
    float: none;
  }
}




Flexible images
@media screen and (max-width: 400px) {
  .figure,
  li#f-mycroft {
    margin-right: 3.317535545023696682%;   /* 21px / 633px */
    width: 48.341232227488151658%;         /* 306px / 633px */
  }

    li#f-watson,
    li#f-moriarty {
      margin-right: 0;
    }
}

                                                                   http://www.alistapart.com/articles/responsive-web-design/

Recommended for you

Make mobile web apps rock
Make mobile web apps rockMake mobile web apps rock
Make mobile web apps rock

This document provides guidance on how to build effective mobile web apps. It discusses understanding the mobile landscape and user needs, designing for a mobile-first approach, leveraging HTML5 features, optimizing for touch interfaces, and using technologies like CSS3, JavaScript, and device APIs. The key recommendations are to focus on the most common user tasks, reduce content, and make all functionality accessible within 3 taps or clicks.

Martin bazley Creating effective content 15 Mar 11
Martin bazley Creating effective content 15 Mar 11Martin bazley Creating effective content 15 Mar 11
Martin bazley Creating effective content 15 Mar 11

The document summarizes tips for creating effective digital content on a budget. It discusses writing for the web by focusing on visual elements, short paragraphs, and easy scanning. Key recommendations include planning, evaluating audiences through research, and utilizing free or cheap tools like WordPress, YouTube, and social media. Proper content structure and signposting across a website is also emphasized to quickly engage users.

writing for the webonline learningmuseums
Footprints
FootprintsFootprints
Footprints

This document provides search strings and footprints to identify various blog, article, social networking, and forum platforms as well as directory submission sites. It includes footprints for vBulletin, BuddyPress, Drupal, Elgg, PHPfox, Oxwall, Jcow, MediaWiki, Wikkawiki, MoinMoin, TikkiWiki, Pligg, GetBoo, PHPDug, Scuttle, MyBB, MVN Forum, UseBB, YaBB, phpBB, ExpressionEngine, SMF, PHP-Nuke, VBulletin, Open Classifieds Directory, Open Link Directory, Particle Links Directory, and php Link Directory.

seo footprints
Mr. Marcotte is not the only one who is a proponent of
     Responsive Web Design and Media Queries...
            Stephen Hay will be presenting next on
        Meta Layout: A Closer Look at Media Queries
      http://www.slideshare.net/slideshow/mobilism2011
   For examples & inspiration: http://mediaqueri.es
CSS Media Queries Pros and Cons:
Pros:
* Uses CSS, relatively simple for web workers
* If budget does not allow for separate mobile web site, one
can make it apart of current website that accounts for screen
sizes.

Cons:
* Does not take into consideration bandwidth or kind of
connection - mobile data or wifi?
* While there are a few image reduction solutions, they are
not quite there yet.
* Umm.. Cough Cough... Internet Cough Explorer Cough...
* Most importantly for data sippers, all scripts and media
objects are loaded by the mobile browser even if the @media
gives a different layout & images for the small screen.
Mobile Sites Are A Must:




Meet CJ!
3rd Culture Kid
CompSci by Degree
Blogger by Love
zomgitscj.com.com
                                  iPad
                               Nokia(s)
                           Many Mobiles
Why Mobile Sites Are A Must:
“I think a lot of folks assume that everyone out there
has a 3G plan, that's unlimited or has a lot of leeway. In
India's case, that's definitely not true, and as such folks
tend to avoid websites that might be too data
intensive, or use way too much flash. A Mobile-friendly
version is a must here, if you want people to visit your
site.

And unfortunately, at least here in Delhi, Free Wifi can
be hard to find, so heading to a coffee shop to leach off
their Wifi is not an option.” - CJ, May 2011

Recommended for you

Using Online, Interactive And Web 2.0 Technologies In Careers Work
Using Online, Interactive And Web 2.0 Technologies In Careers WorkUsing Online, Interactive And Web 2.0 Technologies In Careers Work
Using Online, Interactive And Web 2.0 Technologies In Careers Work

Example of online, interactive and web 2.0 technologies used in a 'careers' context (particularly by university careers services).

careers serviceweb20linkedin
Velocity 2010: Performance Impact, Part Two: More Findings from the Front Lin...
Velocity 2010: Performance Impact, Part Two: More Findings from the Front Lin...Velocity 2010: Performance Impact, Part Two: More Findings from the Front Lin...
Velocity 2010: Performance Impact, Part Two: More Findings from the Front Lin...

Last year at Velocity, Strangeloop's VP Product, Hooman Beheshti, presented the findings from phase one of Strangeloop’s long-term research into the relationship between web performance and business benefits. The results were also published in Watching Websites. Since then, we’ve received a barrage of questions from the web performance community, which fueled phase two of our study. In this presentation, Strangeloop president Joshua Bixby offers our most recent findings. Some of the community’s questions were: * Who were the clients? * How fast were the pages? * What acceleration techniques were implemented? * What happened to the key page components (such as JS size, payload and roundtrips) of the websites? * How did changing key variables (page load time, payload, number of roundtrips, etc.) affect the outcome? We’ve been collecting and analyzing data to help us answer these questions, as well as some new ones we’ve thought up along the way. Join us as we present our findings, and help us consider what areas deserve further study.

site accelerationweb performancevelocity
How slow load times hurt UX (and what you can do about it) [FluentConf 2016]
How slow load times hurt UX (and what you can do about it) [FluentConf 2016]How slow load times hurt UX (and what you can do about it) [FluentConf 2016]
How slow load times hurt UX (and what you can do about it) [FluentConf 2016]

This document discusses how slow load times can hurt the user experience on websites and provides suggestions for improving performance. It notes that users expect pages to load within 2 seconds and cites studies showing that even small improvements in load time (1 second or less) can significantly increase conversion rates and other metrics. Common causes of poor performance are discussed, such as inefficient stylesheets, unoptimized JavaScript, and large images. The document provides many suggestions for optimizing front-end and back-end performance, such as creating a performance budget, minimizing page weight, deferring scripts, optimizing third-party content, and continuous monitoring.

web performanceuser experience
-|cell|chtm|cldc|cmd-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc-
  s|devi|dica|dmob|do(c|p)o|ds(12|-d)|el(49|ai)|em(l2|ul)|er
(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(-|_)|g1 u|g560|gene|
     Javascript : Oh Braces, camelCase & Semicolons
gf-5|g-mo|go(.w|od)|gr(ad|un)|haie|hcit|hd-(m|p|t)|hei-|hi
(pt|ta)|hp( i|ip)|hs-c|ht(c(-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i-(20|
      Javascript opens up our options for Mobile
   go|ma)|i230|iac( |-|/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|
      detection, which then allows us to create a
  iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |/)|klon|kpt |kwc-|
      better experience for the mobile web viewer.
   kyo(c|k)|le(no|xi)|lg( g|/(k|l|u)|50|54|e-|e/|-[a-w])|libw|
lynx|m1-w|m3ga|m50/|ma(te|ui|xo)|mc(01|21|ca)|m-cr|me
      It can be as simple as using Javascript to detect if
   (di|rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(-| |o|v)|
      it is a mobile device, not just by user agent
  zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|
      strings but by features of the mobile web
n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)-|on|tf|wf|wg|wt)|nok(6|i)|
      browser.
nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|
-([1-8]|c))|phil|pire|pl(ay|uc)|pn-2|po(ck|rt|se)|prox|psio|pt
      With Javascript there are several approaches:
 -g|qa-a|qc(07|12|21|32|60|-[2-7]|i-)|qtek|r380|r600|raks|
 rim9|ro(ve|zo)|s55/|sa(ge|ma|mm|ms|ny|va)|sc(01|h-|oo|p
The Cudgel : User Agent Mobile Browser Detection
   (function(a,b){if(/android|avantgo|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|
      iris|kindle|lge |maemo|midp|mmp|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)/|plucker|pocket|psp|
     symbian|treo|up.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(a)||/1207|6310|
     6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|
   aptu|ar(ch|go)|as(te|us)|attw|au(di|-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw-(n|
     u)|c55/|capi|ccwa|cdm-|cell|chtm|cldc|cmd-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc-s|devi|dica|dmob|
   do(c|p)o|ds(12|-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(-|_)|g1 u|g560|gene|gf
     -5|g-mo|go(.w|od)|gr(ad|un)|haie|hcit|hd-(m|p|t)|hei-|hi(pt|ta)|hp( i|ip)|hs-c|ht(c(-| |_|a|g|p|s|t)|
     tp)|hu(aw|tc)|i-(20|go|ma)|i230|iac( |-|/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|
      jigs|kddi|keji|kgt( |/)|klon|kpt |kwc-|kyo(c|k)|le(no|xi)|lg( g|/(k|l|u)|50|54|e-|e/|-[a-w])|libw|lynx|
     m1-w|m3ga|m50/|ma(te|ui|xo)|mc(01|21|ca)|m-cr|me(di|rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|
   do|t(-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|
    m)-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|-([1-8]|c))|
       phil|pire|pl(ay|uc)|pn-2|po(ck|rt|se)|prox|psio|pt-g|qa-a|qc(07|12|21|32|60|-[2-7]|i-)|qtek|r380|
   r600|raks|rim9|ro(ve|zo)|s55/|sa(ge|ma|mm|ms|ny|va)|sc(01|h-|oo|p-)|sdk/|se(c(-|0|1)|47|mc|nd|ri)|
     sgh-|shar|sie(-|m)|sk-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h-|v-|v )|sy(01|mb)|t2(18|50)|t6
     (00|10|18)|ta(gt|lk)|tcl-|tdg-|tel(i|m)|tim-|t-mo|to(pl|sh)|ts(70|m-|m3|m5)|tx-9|up(.b|g1|si)|utst|
   v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(-| )|
         webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|xda(-|2|g)|yas-|your|zeto|zte-/i.test(a.substr(0,4)))
                window.location=b})(navigator.userAgent||navigator.vendor||window.opera,'http://
                                          detectmobilebrowser.com/mobile');




 From http://detectmobilebrowser.com/
The Ballet Dancer : Mobile Browser Feature Detection
// Modernizr v1.7 www.modernizr.com
window.Modernizr=function(a,b,c){function G(){e.input=function(a){for(var b=0,c=a.length;b<c;b++)t[a[b]]=!!(a[b]in l);return t}("autocomplete autofocus list placeholder
max min multiple pattern required step".split(" ")),e.inputtypes=function(a){for(var d=0,e,f,h,i=a.length;d<i;d++)l.setAttribute("type",f=a[d]),e=l.type!=="text",e&&
(l.value=m,l.style.cssText="position:absolute;visibility:hidden;",/^range$/.test(f)&&l.style.WebkitAppearance!==c?(g.appendChild
(l),h=b.defaultView,e=h.getComputedStyle&&h.getComputedStyle(l,null).WebkitAppearance!=="textfield"&&l.offsetHeight!==0,g.removeChild(l)):/^(search|tel)$/.test(f)||(/^
(url|email)$/.test(f)?e=l.checkValidity&&l.checkValidity()===!1:/^color$/.test(f)?(g.appendChild(l),g.offsetWidth,e=l.value!=m,g.removeChild(l)):e=l.value!=m)),s[a[d]]
=!!e;return s}("search tel url email datetime date month week time datetime-local number range color".split(" "))}function F(a,b){var c=a.charAt(0).toUpperCase()
+a.substr(1),d=(a+" "+p.join(c+" ")+c).split(" ");return!!E(d,b)}function E(a,b){for(var d in a)if(k[a[d]]!==c&&(!b||b(a[d],j)))return!0}function D(a,b){return
(""+a).indexOf(b)!==-1}function C(a,b){return typeof a===b}function B(a,b){return A(o.join(a+";")+(b||""))}function A(a){k.cssText=a}var d="1.7",e={},f=!
0,g=b.documentElement,h=b.head||b.getElementsByTagName("head")[0],i="modernizr",j=b.createElement(i),k=j.style,l=b.createElement
("input"),m=":)",n=Object.prototype.toString,o=" -webkit- -moz- -o- -ms- -khtml- ".split(" "),p="Webkit Moz O ms Khtml".split(" "),q={svg:"http://www.w3.org/2000/
svg"},r={},s={},t={},u=[],v,w=function(a){var c=b.createElement("style"),d=b.createElement("div"),e;c.textContent=a+"{#modernizr{height:3px}}",h.appendChild
(c),d.id="modernizr",g.appendChild(d),e=d.offsetHeight===3,c.parentNode.removeChild(c),d.parentNode.removeChild(d);return!!e},x=function(){function d(d,e){e=e||
b.createElement(a[d]||"div");var f=(d="on"+d)in e;f||(e.setAttribute||(e=b.createElement("div")),e.setAttribute&&e.removeAttribute&&(e.setAttribute(d,""),f=C(e
[d],"function"),C(e[d],c)||(e[d]=c),e.removeAttribute(d))),e=null;return f}var a=
{select:"input",change:"input",submit:"form",reset:"form",error:"img",load:"img",abort:"img"};return d}(),y=({}).hasOwnProperty,z;C(y,c)||C(y.call,c)?z=function(a,b)
{return b in a&&C(a.constructor.prototype[b],c)}:z=function(a,b){return y.call(a,b)},r.flexbox=function(){function c(a,b,c,d){a.style.cssText=o.join(b+":"+c+";")+
(d||"")}function a(a,b,c,d){b+=":",a.style.cssText=(b+o.join(c+";"+b)).slice(0,-b.length)+(d||"")}var d=b.createElement("div"),e=b.createElement("div");a
(d,"display","box","width:42px;padding:0;"),c(e,"box-flex","1","width:10px;"),d.appendChild(e),g.appendChild(d);var f=e.offsetWidth===42;d.removeChild(e),g.removeChild
(d);return f},r.canvas=function(){var a=b.createElement("canvas");return a.getContext&&a.getContext("2d")},r.canvastext=function(){return e.canvas&&C(b.createElement
("canvas").getContext("2d").fillText,"function")},r.webgl=function(){return!!a.WebGLRenderingContext},r.touch=function(){return"ontouchstart"in a||w("@media ("+o.join
("touch-enabled),(")+"modernizr)")},r.geolocation=function(){return!!navigator.geolocation},r.postmessage=function(){return!!a.postMessage},r.websqldatabase=function()
{var b=!!a.openDatabase;return b},r.indexedDB=function(){for(var b=-1,c=p.length;++b<c;){var d=p[b].toLowerCase();if(a[d+"_indexedDB"]||a[d+"IndexedDB"])return!0}return!
1},r.hashchange=function(){return x("hashchange",a)&&(b.documentMode===c||b.documentMode>7)},r.history=function(){return !!
(a.history&&history.pushState)},r.draganddrop=function(){return x("dragstart")&&x("drop")},r.websockets=function(){return"WebSocket"in a},r.rgba=function(){A
("background-color:rgba(150,255,150,.5)");return D(k.backgroundColor,"rgba")},r.hsla=function(){A("background-color:hsla(120,40%,100%,.5)");return D
(k.backgroundColor,"rgba")||D(k.backgroundColor,"hsla")},r.multiplebgs=function(){A("background:url(//:),url(//:),red url(//:)");return(new RegExp("(urls*(.*?)
{3}")).test(k.background)},r.backgroundsize=function(){return F("backgroundSize")},r.borderimage=function(){return F("borderImage")},r.borderradius=function(){return F
("borderRadius","",function(a){return D(a,"orderRadius")})},r.boxshadow=function(){return F("boxShadow")},r.textshadow=function(){return b.createElement
("div").style.textShadow===""},r.opacity=function(){B("opacity:.55");return/^0.55$/.test(k.opacity)},r.cssanimations=function(){return F
("animationName")},r.csscolumns=function(){return F("columnCount")},r.cssgradients=function(){var a="background-image:",b="gradient(linear,left top,right bottom,from
(#9f9),to(white));",c="linear-gradient(left top,#9f9, white);";A((a+o.join(b+a)+o.join(c+a)).slice(0,-a.length));return D
(k.backgroundImage,"gradient")},r.cssreflections=function(){return F("boxReflect")},r.csstransforms=function(){return!!E
(["transformProperty","WebkitTransform","MozTransform","OTransform","msTransform"])},r.csstransforms3d=function(){var a=!!E
(["perspectiveProperty","WebkitPerspective","MozPerspective","OPerspective","msPerspective"]);a&&"webkitPerspective"in g.style&&(a=w("@media ("+o.join("transform-3d),(")
+"modernizr)"));return a},r.csstransitions=function(){return F("transitionProperty")},r.fontface=function(){var a,c,d=h||g,e=b.createElement
("style"),f=b.implementation||{hasFeature:function(){return!1}};e.type="text/css",d.insertBefore(e,d.firstChild),a=e.sheet||e.styleSheet;var i=f.hasFeature("CSS2","")?
function(b){if(!a||!b)return!1;var c=!1;try{a.insertRule(b,0),c=/src/i.test(a.cssRules[0].cssText),a.deleteRule(a.cssRules.length-1)}catch(d){}return c}:function(b){if(!
a||!b)return!1;a.cssText=b;return a.cssText.length!==0&&/src/i.test(a.cssText)&&a.cssText.replace(/r+|n+/g,"").indexOf(b.split(" ")[0])===0};c=i('@font-face { font-
family: "font"; src: url(data:,); }'),d.removeChild(e);return c},r.video=function(){var a=b.createElement("video"),c=!!a.canPlayType;if(c){c=new Boolean
(c),c.ogg=a.canPlayType('video/ogg; codecs="theora"');var d='video/mp4; codecs="avc1.42E01E';c.h264=a.canPlayType(d+'"')||a.canPlayType(d+', mp4a.
40.2"'),c.webm=a.canPlayType('video/webm; codecs="vp8, vorbis"')}return c},r.audio=function(){var a=b.createElement("audio"),c=!!a.canPlayType;c&&(c=new Boolean
(c),c.ogg=a.canPlayType('audio/ogg; codecs="vorbis"'),c.mp3=a.canPlayType("audio/mpeg;"),c.wav=a.canPlayType('audio/wav; codecs="1"'),c.m4a=a.canPlayType("audio/x-
m4a;")||a.canPlayType("audio/aac;"));return c},r.localstorage=function(){try{return!!localStorage.getItem}catch(a){return!1}},r.sessionstorage=function(){try{return!!
sessionStorage.getItem}catch(a){return!1}},r.webWorkers=function(){return!!a.Worker},r.applicationcache=function(){return!!a.applicationCache},r.svg=function(){return!!
b.createElementNS&&!!b.createElementNS(q.svg,"svg").createSVGRect},r.inlinesvg=function(){var a=b.createElement("div");a.innerHTML="<svg/>";return
(a.firstChild&&a.firstChild.namespaceURI)==q.svg},r.smil=function(){return!!b.createElementNS&&/SVG/.test(n.call(b.createElementNS
(q.svg,"animate")))},r.svgclippaths=function(){return!!b.createElementNS&&/SVG/.test(n.call(b.createElementNS(q.svg,"clipPath")))};for(var H in r)z(r,H)&&
(v=H.toLowerCase(),e[v]=r[H](),u.push((e[v]?"":"no-")+v));e.input||G(),e.crosswindowmessaging=e.postmessage,e.historymanagement=e.history,e.addTest=function(a,b)
{a=a.toLowerCase();if(!e[a]){b=!!b(),g.className+=" "+(b?"":"no-")+a,e[a]=b;return e}},A(""),j=l=null,f&&a.attachEvent&&function(){var a=b.createElement
("div");a.innerHTML="<elem></elem>";return a.childNodes.length!==1}()&&function(a,b){function p(a,b){var c=-1,d=a.length,e,f=[];while(++c<d)e=a[c],(b=e.media||b)!
="screen"&&f.push(p(e.imports,b),e.cssText);return f.join("")}function o(a){var b=-1;while(++b<e)a.createElement(d[b])}var c="abbr|article|aside|audio|canvas|details|
figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",d=c.split("|"),e=d.length,f=new RegExp("(^|s)("+c+")","gi"),g=new
RegExp("<(/*)("+c+")","gi"),h=new RegExp("(^|[^n]*?s)("+c+")([^n]*)({[nwW]*?})","gi"),i=b.createDocumentFragment
(),j=b.documentElement,k=j.firstChild,l=b.createElement("body"),m=b.createElement("style"),n;o(b),o(i),k.insertBefore(m,k.firstChild),m.media="print",a.attachEvent
("onbeforeprint",function(){var a=-1,c=p(b.styleSheets,"all"),k=[],o;n=n||b.body;while((o=h.exec(c))!=null)k.push((o[1]+o[2]+o[3]).replace(f,"$1.iepp_$2")+o
[4]);m.styleSheet.cssText=k.join("n");while(++a<e){var q=b.getElementsByTagName(d[a]),r=q.length,s=-1;while(++s<r)q[s].className.indexOf("iepp_")<0&&(q[s].className+="
iepp_"+d[a])}i.appendChild(n),j.appendChild(l),l.className=n.className,l.innerHTML=n.innerHTML.replace(g,"<$1font")}),a.attachEvent("onafterprint",function()
{l.innerHTML="",j.removeChild(l),j.appendChild(n),m.styleSheet.cssText=""})}(a,b),e._enableHTML5=f,e._version=d,g.className=g.className.replace(/bno-jsb/,"")+" js
"+u.join(" ");return e}(this,this.document)




 From http://modernizr.com/
One Not So Small Problem




       Not all mobile browsers are Javascript equal and
       some feature phones have little to no Javascript.
       Please refer to the Mobile Compatibility tables:
       http://quirksmode.org/m/table.html

Recommended for you

eMarketing Guide
eMarketing  GuideeMarketing  Guide
eMarketing Guide

This document provides an overview and guidelines for developing an effective eMarketing strategy using digital and social media. It begins with an introduction to basic digital media concepts such as URLs, web pages, and landing pages. It then discusses listening to customers online, analyzing social media insights and trends, and using analytics tools. The document concludes by offering tips for developing an online presence, including planning a website, finding an authentic voice, and effective copywriting. The overall aim is to provide a framework for establishing clear eMarketing guidelines.

Mobile Web High Performance
Mobile Web High PerformanceMobile Web High Performance
Mobile Web High Performance

We’ll get deep in the well-known techniques for website’s performance (from Steve Souders and others) and how real mobile devices reacts to each one. Are mobile browsers compatible with CSS Sprites or with Lazy Load Script? What about inline images and canvas? What are the big differences between desktop and mobile web performance?

wpooptimizationandroid
A Minimalist's Guide to the Mobile Web
A Minimalist's Guide to the Mobile WebA Minimalist's Guide to the Mobile Web
A Minimalist's Guide to the Mobile Web

Presentation given by Jenifer Hanen on Mon April 16, 2012 at Breaking Development Orlando [http://bdconf.com/2012/orlando]. "Designing and developing for mobile devices can be overwhelming in the sheer amount of factors to consider. Questions of where get started or how to retool for fast and lovely mobile sites can send one screaming for the supposed safety of Webkit before running and hiding under an iOS rock. But such fear and trembling is unnecessary and we can go forth in confidence with the minimalist's guide on data sipping as a legitimate lifestyle, serving responsive images, how to strip that code, and do I really need all this Javascript?"

mobile designminimalismux
But we can’t count Javascript out...




                 Many have great hopes that JQuery Mobile will
              mature in a way that the web trio of HTML/CSS/JS
                  will be more than enough for the mobile web,
                      as well as, other future Javascript solutions
                                          for the mobile browser.
Scott Jehl will be presenting on JQuery Mobile after lunch
How do we build for a
complex Mobile Web?




Meet Chandrachoodan
Filmaker / Archaeologist
MA from U. of Bristol
Photographer
Blogger
Chennai Proud              Nokia E63
“I think that support for Indic scripts would be very important in the future. More and more Tamil/
Hindi/Indian language publications are getting online, and a lot of Tamil blogs already exist. So support for
  Indic scripts on the mobile web essential. I realise this is an issue with slightly older phones and that
                     newer phones come with UTF-8 support.” - Chandru, May 2011                    Photo by Jenifer Hanen
Server-Side : Fear Not
You have determined that you need a mobile web site or app
that works for many connected mobile devices, including ones
that Javascript may not work with and for users who are
bandwidth sensitive. Time to look to the server.

If the word server-side gives strikes fear in your gut, worry not,
if you are willing to calculate fluid grid percentages to the 8th
decimal point then what is a wee bit of server-side scripting
between friends...

          margin-right:
 3.317535545023696682%;
                 width:
48.341232227488151658%;

Recommended for you

Mobile Photography for Artists' Works
Mobile Photography for Artists' WorksMobile Photography for Artists' Works
Mobile Photography for Artists' Works

Learn to take better photos with a mobile device. (originally created for the Saskatchewan Craft Council & CARFAC workshop, "Photographing your Artwork : camera & iPhone methods")

iphoneographymobilephoneography
Mobile Development on a Shoestring Connection
Mobile Development on a Shoestring ConnectionMobile Development on a Shoestring Connection
Mobile Development on a Shoestring Connection

Designing and developing mobile applications and responsive web sites when there are a variety of ways that a person can connect to the mobile web, as we can't assume unlimited data and wifi.

mobile designconstraintsmobile
Социальные сети и блоги. Цифры и смыслы
Социальные сети и блоги. Цифры и смыслыСоциальные сети и блоги. Цифры и смыслы
Социальные сети и блоги. Цифры и смыслы
The PHP Script from Detect Mobile Browser
 <?php
 $useragent=$_SERVER['HTTP_USER_AGENT'];
 if(preg_match('/android|avantgo|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|
 lge |maemo|midp|mmp|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)/|plucker|pocket|psp|symbian|treo|up.
 (browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i',$useragent)||preg_match('/1207|6310|6590|3gso|
 4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|
 attw|au(di|-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw-(n|u)|c55/|capi|ccwa|cdm-|cell|
 chtm|cldc|cmd-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc-s|devi|dica|dmob|do(c|p)o|ds(12|-d)|el(49|ai)|em(l2|ul)|er
 (ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(-|_)|g1 u|g560|gene|gf-5|g-mo|go(.w|od)|gr(ad|un)|haie|hcit|hd-(m|p|
 t)|hei-|hi(pt|ta)|hp( i|ip)|hs-c|ht(c(-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i-(20|go|ma)|i230|iac( |-|/)|ibro|idea|ig01|ikom|
 im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |/)|klon|kpt |kwc-|kyo(c|k)|le(no|xi)|lg( g|/(k|l|u)|50|54|e
 -|e/|-[a-w])|libw|lynx|m1-w|m3ga|m50/|ma(te|ui|xo)|mc(01|21|ca)|m-cr|me(di|rc|ri)|mi(o8|oa|ts)|mmef|mo
 (01|02|bi|de|do|t(-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne
 ((c|m)-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|-([1-8]|c))|phil|
 pire|pl(ay|uc)|pn-2|po(ck|rt|se)|prox|psio|pt-g|qa-a|qc(07|12|21|32|60|-[2-7]|i-)|qtek|r380|r600|raks|rim9|ro
 (ve|zo)|s55/|sa(ge|ma|mm|ms|ny|va)|sc(01|h-|oo|p-)|sdk/|se(c(-|0|1)|47|mc|nd|ri)|sgh-|shar|sie(-|m)|sk-0|sl
 (45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h-|v-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl-|tdg-|tel(i|m)|
 tim-|t-mo|to(pl|sh)|ts(70|m-|m3|m5)|tx-9|up(.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|-v)|vm40|
 voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|xda(-|2|g)|yas
 -|your|zeto|zte-/i',substr($useragent,0,4)))
 header('Location: http://detectmobilebrowser.com/mobile');
 ?>



Looks quite a bit like the Javascript DMB script, the RegEx for mobile browser UA’s
remains the same, but the Javascript is swapped out for PHP at the top & bottom.

http://detectmobilebrowser.com/
<?xml version="1.0" encoding="UTF-8"?>
                                                                 <wurfl>


WURFL
                                                                   <version>
                                                                     <ver>www.wurflpro.com - 2011-04-24 12:07:53</ver>
                                                                     <last_updated>Sun Apr 24 12:09:17 -0500 2011</last_updated>
                                                                     <official_url>http://wurfl.sourceforge.net/</official_url>
                                                                 !    <maintainers>
                                                                 !         <maintainer name="Luca Passani" email="luca.passani at gmail point
“The WURFL is an XML configuration file which contains             com" home_page="http://www.wurfl.com"/>
                                                                 !    </maintainers>
information about capabilities and features of many mobile       !    <authors>
devices.                                                         !       <author name="Luca Passani" email="luca.passani at gmail point com"
                                                                 home_page="http://www.wurfl.com"/>
                                                                 !    </authors>
                                                                   </version>
The main scope of the file is to collect as much                    <devices>
information as we can about all the existing mobile                <device id="generic" user_agent="" fall_back="root">
                                                                     <group id="product_info">
devices that access WAP pages so that developers will be               <capability name="mobile_browser" value=""/>
able to build better applications and better services for              <capability name="nokia_feature_pack" value="0"/>
                                                                       <capability name="device_os" value=""/>
the users.                                                             <capability name="nokia_series" value="0"/>
                                                                       <capability name="has_qwerty_keyboard" value="false"/>
                                                                       <capability name="pointing_method" value=""/>
This project is open-source and is intended for developers             <capability name="mobile_browser_version" value=""/>
                                                                       <capability name="is_tablet" value="false"/>
working with the WAP and Wireless. All the information                 <capability name="nokia_edition" value="0"/>
listed here has been collected by many different people                <capability name="uaprof" value=""/>
                                                                       <capability name="can_skip_aligned_link_row" value="false"/>
from many different countries.You are allowed to use                   <capability name="device_claims_web_support" value="false"/>
                                                                       <capability name="ununiqueness_handler" value=""/>
WURFL in any of your applications, free or commercial.                 <capability name="model_name" value=""/>
The only thing required is to make any modification to                  <capability name="device_os_version" value=""/>
                                                                       <capability name="uaprof2" value=""/>
this file public, following the original spirit and idea of the         <capability name="is_wireless_device" value="true"/>
                                                                       <capability name="uaprof3" value=""/>
creators of this project. This will help WURFL to grow                 <capability name="brand_name" value=""/>
better and better every day.” - Luca Passini                           <capability name="model_extra_info" value=""/>
                                                                       <capability name="marketing_name" value=""/>
                                                                       <capability name="can_assign_phone_number" value="true"/>
                                                                       <capability name="release_date" value="2002_january"/>
                                                                       <capability name="unique" value="true"/>

http://wurfl.sourceforge.net                                          </group>
                                                                     <group id="wml_ui">
                                                                       <capability name="icons_on_menu_items_support" value="false"/>


http://tera-wurfl.com/explore/
                                                                       <capability name="opwv_wml_extensions_support" value="false"/>
                                                                       <capability name="built_in_back_button_support" value="false"/>
                                                                       <capability name="proportional_font" value="false"/>
                                                                       <capability name="insert_br_element_after_widget_recommended"
                                                                 value="false"/>
                                                                       <capability name="wizards_recommended" value="false"/>
                                                                       <capability name="wml_can_display_images_and_text_on_same_line"
                                                                 value="false"/>
                                                                       <capability name="softkey_support" value="false"/>
                                                                       <capability name="wml_make_phone_call_string" value="wtai://wp/mc;"/>
                                                                       <capability name="deck_prefetch_support" value="false"/>
                                                                       <capability name="menu_with_select_element_recommended"
                                                                 value="false"/>
What Challenges do you
 face with bandwidth?




     Meet Jason
     San Francisco
     Web Developer
     Photographer
                         iPhone
San Francisco, Connection Black Hole
“It depends on where I am. At my old place in the Inner Sunset, very rarely did my
phone drop calls, and I always had great reception. Now in the Castro, and when I'm
downtown, I get dropped calls frequently, and at home I need to be near the
windows at the front of the apartment to make sure I don't lose reception. Even
then, it might not help. If I happen to walk into the kitchen without thinking about
it, I might as well say "good bye" on the way because the call will certainly drop.

At home, when I'm visiting friends, or somewhere with free wifi, I just turn on wifi.
Otherwise I just have to be patient. My mobile data usage is rarely time-sensitive, so
I don't usually stress out about it. The only time I feel it's critical is when I'm using
the maps app for directions. That's the worst time to be left in the lurch.

There's no section at home that's a black hole for data, though you think there
would be, given the above.” - Jason, May 2011

Recommended for you

Mobile UX
Mobile UXMobile UX
Mobile UX

The document discusses best practices for mobile user experience design, providing tips on choosing between a mobile website or app, prioritizing user goals and context, designing for different mobile devices and contexts, and emphasizing simplicity, voice interaction, and working within the physical constraints of mobile. It also provides resources for mobile design templates.

EYE'EM @MobileArtConference 2010, NYU ITP
EYE'EM @MobileArtConference 2010, NYU ITPEYE'EM @MobileArtConference 2010, NYU ITP
EYE'EM @MobileArtConference 2010, NYU ITP

EYE'EM represents a new generation of photographers, using their mobile phone cameras to capture the world as they see it. As technology develops, new mediums arise, and a new generation of artists establish what is now, the mobile photography movement. Let's create something beautiful together! www.eyeem.com

mobileeyeemphotography
Business of Front-end Web Development
Business of Front-end Web DevelopmentBusiness of Front-end Web Development
Business of Front-end Web Development

1) Rachel Andrew discusses considerations when choosing tools and frameworks for front-end development projects, emphasizing progressive enhancement and ensuring the core experience works for all. 2) She argues against over-reliance on frameworks, which can mask issues and prevent learning core skills. Frameworks should be used lightly and evaluated on a case-by-case basis. 3) Andrew talks about the importance of standards-based development and contributing to emerging specifications like CSS Grid Layout, rather than depending entirely on pre-processors. Her goal is to encourage continued progress of the open web.

html5cssfront-end
Possible Solutions:
Form a grassroots set of folk to work up the hybrid server/client side solution for mobile browser and
feature detection as proposed in Brian Rieger’s presentation

Work with browser makers for a more complete feature profile and to alert of user preferences on
data, media, and current context.

We are all here now, what are we willing to accomplish & organize?

               The Mobile Web is young, let’s keep the lines of
                 communication open and work together.
How To Get from Here to There

The Mobilism Presentations that Go in More Detail:
 Steve Hay on Media Queries : http://slideshare.net/stephenhay/mobilism2011

 Scott Jehl on Mobile JQuery (he will be posting this later after permission is gained)

 Brian Rieger on Muddling Through the Mobile Web : http://slideshare.net/yiibu/
 muddling-through-the-mobile-web
Resources:Text
W3C's Mobile Web Best Practices http://www.w3.org/TR/mobile-bp/

W3C's Mobile Web Application Best Practices http://www.w3.org/TR/mwabp/

W3C Media Queries http://www.w3.org/TR/css3-mediaqueries/

Global Authoring Practices for the Mobile Web http://www.passani.it/gap/

USC's Best Practices in Mobile Detection http://webservices.usc.edu/blog/development/mobile_detection/

Quirksmode Mobile http://quirksmode.org/mobile/

Detect Mobile Browser http://detectmobilebrowser.com/

Modernizr http://www.modernizr.com/

Simple javascript mobile OS detector http://blog.justin.kelly.org.au/simple-javascript-mobile-os-detector

WURFL http://wurfl.sourceforge.net/

Deploying WURFL http://wurfl.sourceforge.net/newapi/

Tera-WURFL UA & Feature Explorer http://tera-wurfl.com/explore/

James Pearce's Modernizr-server https://github.com/jamesgpearce/modernizr-server

The Switcher http://www.passani.it/switcher/

Manifesto for Responsible Reformatting http://wurfl.sourceforge.net/manifesto/
Thank you!




Jenifer Hanen :: Black Phoebe Designs
         @msjen blackphoebe.com/msjen
       Please watch twitter | blog for the Slideshare URL of this Presentation

Recommended for you

Multi screen HTML5
Multi screen HTML5Multi screen HTML5
Multi screen HTML5

Learn how to design responsive HTML5 websites and applications, and learn how to choose the right tool for the job.

multi-screenhtml5twitter bootstrap
Best Practices for Mobile Web Design
Best Practices for Mobile Web DesignBest Practices for Mobile Web Design
Best Practices for Mobile Web Design

According to the International Telecommunication Union, at the end of 2011 there were more than 1 billion mobile‐broadband subscriptions worldwide! With more of your library users using mobile devices to access information they will assume that your library can be available from anywhere, at any time, and on most any device. Now is the time to be ready for this demand. In this webinar: - Explore some innovative library mobile website designs and see how they were built. - Understand how HTML, CSS, and JavaScript work together to build mobile websites. - Learn what a mobile framework is and why they are used. - Provide some existing mobile services/apps that can be included in library-created mobile websites. - Acquire best practices in mobile Web development from start to finish.

jquery mobilelibrariesmobile web
Responsive UX - One size fits all @BigDesign conference #BigD12
Responsive UX - One size fits all   @BigDesign conference #BigD12Responsive UX - One size fits all   @BigDesign conference #BigD12
Responsive UX - One size fits all @BigDesign conference #BigD12

The document discusses responsive UX, which is designing websites and applications that adapt to different screen sizes and devices using fluid grids, media queries, and responsive images; it provides examples of how to implement responsive design principles through fluid grids, image scaling, and media queries to build sites that automatically adjust for smartphones, tablets, and other devices.

responsive designfluiduxmedia queries

More Related Content

What's hot

Creating mobile apps without native code
Creating mobile apps without native codeCreating mobile apps without native code
Creating mobile apps without native code
Joakim Kemeny
 
How To Be an HTML5 Mobile Cloud Champion
How To Be an HTML5 Mobile Cloud ChampionHow To Be an HTML5 Mobile Cloud Champion
How To Be an HTML5 Mobile Cloud Champion
Chris Love
 
WebMatrix jQuery Mobile Web
WebMatrix jQuery Mobile WebWebMatrix jQuery Mobile Web
WebMatrix jQuery Mobile Web
Chris Love
 
Planning Your Progressive Web App
Planning Your Progressive Web AppPlanning Your Progressive Web App
Planning Your Progressive Web App
Jason Grigsby
 
The Future of the Web - Cold Front conference 2016
The Future of the Web - Cold Front conference 2016The Future of the Web - Cold Front conference 2016
The Future of the Web - Cold Front conference 2016
Robert Nyman
 
Progressive Web App Challenges
Progressive Web App ChallengesProgressive Web App Challenges
Progressive Web App Challenges
Jason Grigsby
 
Progressive Web Apps keynote, Google Developer Summit, Tokyo, Japan
Progressive Web Apps keynote, Google Developer Summit, Tokyo, JapanProgressive Web Apps keynote, Google Developer Summit, Tokyo, Japan
Progressive Web Apps keynote, Google Developer Summit, Tokyo, Japan
Robert Nyman
 
Why Nobody Fills Out My Forms 2 - Electric Boogalo (Updated)
Why Nobody Fills Out My Forms 2 - Electric Boogalo (Updated)Why Nobody Fills Out My Forms 2 - Electric Boogalo (Updated)
Why Nobody Fills Out My Forms 2 - Electric Boogalo (Updated)
Andrew Malek
 
Skill Session - Web Multi Device
Skill Session - Web Multi DeviceSkill Session - Web Multi Device
Skill Session - Web Multi Device
filirom1
 
Responsive web design & mobile web development - a technical and business app...
Responsive web design & mobile web development - a technical and business app...Responsive web design & mobile web development - a technical and business app...
Responsive web design & mobile web development - a technical and business app...
Atos_Worldline
 
2021 Chrome Dev Summit: Web Performance 101
2021 Chrome Dev Summit: Web Performance 1012021 Chrome Dev Summit: Web Performance 101
2021 Chrome Dev Summit: Web Performance 101
Tammy Everts
 
Making Mobile Sites Faster
Making Mobile Sites FasterMaking Mobile Sites Faster
Making Mobile Sites Faster
Andy Davies
 
Make mobile web apps rock
Make mobile web apps rockMake mobile web apps rock
Make mobile web apps rock
Chris Love
 
Martin bazley Creating effective content 15 Mar 11
Martin bazley Creating effective content 15 Mar 11Martin bazley Creating effective content 15 Mar 11
Martin bazley Creating effective content 15 Mar 11
Martin Bazley
 
Footprints
FootprintsFootprints
Footprints
Aceline Adam
 
Using Online, Interactive And Web 2.0 Technologies In Careers Work
Using Online, Interactive And Web 2.0 Technologies In Careers WorkUsing Online, Interactive And Web 2.0 Technologies In Careers Work
Using Online, Interactive And Web 2.0 Technologies In Careers Work
Helen Buzdugan
 
Velocity 2010: Performance Impact, Part Two: More Findings from the Front Lin...
Velocity 2010: Performance Impact, Part Two: More Findings from the Front Lin...Velocity 2010: Performance Impact, Part Two: More Findings from the Front Lin...
Velocity 2010: Performance Impact, Part Two: More Findings from the Front Lin...
Strangeloop
 
How slow load times hurt UX (and what you can do about it) [FluentConf 2016]
How slow load times hurt UX (and what you can do about it) [FluentConf 2016]How slow load times hurt UX (and what you can do about it) [FluentConf 2016]
How slow load times hurt UX (and what you can do about it) [FluentConf 2016]
Tammy Everts
 
eMarketing Guide
eMarketing  GuideeMarketing  Guide
Mobile Web High Performance
Mobile Web High PerformanceMobile Web High Performance
Mobile Web High Performance
Maximiliano Firtman
 

What's hot (20)

Creating mobile apps without native code
Creating mobile apps without native codeCreating mobile apps without native code
Creating mobile apps without native code
 
How To Be an HTML5 Mobile Cloud Champion
How To Be an HTML5 Mobile Cloud ChampionHow To Be an HTML5 Mobile Cloud Champion
How To Be an HTML5 Mobile Cloud Champion
 
WebMatrix jQuery Mobile Web
WebMatrix jQuery Mobile WebWebMatrix jQuery Mobile Web
WebMatrix jQuery Mobile Web
 
Planning Your Progressive Web App
Planning Your Progressive Web AppPlanning Your Progressive Web App
Planning Your Progressive Web App
 
The Future of the Web - Cold Front conference 2016
The Future of the Web - Cold Front conference 2016The Future of the Web - Cold Front conference 2016
The Future of the Web - Cold Front conference 2016
 
Progressive Web App Challenges
Progressive Web App ChallengesProgressive Web App Challenges
Progressive Web App Challenges
 
Progressive Web Apps keynote, Google Developer Summit, Tokyo, Japan
Progressive Web Apps keynote, Google Developer Summit, Tokyo, JapanProgressive Web Apps keynote, Google Developer Summit, Tokyo, Japan
Progressive Web Apps keynote, Google Developer Summit, Tokyo, Japan
 
Why Nobody Fills Out My Forms 2 - Electric Boogalo (Updated)
Why Nobody Fills Out My Forms 2 - Electric Boogalo (Updated)Why Nobody Fills Out My Forms 2 - Electric Boogalo (Updated)
Why Nobody Fills Out My Forms 2 - Electric Boogalo (Updated)
 
Skill Session - Web Multi Device
Skill Session - Web Multi DeviceSkill Session - Web Multi Device
Skill Session - Web Multi Device
 
Responsive web design & mobile web development - a technical and business app...
Responsive web design & mobile web development - a technical and business app...Responsive web design & mobile web development - a technical and business app...
Responsive web design & mobile web development - a technical and business app...
 
2021 Chrome Dev Summit: Web Performance 101
2021 Chrome Dev Summit: Web Performance 1012021 Chrome Dev Summit: Web Performance 101
2021 Chrome Dev Summit: Web Performance 101
 
Making Mobile Sites Faster
Making Mobile Sites FasterMaking Mobile Sites Faster
Making Mobile Sites Faster
 
Make mobile web apps rock
Make mobile web apps rockMake mobile web apps rock
Make mobile web apps rock
 
Martin bazley Creating effective content 15 Mar 11
Martin bazley Creating effective content 15 Mar 11Martin bazley Creating effective content 15 Mar 11
Martin bazley Creating effective content 15 Mar 11
 
Footprints
FootprintsFootprints
Footprints
 
Using Online, Interactive And Web 2.0 Technologies In Careers Work
Using Online, Interactive And Web 2.0 Technologies In Careers WorkUsing Online, Interactive And Web 2.0 Technologies In Careers Work
Using Online, Interactive And Web 2.0 Technologies In Careers Work
 
Velocity 2010: Performance Impact, Part Two: More Findings from the Front Lin...
Velocity 2010: Performance Impact, Part Two: More Findings from the Front Lin...Velocity 2010: Performance Impact, Part Two: More Findings from the Front Lin...
Velocity 2010: Performance Impact, Part Two: More Findings from the Front Lin...
 
How slow load times hurt UX (and what you can do about it) [FluentConf 2016]
How slow load times hurt UX (and what you can do about it) [FluentConf 2016]How slow load times hurt UX (and what you can do about it) [FluentConf 2016]
How slow load times hurt UX (and what you can do about it) [FluentConf 2016]
 
eMarketing Guide
eMarketing  GuideeMarketing  Guide
eMarketing Guide
 
Mobile Web High Performance
Mobile Web High PerformanceMobile Web High Performance
Mobile Web High Performance
 

Viewers also liked

A Minimalist's Guide to the Mobile Web
A Minimalist's Guide to the Mobile WebA Minimalist's Guide to the Mobile Web
A Minimalist's Guide to the Mobile Web
Jenifer Hanen
 
Mobile Photography for Artists' Works
Mobile Photography for Artists' WorksMobile Photography for Artists' Works
Mobile Photography for Artists' Works
Elan Morgan
 
Mobile Development on a Shoestring Connection
Mobile Development on a Shoestring ConnectionMobile Development on a Shoestring Connection
Mobile Development on a Shoestring Connection
Jenifer Hanen
 
Социальные сети и блоги. Цифры и смыслы
Социальные сети и блоги. Цифры и смыслыСоциальные сети и блоги. Цифры и смыслы
Социальные сети и блоги. Цифры и смыслы
Георгий Мамарин
 
Mobile UX
Mobile UXMobile UX
Mobile UX
Jenifer Hanen
 
EYE'EM @MobileArtConference 2010, NYU ITP
EYE'EM @MobileArtConference 2010, NYU ITPEYE'EM @MobileArtConference 2010, NYU ITP
EYE'EM @MobileArtConference 2010, NYU ITP
Flo Meissner
 

Viewers also liked (6)

A Minimalist's Guide to the Mobile Web
A Minimalist's Guide to the Mobile WebA Minimalist's Guide to the Mobile Web
A Minimalist's Guide to the Mobile Web
 
Mobile Photography for Artists' Works
Mobile Photography for Artists' WorksMobile Photography for Artists' Works
Mobile Photography for Artists' Works
 
Mobile Development on a Shoestring Connection
Mobile Development on a Shoestring ConnectionMobile Development on a Shoestring Connection
Mobile Development on a Shoestring Connection
 
Социальные сети и блоги. Цифры и смыслы
Социальные сети и блоги. Цифры и смыслыСоциальные сети и блоги. Цифры и смыслы
Социальные сети и блоги. Цифры и смыслы
 
Mobile UX
Mobile UXMobile UX
Mobile UX
 
EYE'EM @MobileArtConference 2010, NYU ITP
EYE'EM @MobileArtConference 2010, NYU ITPEYE'EM @MobileArtConference 2010, NYU ITP
EYE'EM @MobileArtConference 2010, NYU ITP
 

Similar to Mobilism 2011: How to put the mobile in the mobile web

Business of Front-end Web Development
Business of Front-end Web DevelopmentBusiness of Front-end Web Development
Business of Front-end Web Development
Rachel Andrew
 
Multi screen HTML5
Multi screen HTML5Multi screen HTML5
Multi screen HTML5
Ron Reiter
 
Best Practices for Mobile Web Design
Best Practices for Mobile Web DesignBest Practices for Mobile Web Design
Best Practices for Mobile Web Design
St. Petersburg College
 
Responsive UX - One size fits all @BigDesign conference #BigD12
Responsive UX - One size fits all   @BigDesign conference #BigD12Responsive UX - One size fits all   @BigDesign conference #BigD12
Responsive UX - One size fits all @BigDesign conference #BigD12
touchtitans
 
SMX@adtech: Mobile Local and Video Search — Cindy Krum
SMX@adtech: Mobile Local and Video Search — Cindy KrumSMX@adtech: Mobile Local and Video Search — Cindy Krum
SMX@adtech: Mobile Local and Video Search — Cindy Krum
adtech_fan
 
Bruce lawson-over-the-air
Bruce lawson-over-the-airBruce lawson-over-the-air
Bruce lawson-over-the-air
brucelawson
 
Developing for Mobile Web
Developing for Mobile WebDeveloping for Mobile Web
Developing for Mobile Web
Barbara Bermes
 
Optimizing content for the "mobile web"
Optimizing content for the "mobile web"Optimizing content for the "mobile web"
Optimizing content for the "mobile web"
Chris Mills
 
Bruce Lawson Opera Indonesia
Bruce Lawson Opera IndonesiaBruce Lawson Opera Indonesia
Bruce Lawson Opera Indonesia
brucelawson
 
Making your site mobile-friendly - DevCSI Reading 21.07.2010
Making your site mobile-friendly - DevCSI Reading 21.07.2010Making your site mobile-friendly - DevCSI Reading 21.07.2010
Making your site mobile-friendly - DevCSI Reading 21.07.2010
Patrick Lauke
 
10 Things To Make You a Great Mobile Web Developer
10 Things To Make You a Great Mobile Web Developer10 Things To Make You a Great Mobile Web Developer
10 Things To Make You a Great Mobile Web Developer
Tellago
 
10 things to make you a Great Mobile Web Developer
10 things to make you a Great Mobile Web Developer10 things to make you a Great Mobile Web Developer
10 things to make you a Great Mobile Web Developer
Chris Love
 
10 Things To Make You a Great Mobile Web Developer
10 Things To Make You a Great Mobile Web Developer10 Things To Make You a Great Mobile Web Developer
10 Things To Make You a Great Mobile Web Developer
Tellago
 
Mobilise your ASP.NET website
Mobilise your ASP.NET websiteMobilise your ASP.NET website
Mobilise your ASP.NET website
Matt Lacey
 
Flourish2011
Flourish2011Flourish2011
Flourish2011
Mark Meeker
 
Responsive web design
Responsive web designResponsive web design
Responsive web design
Oleksii Leonov
 
Pinkoi Mobile Web
Pinkoi Mobile WebPinkoi Mobile Web
Pinkoi Mobile Web
mikeleeme
 
Best Practices in Mobile Development: Building Your First jQuery Mobile App
Best Practices in Mobile Development: Building Your First jQuery Mobile AppBest Practices in Mobile Development: Building Your First jQuery Mobile App
Best Practices in Mobile Development: Building Your First jQuery Mobile App
St. Petersburg College
 
Responsive Web Design & the state of the Web
Responsive Web Design & the state of the WebResponsive Web Design & the state of the Web
Responsive Web Design & the state of the Web
Yiannis Konstantakopoulos
 
Responsive Web Design (HeadStart TechTalks)
Responsive Web Design (HeadStart TechTalks)Responsive Web Design (HeadStart TechTalks)
Responsive Web Design (HeadStart TechTalks)
Tirthesh Ganatra
 

Similar to Mobilism 2011: How to put the mobile in the mobile web (20)

Business of Front-end Web Development
Business of Front-end Web DevelopmentBusiness of Front-end Web Development
Business of Front-end Web Development
 
Multi screen HTML5
Multi screen HTML5Multi screen HTML5
Multi screen HTML5
 
Best Practices for Mobile Web Design
Best Practices for Mobile Web DesignBest Practices for Mobile Web Design
Best Practices for Mobile Web Design
 
Responsive UX - One size fits all @BigDesign conference #BigD12
Responsive UX - One size fits all   @BigDesign conference #BigD12Responsive UX - One size fits all   @BigDesign conference #BigD12
Responsive UX - One size fits all @BigDesign conference #BigD12
 
SMX@adtech: Mobile Local and Video Search — Cindy Krum
SMX@adtech: Mobile Local and Video Search — Cindy KrumSMX@adtech: Mobile Local and Video Search — Cindy Krum
SMX@adtech: Mobile Local and Video Search — Cindy Krum
 
Bruce lawson-over-the-air
Bruce lawson-over-the-airBruce lawson-over-the-air
Bruce lawson-over-the-air
 
Developing for Mobile Web
Developing for Mobile WebDeveloping for Mobile Web
Developing for Mobile Web
 
Optimizing content for the "mobile web"
Optimizing content for the "mobile web"Optimizing content for the "mobile web"
Optimizing content for the "mobile web"
 
Bruce Lawson Opera Indonesia
Bruce Lawson Opera IndonesiaBruce Lawson Opera Indonesia
Bruce Lawson Opera Indonesia
 
Making your site mobile-friendly - DevCSI Reading 21.07.2010
Making your site mobile-friendly - DevCSI Reading 21.07.2010Making your site mobile-friendly - DevCSI Reading 21.07.2010
Making your site mobile-friendly - DevCSI Reading 21.07.2010
 
10 Things To Make You a Great Mobile Web Developer
10 Things To Make You a Great Mobile Web Developer10 Things To Make You a Great Mobile Web Developer
10 Things To Make You a Great Mobile Web Developer
 
10 things to make you a Great Mobile Web Developer
10 things to make you a Great Mobile Web Developer10 things to make you a Great Mobile Web Developer
10 things to make you a Great Mobile Web Developer
 
10 Things To Make You a Great Mobile Web Developer
10 Things To Make You a Great Mobile Web Developer10 Things To Make You a Great Mobile Web Developer
10 Things To Make You a Great Mobile Web Developer
 
Mobilise your ASP.NET website
Mobilise your ASP.NET websiteMobilise your ASP.NET website
Mobilise your ASP.NET website
 
Flourish2011
Flourish2011Flourish2011
Flourish2011
 
Responsive web design
Responsive web designResponsive web design
Responsive web design
 
Pinkoi Mobile Web
Pinkoi Mobile WebPinkoi Mobile Web
Pinkoi Mobile Web
 
Best Practices in Mobile Development: Building Your First jQuery Mobile App
Best Practices in Mobile Development: Building Your First jQuery Mobile AppBest Practices in Mobile Development: Building Your First jQuery Mobile App
Best Practices in Mobile Development: Building Your First jQuery Mobile App
 
Responsive Web Design & the state of the Web
Responsive Web Design & the state of the WebResponsive Web Design & the state of the Web
Responsive Web Design & the state of the Web
 
Responsive Web Design (HeadStart TechTalks)
Responsive Web Design (HeadStart TechTalks)Responsive Web Design (HeadStart TechTalks)
Responsive Web Design (HeadStart TechTalks)
 

Recently uploaded

How Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdfHow Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdf
HackersList
 
What’s New in Teams Calling, Meetings and Devices May 2024
What’s New in Teams Calling, Meetings and Devices May 2024What’s New in Teams Calling, Meetings and Devices May 2024
What’s New in Teams Calling, Meetings and Devices May 2024
Stephanie Beckett
 
The Increasing Use of the National Research Platform by the CSU Campuses
The Increasing Use of the National Research Platform by the CSU CampusesThe Increasing Use of the National Research Platform by the CSU Campuses
The Increasing Use of the National Research Platform by the CSU Campuses
Larry Smarr
 
Password Rotation in 2024 is still Relevant
Password Rotation in 2024 is still RelevantPassword Rotation in 2024 is still Relevant
Password Rotation in 2024 is still Relevant
Bert Blevins
 
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
Kief Morris
 
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptxRPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
SynapseIndia
 
Observability For You and Me with OpenTelemetry
Observability For You and Me with OpenTelemetryObservability For You and Me with OpenTelemetry
Observability For You and Me with OpenTelemetry
Eric D. Schabell
 
Cookies program to display the information though cookie creation
Cookies program to display the information though cookie creationCookies program to display the information though cookie creation
Cookies program to display the information though cookie creation
shanthidl1
 
20240705 QFM024 Irresponsible AI Reading List June 2024
20240705 QFM024 Irresponsible AI Reading List June 202420240705 QFM024 Irresponsible AI Reading List June 2024
20240705 QFM024 Irresponsible AI Reading List June 2024
Matthew Sinclair
 
Calgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptxCalgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptx
ishalveerrandhawa1
 
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyyActive Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
RaminGhanbari2
 
20240702 QFM021 Machine Intelligence Reading List June 2024
20240702 QFM021 Machine Intelligence Reading List June 202420240702 QFM021 Machine Intelligence Reading List June 2024
20240702 QFM021 Machine Intelligence Reading List June 2024
Matthew Sinclair
 
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Erasmo Purificato
 
7 Most Powerful Solar Storms in the History of Earth.pdf
7 Most Powerful Solar Storms in the History of Earth.pdf7 Most Powerful Solar Storms in the History of Earth.pdf
7 Most Powerful Solar Storms in the History of Earth.pdf
Enterprise Wired
 
Recent Advancements in the NIST-JARVIS Infrastructure
Recent Advancements in the NIST-JARVIS InfrastructureRecent Advancements in the NIST-JARVIS Infrastructure
Recent Advancements in the NIST-JARVIS Infrastructure
KAMAL CHOUDHARY
 
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-InTrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc
 
WPRiders Company Presentation Slide Deck
WPRiders Company Presentation Slide DeckWPRiders Company Presentation Slide Deck
WPRiders Company Presentation Slide Deck
Lidia A.
 
Quality Patents: Patents That Stand the Test of Time
Quality Patents: Patents That Stand the Test of TimeQuality Patents: Patents That Stand the Test of Time
Quality Patents: Patents That Stand the Test of Time
Aurora Consulting
 
Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...
Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...
Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...
Chris Swan
 
Comparison Table of DiskWarrior Alternatives.pdf
Comparison Table of DiskWarrior Alternatives.pdfComparison Table of DiskWarrior Alternatives.pdf
Comparison Table of DiskWarrior Alternatives.pdf
Andrey Yasko
 

Recently uploaded (20)

How Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdfHow Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdf
 
What’s New in Teams Calling, Meetings and Devices May 2024
What’s New in Teams Calling, Meetings and Devices May 2024What’s New in Teams Calling, Meetings and Devices May 2024
What’s New in Teams Calling, Meetings and Devices May 2024
 
The Increasing Use of the National Research Platform by the CSU Campuses
The Increasing Use of the National Research Platform by the CSU CampusesThe Increasing Use of the National Research Platform by the CSU Campuses
The Increasing Use of the National Research Platform by the CSU Campuses
 
Password Rotation in 2024 is still Relevant
Password Rotation in 2024 is still RelevantPassword Rotation in 2024 is still Relevant
Password Rotation in 2024 is still Relevant
 
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
 
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptxRPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
 
Observability For You and Me with OpenTelemetry
Observability For You and Me with OpenTelemetryObservability For You and Me with OpenTelemetry
Observability For You and Me with OpenTelemetry
 
Cookies program to display the information though cookie creation
Cookies program to display the information though cookie creationCookies program to display the information though cookie creation
Cookies program to display the information though cookie creation
 
20240705 QFM024 Irresponsible AI Reading List June 2024
20240705 QFM024 Irresponsible AI Reading List June 202420240705 QFM024 Irresponsible AI Reading List June 2024
20240705 QFM024 Irresponsible AI Reading List June 2024
 
Calgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptxCalgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptx
 
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyyActive Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
 
20240702 QFM021 Machine Intelligence Reading List June 2024
20240702 QFM021 Machine Intelligence Reading List June 202420240702 QFM021 Machine Intelligence Reading List June 2024
20240702 QFM021 Machine Intelligence Reading List June 2024
 
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
 
7 Most Powerful Solar Storms in the History of Earth.pdf
7 Most Powerful Solar Storms in the History of Earth.pdf7 Most Powerful Solar Storms in the History of Earth.pdf
7 Most Powerful Solar Storms in the History of Earth.pdf
 
Recent Advancements in the NIST-JARVIS Infrastructure
Recent Advancements in the NIST-JARVIS InfrastructureRecent Advancements in the NIST-JARVIS Infrastructure
Recent Advancements in the NIST-JARVIS Infrastructure
 
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-InTrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
 
WPRiders Company Presentation Slide Deck
WPRiders Company Presentation Slide DeckWPRiders Company Presentation Slide Deck
WPRiders Company Presentation Slide Deck
 
Quality Patents: Patents That Stand the Test of Time
Quality Patents: Patents That Stand the Test of TimeQuality Patents: Patents That Stand the Test of Time
Quality Patents: Patents That Stand the Test of Time
 
Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...
Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...
Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...
 
Comparison Table of DiskWarrior Alternatives.pdf
Comparison Table of DiskWarrior Alternatives.pdfComparison Table of DiskWarrior Alternatives.pdf
Comparison Table of DiskWarrior Alternatives.pdf
 

Mobilism 2011: How to put the mobile in the mobile web

  • 1. How to put the Mobile in the Mobile Web
  • 2. Jenifer Hanen Design | Dev Mobile | Web
  • 3. Web Designer or Developer who is.... Mobile Curious? But not sure where to start?
  • 4. Let’s start on the Bunny Slopes...
  • 6. But... You Say...The client does not have the budget for a separate mobile site. And this was a Gorilla Mobile Website.
  • 7. Strip it all the way down <!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Ultimate Removal Mobile Site</title> <meta name="description" content="Ultimate Removal, Inc. is a demolition contractor in the tenant improvement niche of commercial construction. Ultimate Removal, Inc. is now one of the largest tenant improvement demolition contractors in the Los Angeles area." /> <link rel="shortcut icon" href="../images/favicon.ico" /> <link rel="stylesheet" type="text/css" href="mobile.css"/> <meta http-equiv="Cache-Control" content="max-age=600" /> </head> <body class="index"> ! <div id="index-container"> ! ! <h1 title="Ultimate Removal, Inc. | Demolition Contractor"><img src="../images/urilogosm.jpg" title="Ultimate Removal, Inc. | Demolition Contractor" alt="Ultimate Removal, Inc. | Demolition Contractor" / ></h1> ! ! ! <ul id="index-nav-list"><span></span> ! ! ! ! <li class="index-nav"><a href="about.php" accesskey="1">About Us</a></li> ! ! ! ! <li class="index-nav"><a href="#">|</a></li> ! ! ! ! <li class="index-nav"><a href="services.php" accesskey="3">Services</a></li> ! ! ! ! <li class="index-nav"><a href="#">|</a></li> ! ! ! ! <li class="index-nav"><a href="projects.php" accesskey="7">Projects</a></li> ! ! ! ! <li class="index-nav"><a href="#">|</a></li> ! ! ! ! <li class="index-nav"><a href="contact.php" accesskey="8">Contact Us </a></li> ! ! ! </ul> ! ! ! <h2 title="Ultimate Removal, Inc. - Demolition Contractor | Tenant Improvements | High Rise- rise Specialists | Hard & Soft Demolition | Concrete Sawing & Removal"><img src="../images/uritxtsm.jpg" title="Ultimate Removal, Inc. - Demolition Contractor | Tenant Improvements | High Rise-rise Specialists | Hard & Soft Demolition | Concrete Sawing & Removal" alt="Ultimate Removal, Inc. - Demolition Contractor | Tenant Improvements | High Rise-rise Specialists | Hard & Soft Demolition | Concrete Sawing & Removal" /></h2> ! ! </div> ! <div id="footer"><p>&copy; 2009 Ultimate Removal, Inc. All rights reserved. <a href="tel: +19095240800">Tel: 909-524-0800</a></p></div> ! <script type="text/javascript"> ! var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www."); ! document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/ javascript'%3E%3C/script%3E")); ! </script> ! <script type="text/javascript"> ! try { ! var pageTracker = _gat._getTracker("UA-8949178-1"); ! pageTracker._trackPageview(); ! } catch(err) {}</script> ! </body> ! </html>
  • 8. My Hunch was Right. ! <script type="text/javascript"> ! var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www."); ! document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/ javascript'%3E%3C/script%3E")); ! </script> ! <script type="text/javascript"> ! try { ! var pageTracker = _gat._getTracker("UA-8949178-1"); ! pageTracker._trackPageview(); ! } catch(err) {}</script> 6 months after launch, 57% of users were coming to the site via a BlackBerry browser, 23% with an iPhone, & the rest was desktop browsers.
  • 9. Let’s Talk Bandwidth: Meet Rita El Khoury Lebanese Pharmacist Mobilist Blogger ritaelkhoury.com iPod Nokia N8 HTC Desire Z
  • 10. Data is Expensive in Lebanon “Data plans in Lebanon are divided between prepaid and postpaid plans. Most people are on prepaid, the only deal they can get is a fixed 25MB/month for 5$ or 3$, non renewable before another month. On postpaid, we get 3 plans: 50MB for 10$, 120MB for 15$, 250MB for 30$. Every additional MB costs 0.10$. I am on the 120MB plan and I do just fine, most months hovering between 100 and 160mb of use. Those are all EDGE connections by the way, we have been on them for approximately 2years. 3.5G is promised to be deployed in the summer.” - Rita El Khoury, May 2011
  • 11. Not an Ad “For the mobile web, I exclusively use Opera Mini. Whether on my iPod, Nokia N8 or Desire Z, Opera Mini is the only browser I will use. Its data efficiency is the reason I can view all web pages I need access to on the go without going ridiculously over my cap.” - Rita El Khoury, 2011
  • 12. Without Flailing Around and SCREAMING...
  • 13. Three ways to put the Mobile in the Mobile Web: CSS : The famed and lauded Media Queries Javascript : Oh Braces, camelCase & Semicolons Server-Side : Fear Not
  • 14. <!DOCTYPE html> As always, we need to start with good, <html> semantic markup. XHTML or HTML5 ... Which should I use? </html> It depends... or <?xml version="1.0"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.1//EN" "http://www.w3.org/MarkUp/DTD/xhtml-basic11.dtd" > <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" > ... Update: It was pointed out to me by Jeremy Keith & Paul Stevens </html> that this is about DTDs, not XHTML v. HTML, will blog about this.
  • 15. CSS : The famed and lauded Media Queries http://www.flickr.com/photos/jcroft/112754603/
  • 16. In Ethan Marcotte’s Responsive Web Design article, he advocates for the use of: CSS @media types & query <link rel="stylesheet" type="text/css" media="screen and (max-device-width: 480px) and (resolution: 163dpi)" href="shetland.css" /> Flexible layout @media screen and (max-device-width: 480px) { .column { float: none; } } Flexible images @media screen and (max-width: 400px) { .figure, li#f-mycroft { margin-right: 3.317535545023696682%; /* 21px / 633px */ width: 48.341232227488151658%; /* 306px / 633px */ } li#f-watson, li#f-moriarty { margin-right: 0; } } http://www.alistapart.com/articles/responsive-web-design/
  • 17. Mr. Marcotte is not the only one who is a proponent of Responsive Web Design and Media Queries... Stephen Hay will be presenting next on Meta Layout: A Closer Look at Media Queries http://www.slideshare.net/slideshow/mobilism2011 For examples & inspiration: http://mediaqueri.es
  • 18. CSS Media Queries Pros and Cons: Pros: * Uses CSS, relatively simple for web workers * If budget does not allow for separate mobile web site, one can make it apart of current website that accounts for screen sizes. Cons: * Does not take into consideration bandwidth or kind of connection - mobile data or wifi? * While there are a few image reduction solutions, they are not quite there yet. * Umm.. Cough Cough... Internet Cough Explorer Cough... * Most importantly for data sippers, all scripts and media objects are loaded by the mobile browser even if the @media gives a different layout & images for the small screen.
  • 19. Mobile Sites Are A Must: Meet CJ! 3rd Culture Kid CompSci by Degree Blogger by Love zomgitscj.com.com iPad Nokia(s) Many Mobiles
  • 20. Why Mobile Sites Are A Must: “I think a lot of folks assume that everyone out there has a 3G plan, that's unlimited or has a lot of leeway. In India's case, that's definitely not true, and as such folks tend to avoid websites that might be too data intensive, or use way too much flash. A Mobile-friendly version is a must here, if you want people to visit your site. And unfortunately, at least here in Delhi, Free Wifi can be hard to find, so heading to a coffee shop to leach off their Wifi is not an option.” - CJ, May 2011
  • 21. -|cell|chtm|cldc|cmd-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc- s|devi|dica|dmob|do(c|p)o|ds(12|-d)|el(49|ai)|em(l2|ul)|er (ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(-|_)|g1 u|g560|gene| Javascript : Oh Braces, camelCase & Semicolons gf-5|g-mo|go(.w|od)|gr(ad|un)|haie|hcit|hd-(m|p|t)|hei-|hi (pt|ta)|hp( i|ip)|hs-c|ht(c(-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i-(20| Javascript opens up our options for Mobile go|ma)|i230|iac( |-|/)|ibro|idea|ig01|ikom|im1k|inno|ipaq| detection, which then allows us to create a iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |/)|klon|kpt |kwc-| better experience for the mobile web viewer. kyo(c|k)|le(no|xi)|lg( g|/(k|l|u)|50|54|e-|e/|-[a-w])|libw| lynx|m1-w|m3ga|m50/|ma(te|ui|xo)|mc(01|21|ca)|m-cr|me It can be as simple as using Javascript to detect if (di|rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(-| |o|v)| it is a mobile device, not just by user agent zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)| strings but by features of the mobile web n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)-|on|tf|wf|wg|wt)|nok(6|i)| browser. nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13| -([1-8]|c))|phil|pire|pl(ay|uc)|pn-2|po(ck|rt|se)|prox|psio|pt With Javascript there are several approaches: -g|qa-a|qc(07|12|21|32|60|-[2-7]|i-)|qtek|r380|r600|raks| rim9|ro(ve|zo)|s55/|sa(ge|ma|mm|ms|ny|va)|sc(01|h-|oo|p
  • 22. The Cudgel : User Agent Mobile Browser Detection (function(a,b){if(/android|avantgo|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)| iris|kindle|lge |maemo|midp|mmp|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)/|plucker|pocket|psp| symbian|treo|up.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(a)||/1207|6310| 6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)| aptu|ar(ch|go)|as(te|us)|attw|au(di|-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw-(n| u)|c55/|capi|ccwa|cdm-|cell|chtm|cldc|cmd-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc-s|devi|dica|dmob| do(c|p)o|ds(12|-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(-|_)|g1 u|g560|gene|gf -5|g-mo|go(.w|od)|gr(ad|un)|haie|hcit|hd-(m|p|t)|hei-|hi(pt|ta)|hp( i|ip)|hs-c|ht(c(-| |_|a|g|p|s|t)| tp)|hu(aw|tc)|i-(20|go|ma)|i230|iac( |-|/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu| jigs|kddi|keji|kgt( |/)|klon|kpt |kwc-|kyo(c|k)|le(no|xi)|lg( g|/(k|l|u)|50|54|e-|e/|-[a-w])|libw|lynx| m1-w|m3ga|m50/|ma(te|ui|xo)|mc(01|21|ca)|m-cr|me(di|rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de| do|t(-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c| m)-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|-([1-8]|c))| phil|pire|pl(ay|uc)|pn-2|po(ck|rt|se)|prox|psio|pt-g|qa-a|qc(07|12|21|32|60|-[2-7]|i-)|qtek|r380| r600|raks|rim9|ro(ve|zo)|s55/|sa(ge|ma|mm|ms|ny|va)|sc(01|h-|oo|p-)|sdk/|se(c(-|0|1)|47|mc|nd|ri)| sgh-|shar|sie(-|m)|sk-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h-|v-|v )|sy(01|mb)|t2(18|50)|t6 (00|10|18)|ta(gt|lk)|tcl-|tdg-|tel(i|m)|tim-|t-mo|to(pl|sh)|ts(70|m-|m3|m5)|tx-9|up(.b|g1|si)|utst| v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(-| )| webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|xda(-|2|g)|yas-|your|zeto|zte-/i.test(a.substr(0,4))) window.location=b})(navigator.userAgent||navigator.vendor||window.opera,'http:// detectmobilebrowser.com/mobile'); From http://detectmobilebrowser.com/
  • 23. The Ballet Dancer : Mobile Browser Feature Detection // Modernizr v1.7 www.modernizr.com window.Modernizr=function(a,b,c){function G(){e.input=function(a){for(var b=0,c=a.length;b<c;b++)t[a[b]]=!!(a[b]in l);return t}("autocomplete autofocus list placeholder max min multiple pattern required step".split(" ")),e.inputtypes=function(a){for(var d=0,e,f,h,i=a.length;d<i;d++)l.setAttribute("type",f=a[d]),e=l.type!=="text",e&& (l.value=m,l.style.cssText="position:absolute;visibility:hidden;",/^range$/.test(f)&&l.style.WebkitAppearance!==c?(g.appendChild (l),h=b.defaultView,e=h.getComputedStyle&&h.getComputedStyle(l,null).WebkitAppearance!=="textfield"&&l.offsetHeight!==0,g.removeChild(l)):/^(search|tel)$/.test(f)||(/^ (url|email)$/.test(f)?e=l.checkValidity&&l.checkValidity()===!1:/^color$/.test(f)?(g.appendChild(l),g.offsetWidth,e=l.value!=m,g.removeChild(l)):e=l.value!=m)),s[a[d]] =!!e;return s}("search tel url email datetime date month week time datetime-local number range color".split(" "))}function F(a,b){var c=a.charAt(0).toUpperCase() +a.substr(1),d=(a+" "+p.join(c+" ")+c).split(" ");return!!E(d,b)}function E(a,b){for(var d in a)if(k[a[d]]!==c&&(!b||b(a[d],j)))return!0}function D(a,b){return (""+a).indexOf(b)!==-1}function C(a,b){return typeof a===b}function B(a,b){return A(o.join(a+";")+(b||""))}function A(a){k.cssText=a}var d="1.7",e={},f=! 0,g=b.documentElement,h=b.head||b.getElementsByTagName("head")[0],i="modernizr",j=b.createElement(i),k=j.style,l=b.createElement ("input"),m=":)",n=Object.prototype.toString,o=" -webkit- -moz- -o- -ms- -khtml- ".split(" "),p="Webkit Moz O ms Khtml".split(" "),q={svg:"http://www.w3.org/2000/ svg"},r={},s={},t={},u=[],v,w=function(a){var c=b.createElement("style"),d=b.createElement("div"),e;c.textContent=a+"{#modernizr{height:3px}}",h.appendChild (c),d.id="modernizr",g.appendChild(d),e=d.offsetHeight===3,c.parentNode.removeChild(c),d.parentNode.removeChild(d);return!!e},x=function(){function d(d,e){e=e|| b.createElement(a[d]||"div");var f=(d="on"+d)in e;f||(e.setAttribute||(e=b.createElement("div")),e.setAttribute&&e.removeAttribute&&(e.setAttribute(d,""),f=C(e [d],"function"),C(e[d],c)||(e[d]=c),e.removeAttribute(d))),e=null;return f}var a= {select:"input",change:"input",submit:"form",reset:"form",error:"img",load:"img",abort:"img"};return d}(),y=({}).hasOwnProperty,z;C(y,c)||C(y.call,c)?z=function(a,b) {return b in a&&C(a.constructor.prototype[b],c)}:z=function(a,b){return y.call(a,b)},r.flexbox=function(){function c(a,b,c,d){a.style.cssText=o.join(b+":"+c+";")+ (d||"")}function a(a,b,c,d){b+=":",a.style.cssText=(b+o.join(c+";"+b)).slice(0,-b.length)+(d||"")}var d=b.createElement("div"),e=b.createElement("div");a (d,"display","box","width:42px;padding:0;"),c(e,"box-flex","1","width:10px;"),d.appendChild(e),g.appendChild(d);var f=e.offsetWidth===42;d.removeChild(e),g.removeChild (d);return f},r.canvas=function(){var a=b.createElement("canvas");return a.getContext&&a.getContext("2d")},r.canvastext=function(){return e.canvas&&C(b.createElement ("canvas").getContext("2d").fillText,"function")},r.webgl=function(){return!!a.WebGLRenderingContext},r.touch=function(){return"ontouchstart"in a||w("@media ("+o.join ("touch-enabled),(")+"modernizr)")},r.geolocation=function(){return!!navigator.geolocation},r.postmessage=function(){return!!a.postMessage},r.websqldatabase=function() {var b=!!a.openDatabase;return b},r.indexedDB=function(){for(var b=-1,c=p.length;++b<c;){var d=p[b].toLowerCase();if(a[d+"_indexedDB"]||a[d+"IndexedDB"])return!0}return! 1},r.hashchange=function(){return x("hashchange",a)&&(b.documentMode===c||b.documentMode>7)},r.history=function(){return !! (a.history&&history.pushState)},r.draganddrop=function(){return x("dragstart")&&x("drop")},r.websockets=function(){return"WebSocket"in a},r.rgba=function(){A ("background-color:rgba(150,255,150,.5)");return D(k.backgroundColor,"rgba")},r.hsla=function(){A("background-color:hsla(120,40%,100%,.5)");return D (k.backgroundColor,"rgba")||D(k.backgroundColor,"hsla")},r.multiplebgs=function(){A("background:url(//:),url(//:),red url(//:)");return(new RegExp("(urls*(.*?) {3}")).test(k.background)},r.backgroundsize=function(){return F("backgroundSize")},r.borderimage=function(){return F("borderImage")},r.borderradius=function(){return F ("borderRadius","",function(a){return D(a,"orderRadius")})},r.boxshadow=function(){return F("boxShadow")},r.textshadow=function(){return b.createElement ("div").style.textShadow===""},r.opacity=function(){B("opacity:.55");return/^0.55$/.test(k.opacity)},r.cssanimations=function(){return F ("animationName")},r.csscolumns=function(){return F("columnCount")},r.cssgradients=function(){var a="background-image:",b="gradient(linear,left top,right bottom,from (#9f9),to(white));",c="linear-gradient(left top,#9f9, white);";A((a+o.join(b+a)+o.join(c+a)).slice(0,-a.length));return D (k.backgroundImage,"gradient")},r.cssreflections=function(){return F("boxReflect")},r.csstransforms=function(){return!!E (["transformProperty","WebkitTransform","MozTransform","OTransform","msTransform"])},r.csstransforms3d=function(){var a=!!E (["perspectiveProperty","WebkitPerspective","MozPerspective","OPerspective","msPerspective"]);a&&"webkitPerspective"in g.style&&(a=w("@media ("+o.join("transform-3d),(") +"modernizr)"));return a},r.csstransitions=function(){return F("transitionProperty")},r.fontface=function(){var a,c,d=h||g,e=b.createElement ("style"),f=b.implementation||{hasFeature:function(){return!1}};e.type="text/css",d.insertBefore(e,d.firstChild),a=e.sheet||e.styleSheet;var i=f.hasFeature("CSS2","")? function(b){if(!a||!b)return!1;var c=!1;try{a.insertRule(b,0),c=/src/i.test(a.cssRules[0].cssText),a.deleteRule(a.cssRules.length-1)}catch(d){}return c}:function(b){if(! a||!b)return!1;a.cssText=b;return a.cssText.length!==0&&/src/i.test(a.cssText)&&a.cssText.replace(/r+|n+/g,"").indexOf(b.split(" ")[0])===0};c=i('@font-face { font- family: "font"; src: url(data:,); }'),d.removeChild(e);return c},r.video=function(){var a=b.createElement("video"),c=!!a.canPlayType;if(c){c=new Boolean (c),c.ogg=a.canPlayType('video/ogg; codecs="theora"');var d='video/mp4; codecs="avc1.42E01E';c.h264=a.canPlayType(d+'"')||a.canPlayType(d+', mp4a. 40.2"'),c.webm=a.canPlayType('video/webm; codecs="vp8, vorbis"')}return c},r.audio=function(){var a=b.createElement("audio"),c=!!a.canPlayType;c&&(c=new Boolean (c),c.ogg=a.canPlayType('audio/ogg; codecs="vorbis"'),c.mp3=a.canPlayType("audio/mpeg;"),c.wav=a.canPlayType('audio/wav; codecs="1"'),c.m4a=a.canPlayType("audio/x- m4a;")||a.canPlayType("audio/aac;"));return c},r.localstorage=function(){try{return!!localStorage.getItem}catch(a){return!1}},r.sessionstorage=function(){try{return!! sessionStorage.getItem}catch(a){return!1}},r.webWorkers=function(){return!!a.Worker},r.applicationcache=function(){return!!a.applicationCache},r.svg=function(){return!! b.createElementNS&&!!b.createElementNS(q.svg,"svg").createSVGRect},r.inlinesvg=function(){var a=b.createElement("div");a.innerHTML="<svg/>";return (a.firstChild&&a.firstChild.namespaceURI)==q.svg},r.smil=function(){return!!b.createElementNS&&/SVG/.test(n.call(b.createElementNS (q.svg,"animate")))},r.svgclippaths=function(){return!!b.createElementNS&&/SVG/.test(n.call(b.createElementNS(q.svg,"clipPath")))};for(var H in r)z(r,H)&& (v=H.toLowerCase(),e[v]=r[H](),u.push((e[v]?"":"no-")+v));e.input||G(),e.crosswindowmessaging=e.postmessage,e.historymanagement=e.history,e.addTest=function(a,b) {a=a.toLowerCase();if(!e[a]){b=!!b(),g.className+=" "+(b?"":"no-")+a,e[a]=b;return e}},A(""),j=l=null,f&&a.attachEvent&&function(){var a=b.createElement ("div");a.innerHTML="<elem></elem>";return a.childNodes.length!==1}()&&function(a,b){function p(a,b){var c=-1,d=a.length,e,f=[];while(++c<d)e=a[c],(b=e.media||b)! ="screen"&&f.push(p(e.imports,b),e.cssText);return f.join("")}function o(a){var b=-1;while(++b<e)a.createElement(d[b])}var c="abbr|article|aside|audio|canvas|details| figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",d=c.split("|"),e=d.length,f=new RegExp("(^|s)("+c+")","gi"),g=new RegExp("<(/*)("+c+")","gi"),h=new RegExp("(^|[^n]*?s)("+c+")([^n]*)({[nwW]*?})","gi"),i=b.createDocumentFragment (),j=b.documentElement,k=j.firstChild,l=b.createElement("body"),m=b.createElement("style"),n;o(b),o(i),k.insertBefore(m,k.firstChild),m.media="print",a.attachEvent ("onbeforeprint",function(){var a=-1,c=p(b.styleSheets,"all"),k=[],o;n=n||b.body;while((o=h.exec(c))!=null)k.push((o[1]+o[2]+o[3]).replace(f,"$1.iepp_$2")+o [4]);m.styleSheet.cssText=k.join("n");while(++a<e){var q=b.getElementsByTagName(d[a]),r=q.length,s=-1;while(++s<r)q[s].className.indexOf("iepp_")<0&&(q[s].className+=" iepp_"+d[a])}i.appendChild(n),j.appendChild(l),l.className=n.className,l.innerHTML=n.innerHTML.replace(g,"<$1font")}),a.attachEvent("onafterprint",function() {l.innerHTML="",j.removeChild(l),j.appendChild(n),m.styleSheet.cssText=""})}(a,b),e._enableHTML5=f,e._version=d,g.className=g.className.replace(/bno-jsb/,"")+" js "+u.join(" ");return e}(this,this.document) From http://modernizr.com/
  • 24. One Not So Small Problem Not all mobile browsers are Javascript equal and some feature phones have little to no Javascript. Please refer to the Mobile Compatibility tables: http://quirksmode.org/m/table.html
  • 25. But we can’t count Javascript out... Many have great hopes that JQuery Mobile will mature in a way that the web trio of HTML/CSS/JS will be more than enough for the mobile web, as well as, other future Javascript solutions for the mobile browser. Scott Jehl will be presenting on JQuery Mobile after lunch
  • 26. How do we build for a complex Mobile Web? Meet Chandrachoodan Filmaker / Archaeologist MA from U. of Bristol Photographer Blogger Chennai Proud Nokia E63
  • 27. “I think that support for Indic scripts would be very important in the future. More and more Tamil/ Hindi/Indian language publications are getting online, and a lot of Tamil blogs already exist. So support for Indic scripts on the mobile web essential. I realise this is an issue with slightly older phones and that newer phones come with UTF-8 support.” - Chandru, May 2011 Photo by Jenifer Hanen
  • 28. Server-Side : Fear Not You have determined that you need a mobile web site or app that works for many connected mobile devices, including ones that Javascript may not work with and for users who are bandwidth sensitive. Time to look to the server. If the word server-side gives strikes fear in your gut, worry not, if you are willing to calculate fluid grid percentages to the 8th decimal point then what is a wee bit of server-side scripting between friends... margin-right: 3.317535545023696682%; width: 48.341232227488151658%;
  • 29. The PHP Script from Detect Mobile Browser <?php $useragent=$_SERVER['HTTP_USER_AGENT']; if(preg_match('/android|avantgo|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle| lge |maemo|midp|mmp|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)/|plucker|pocket|psp|symbian|treo|up. (browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i',$useragent)||preg_match('/1207|6310|6590|3gso| 4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)| attw|au(di|-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw-(n|u)|c55/|capi|ccwa|cdm-|cell| chtm|cldc|cmd-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc-s|devi|dica|dmob|do(c|p)o|ds(12|-d)|el(49|ai)|em(l2|ul)|er (ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(-|_)|g1 u|g560|gene|gf-5|g-mo|go(.w|od)|gr(ad|un)|haie|hcit|hd-(m|p| t)|hei-|hi(pt|ta)|hp( i|ip)|hs-c|ht(c(-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i-(20|go|ma)|i230|iac( |-|/)|ibro|idea|ig01|ikom| im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |/)|klon|kpt |kwc-|kyo(c|k)|le(no|xi)|lg( g|/(k|l|u)|50|54|e -|e/|-[a-w])|libw|lynx|m1-w|m3ga|m50/|ma(te|ui|xo)|mc(01|21|ca)|m-cr|me(di|rc|ri)|mi(o8|oa|ts)|mmef|mo (01|02|bi|de|do|t(-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne ((c|m)-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|-([1-8]|c))|phil| pire|pl(ay|uc)|pn-2|po(ck|rt|se)|prox|psio|pt-g|qa-a|qc(07|12|21|32|60|-[2-7]|i-)|qtek|r380|r600|raks|rim9|ro (ve|zo)|s55/|sa(ge|ma|mm|ms|ny|va)|sc(01|h-|oo|p-)|sdk/|se(c(-|0|1)|47|mc|nd|ri)|sgh-|shar|sie(-|m)|sk-0|sl (45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h-|v-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl-|tdg-|tel(i|m)| tim-|t-mo|to(pl|sh)|ts(70|m-|m3|m5)|tx-9|up(.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|-v)|vm40| voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|xda(-|2|g)|yas -|your|zeto|zte-/i',substr($useragent,0,4))) header('Location: http://detectmobilebrowser.com/mobile'); ?> Looks quite a bit like the Javascript DMB script, the RegEx for mobile browser UA’s remains the same, but the Javascript is swapped out for PHP at the top & bottom. http://detectmobilebrowser.com/
  • 30. <?xml version="1.0" encoding="UTF-8"?> <wurfl> WURFL <version> <ver>www.wurflpro.com - 2011-04-24 12:07:53</ver> <last_updated>Sun Apr 24 12:09:17 -0500 2011</last_updated> <official_url>http://wurfl.sourceforge.net/</official_url> ! <maintainers> ! <maintainer name="Luca Passani" email="luca.passani at gmail point “The WURFL is an XML configuration file which contains com" home_page="http://www.wurfl.com"/> ! </maintainers> information about capabilities and features of many mobile ! <authors> devices. ! <author name="Luca Passani" email="luca.passani at gmail point com" home_page="http://www.wurfl.com"/> ! </authors> </version> The main scope of the file is to collect as much <devices> information as we can about all the existing mobile <device id="generic" user_agent="" fall_back="root"> <group id="product_info"> devices that access WAP pages so that developers will be <capability name="mobile_browser" value=""/> able to build better applications and better services for <capability name="nokia_feature_pack" value="0"/> <capability name="device_os" value=""/> the users. <capability name="nokia_series" value="0"/> <capability name="has_qwerty_keyboard" value="false"/> <capability name="pointing_method" value=""/> This project is open-source and is intended for developers <capability name="mobile_browser_version" value=""/> <capability name="is_tablet" value="false"/> working with the WAP and Wireless. All the information <capability name="nokia_edition" value="0"/> listed here has been collected by many different people <capability name="uaprof" value=""/> <capability name="can_skip_aligned_link_row" value="false"/> from many different countries.You are allowed to use <capability name="device_claims_web_support" value="false"/> <capability name="ununiqueness_handler" value=""/> WURFL in any of your applications, free or commercial. <capability name="model_name" value=""/> The only thing required is to make any modification to <capability name="device_os_version" value=""/> <capability name="uaprof2" value=""/> this file public, following the original spirit and idea of the <capability name="is_wireless_device" value="true"/> <capability name="uaprof3" value=""/> creators of this project. This will help WURFL to grow <capability name="brand_name" value=""/> better and better every day.” - Luca Passini <capability name="model_extra_info" value=""/> <capability name="marketing_name" value=""/> <capability name="can_assign_phone_number" value="true"/> <capability name="release_date" value="2002_january"/> <capability name="unique" value="true"/> http://wurfl.sourceforge.net </group> <group id="wml_ui"> <capability name="icons_on_menu_items_support" value="false"/> http://tera-wurfl.com/explore/ <capability name="opwv_wml_extensions_support" value="false"/> <capability name="built_in_back_button_support" value="false"/> <capability name="proportional_font" value="false"/> <capability name="insert_br_element_after_widget_recommended" value="false"/> <capability name="wizards_recommended" value="false"/> <capability name="wml_can_display_images_and_text_on_same_line" value="false"/> <capability name="softkey_support" value="false"/> <capability name="wml_make_phone_call_string" value="wtai://wp/mc;"/> <capability name="deck_prefetch_support" value="false"/> <capability name="menu_with_select_element_recommended" value="false"/>
  • 31. What Challenges do you face with bandwidth? Meet Jason San Francisco Web Developer Photographer iPhone
  • 32. San Francisco, Connection Black Hole “It depends on where I am. At my old place in the Inner Sunset, very rarely did my phone drop calls, and I always had great reception. Now in the Castro, and when I'm downtown, I get dropped calls frequently, and at home I need to be near the windows at the front of the apartment to make sure I don't lose reception. Even then, it might not help. If I happen to walk into the kitchen without thinking about it, I might as well say "good bye" on the way because the call will certainly drop. At home, when I'm visiting friends, or somewhere with free wifi, I just turn on wifi. Otherwise I just have to be patient. My mobile data usage is rarely time-sensitive, so I don't usually stress out about it. The only time I feel it's critical is when I'm using the maps app for directions. That's the worst time to be left in the lurch. There's no section at home that's a black hole for data, though you think there would be, given the above.” - Jason, May 2011
  • 33. Possible Solutions: Form a grassroots set of folk to work up the hybrid server/client side solution for mobile browser and feature detection as proposed in Brian Rieger’s presentation Work with browser makers for a more complete feature profile and to alert of user preferences on data, media, and current context. We are all here now, what are we willing to accomplish & organize? The Mobile Web is young, let’s keep the lines of communication open and work together.
  • 34. How To Get from Here to There The Mobilism Presentations that Go in More Detail: Steve Hay on Media Queries : http://slideshare.net/stephenhay/mobilism2011 Scott Jehl on Mobile JQuery (he will be posting this later after permission is gained) Brian Rieger on Muddling Through the Mobile Web : http://slideshare.net/yiibu/ muddling-through-the-mobile-web
  • 35. Resources:Text W3C's Mobile Web Best Practices http://www.w3.org/TR/mobile-bp/ W3C's Mobile Web Application Best Practices http://www.w3.org/TR/mwabp/ W3C Media Queries http://www.w3.org/TR/css3-mediaqueries/ Global Authoring Practices for the Mobile Web http://www.passani.it/gap/ USC's Best Practices in Mobile Detection http://webservices.usc.edu/blog/development/mobile_detection/ Quirksmode Mobile http://quirksmode.org/mobile/ Detect Mobile Browser http://detectmobilebrowser.com/ Modernizr http://www.modernizr.com/ Simple javascript mobile OS detector http://blog.justin.kelly.org.au/simple-javascript-mobile-os-detector WURFL http://wurfl.sourceforge.net/ Deploying WURFL http://wurfl.sourceforge.net/newapi/ Tera-WURFL UA & Feature Explorer http://tera-wurfl.com/explore/ James Pearce's Modernizr-server https://github.com/jamesgpearce/modernizr-server The Switcher http://www.passani.it/switcher/ Manifesto for Responsible Reformatting http://wurfl.sourceforge.net/manifesto/
  • 36. Thank you! Jenifer Hanen :: Black Phoebe Designs @msjen blackphoebe.com/msjen Please watch twitter | blog for the Slideshare URL of this Presentation