1. Overview
‣ The Power and Future of Mobile
‣ Mobile Browsers and Engines (WebKit/HTML5)
‣ CBC Mobile Services (Apps/Sites)
‣ Web Apps, Native Apps and Hybrid Apps
‣ Mobile Web Information Architecture
‣ Enabling Your Site for Mobile Web
‣ Optimization / Best Practices / (Debugging) Tools
‣ Links/Literature Resources
7. Print Recordings
Radio Television
Cinema The Internet
Mobile
8. Print Recordings
Radio Television
Cinema The Internet
Mobile
Mobile is the only mass media that can do
everything the previous six can do
Source: http://en.wikipedia.org/wiki/Seven_mass_media
10. First truly personal mass media Permanently carried
First “always on” mass media Built-in payment channel
Most accurate audience measurement
http://www.flickr.com/photos/blogumentary/3947228410/sizes/o/in/faves-caseymckinnon/ Source: http://en.wikipedia.org/wiki/Seven_mass_media
11. Desktop vs. Mobile Browsing
http://www.motivationalmemo.com/wp-content/uploads/2010/06/change.jpg
12. Mobile Users vs. Desktop Users
Source: Morgan Stanley Research, http://gigaom.com/2010/04/12/mary-meeker-mobile-internet-will-soon-overtake-fixed-internet/
13. Enough Reasons to go mobile?
...but what mobile platform should you target?
Let’s look at mobile browsers and engines
http://bunkadefresh.com/wp-content/uploads/2010/07/evophones2.jpg
14. What browsers should you develop for?
Source: http://gs.statcounter.com/#mobile_browser-na-yearly-2009-2011-bar
15. Mobile Grade Browsers
A
A browser that’s capable of, at minimum,
utilizing media queries, support HTML5,
WebKit Engine, CSS, JavaScript
B
A browser that’s capable of minimum
CSS and JavaScript
C
A browser that is not capable of utilizing
media queries. Watch out for complicated
JS, CSS — they DON’T support them
Source: JQuery Mobile, http://jquerymobile.com/gbs/
16. Device vs. Browser
Feature Phones Smart Phones Touch Phones
FlipPhone, e.g. Samsung e.g. most BlackBerry’s before Torch (i.e. Bold, Curve) e.g. Google Nexus, BB Torch, iPhone
C B A A
http://gizmodo.com/5090988/mobile-browser-battlemodo-which-phones-deliver-the-real-web
24. CBC Mobile Site Strategy
‣ To cover A, B and C grade mobile browsers by
creating three main mobile sites that encompass the
different features and limitations of those browsers.
25. CBC Mobile Sites
TOUCH RICH TEXT
cbc.ca/m/touch cbc.ca/m/rich cbc.ca/m/text
Device Touch Devices Mostly BB devices Feature Phones
Browser A-Grade B/C-Grade C-Grade
‣Extended use of JavaScript ‣Simple CSS and JavaScript ‣ No images/photos
and Ajax ‣Simple Media (Story images, ‣ Simple navigation, less links
‣WebKit based, CSS3, CSS Photo Galleries) ‣ No complicated JavaScript, simple
Features sprites, conditional CSS ‣Use of resized story images CSS
‣Photo galleries and videos (prefix s_)
‣Use of resized story images
(prefix t_)
Site/Device
26. Web App, Native App and Hybrid App
‣ Why would you want to have a web app in addition to/
instead of a native app?
27. Web vs. Native vs. Hybrid Apps
Web Apps Native Apps
‣ Easy distribution/installation ‣ Possible complicated distribution trough app
‣ Native Look & Feel stores, fees/charges
‣ Works on all platforms ‣ Strict UI Guidelines
‣ Single click using HTML5,Ajax ‣ Easy attention through app store
‣ Offline Storage ‣ Platform-dependent
‣ No advertisement restrictions ‣ New app for each platform (knowledge of
‣ Fast development time, any web developer language, Objective-C, Java etc)
can create web app ‣ Full Access to native APIs, features, i.e.
‣ BUT Cannot access all native features, i.e camera, calendar, address book, push
compass, camera etc. notification
Example: Google Gmail
Hybrid Apps
‣ Web app wrapped around native app
‣ Access to native APIs
Example: BlackBerry WebWorks, iOS/Android with webviews
28. What do you have to do to enable your website for mobile?
29. Mobile Information Architecture
"If you design for mobile first, you can create agreement
first on what matters most."
— Luke Wroblewski, previous Chief Design Architect at Yahoo!
30. Mobile Information Architecture
‣ Touch phones: big buttons, most of the real-estate
should be clickable
‣ Smart phones: track ball, avoid too many links as
user has to scroll down, use easy navigation items,
i.e. anchors
31. Mobile Information Architecture
Guidelines for Mobile URLs:
Make it easy for user to type in your mobile site URL
‣ m.cbc.ca
‣ touch.facebook.com
‣ mobile.twitter.com
and enable auto redirection ...
32. Redirect to Mobile
‣ Decide on user agent strings
Mozilla/5.0 (webOS/1.0; U; en-US) Mozilla/5.0 (BlackBerry; U; SAMSUNG-D900E/D900EXAIC1
AppleWebKit/525.27.1 (KHTML, like BlackBerry 9800; en) AppleWebKit/ NetFront/3.5 Profile/MIDP-2.0
Gecko) Version/1.0 Safari/ 534.1+ (KHTML, like Gecko) Configuration/CLDC-1.1
525.27.1 Pre/1.0 Version/6.0.0.135 Mobile Safari/
534.1+
v v v
36. Customizing for Devices/
Platforms
‣ Create the best user experience possible based on
user’s platform/device
‣ Know device/browser specific features and take
advantage of them
37. Customizing for Devices/OS
‣ Using JavaScript to detect user agent and show content only based on that:
if (navigator.userAgent.indexOf("iPod") != -1 ||
navigator.userAgent.indexOf("iPhone") != -1){
// do device specific stuff, e.g. show QT videos or show menu items
}
‣ Using Media Queries, e.g. calling an iPhone/Mobile stylesheet:
<link media="only screen and (max-device-width: 480px)" href="mobile.css"
type= "text/css" rel="stylesheet">
<link media="screen and (min-device-width: 481px)" href="other.css"
type="text/css" rel="stylesheet"/>
38. Customizing for Devices/OS
‣ BlackBerry users get extra information presented
<!--#if expr="$HTTP_USER_AGENT = /BlackBerry/" -->
<div class="wspromo">
<a href="/m/rich/websignal.html"
title=”Subscribe to WebSignal Alert”>
Get CBC's Websignal Alert</a>
</div>
<!--#endif -->
‣ iOS: Disable automatic phone number detection
<meta name = "format-detection" content ="telephone=no"/>
39. Customizing for Devices/OS
‣ Fallbacks
‣ CSS
<!--#if expr="$HTTP_USER_AGENT = /BlackBerry/" -->
<!--#if expr="$osversion != /4.2([^&]*)/" -->
<div class="nocss">You don't have CSS enabled. To have a better experience,
please turn on background images and CSS on your device.</div>
<!--#endif -->
<!--#endif -->
‣ JavaScript
<noscript>To access the site with all its functionality, please enable JavaScript.</noscript>
40. Make it a Web App
‣ iPhone: Full screen without browser bar
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta names="apple-mobile-web-app-status-bar-style"
content="black-translucent" />
‣ iPhone: Add to Home Screen Box
‣ iPhone: Home Screen Icon
<link rel="apple-touch-icon" href="img/cbc-touch-icon.png"/>
42. Optimization
‣ Minimize HTTP requests
‣ Put CSS at top of page
‣ Put JavaScript scripts at bottom of page
‣ Avoid images where possible and/or optimize images
‣ Use CSS3 features instead of images, i.e. border radius, gradient
border-radius: 10px; /* gecko based browsers */
-moz-border-radius: 10px; background: -moz-linear-gradient(top, #55aaee, #003366);
-webkit-border-radius: 10px; /* webkit based browsers */
background: -webkit-gradient(linear, left top, left
bottom, from(#55aaee), to(#000000));
43. Optimization
‣ Use image sprites
‣ Image optimization via Smush.it
‣ Consider mobile image resizer solutions: Resizing images
for all major device widths via device detection
‣ Don’t scale images in HTML
‣ Use minified scripts, i.e. js, css (YSlow)
‣ Reduce number of DOM Element
//avoid
var divArr = document.getElementByClassName(“story-images”);
//The number of DOM elements is easy to test, just type in Firebug's console:
document.getElementsByTagName('*').length
‣ Read more under http://developer.yahoo.com/performance/rules.html
44. CBC Full-site vs. CBC mobile sites
cbcnews.ca cbc.ca/m/touch/news cbc.ca/m/rich/news
(including Canada Votes) (including Canada Votes)
837.5 K 72.1 K 28.9 K
cbc.ca/m/text/news >> HTTP Requests - 8, Total Weight:
4.2K
45. Things to Consider
‣ If you’re going to target C-grade browsers
avoid CSS(3) and JavaScript where possible
‣ Don’t think only because your site looks good on
iPhone, it will also look good on old BlackBerry
browsers (< OS 5.0)
‣ Compatibility Mobile Table by Peter-Paul Koch
(ppk): http://www.quirksmode.org/mobile/
48. Mobile Tools & Frameworks
‣ WURLF: Wireless Universal Resource File
‣ Open Source project
‣ XML configuration file containing information about features
and capabilities of many mobile devices (~14000)
‣ Website offers many optimization tools/apps
“The main scope of the file is to collect as much information as we can
about all the existing mobile devices that access WAP pages so that
developers will be able to build better applications and better services for
the users.” (wurfl.sourceforge.net)
51. Setting up your dev
environment
‣ Eclipse or any other choice of text editor
‣ Webserver / Apache
‣ Firefox/Firebug for Debugging
‣ Web Development PlugIn
‣ YSlow integrated into Firebug
‣ User agent Switcher
‣ Emulators/Simulators (Watch out!)
‣ Available for Palm Pre, iPhone (Mac only),
Android, BlackBerry Simulator (PC only)
52. Links/Literature
‣ O’Reilly, Brian Fling: Mobile Design and Development
‣ Mobile First: http://www.youtube.com/watch?v=NjE_Or4VIlU
‣ Device Atlas: http://deviceatlas.com/
‣ W3C mobileOK Checker: http://validator.w3.org/mobile/
‣ W3C Mobile Best Practices: http://www.w3.org/TR/mobile-bp/
‣ Design Principles for the Mobile Web: http://articles.sitepoint.com/article/
designing-for-mobile-web
‣ Safari Web Apps: http://developer.apple.com
‣ Nokia Mobile Design Patterns: http://wiki.forum.nokia.com/index.php/
Category:Mobile_Design_Patterns