22
CS 696 Emerging Web and Mobile Technologies Spring Semester, 2011 Doc 8 Location, Web Workers, Mobile App Start Feb 8, 2011 Copyright ©, All rights reserved. 2011 SDSU & Roger Whitney, 5500 Campanile Drive, San Diego, CA 92182-7700 USA. OpenContent (http:// www.opencontent.org/opl.shtml) license defines the copyright on this document. Tuesday, February 22, 2011

CS 696 Emerging Web and Mobile Technologies Spring Semester

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

CS 696 Emerging Web and Mobile TechnologiesSpring Semester, 2011

Doc 8 Location, Web Workers, Mobile App StartFeb 8, 2011

Copyright ©, All rights reserved. 2011 SDSU & Roger Whitney, 5500 Campanile Drive, San Diego, CA 92182-7700 USA. OpenContent (http://www.opencontent.org/opl.shtml) license defines the copyright on this document.

Tuesday, February 22, 2011

References

2

jQuery Mobile Documentation, http://jquerymobile.com/test/

HTML5 & CSS3 Develop with Tomorrow's Standards Today, Hogan, Pragmatic Programmers

Building iPhone Apps with HTML, CSS, and JavaScript, Jonathan Stark

Building Android Apps with HTML, CSS, and JavaScript, Jonathan Stark

Tuesday, February 22, 2011

Location

3

<html lang="en"><head> <meta charset="utf-8" /> <title>Untitled</title></head><body onload="navigator.geolocation.getCurrentPosition(function(position) {

alert(position.coords.latitude); alert(position.coords.longitude);

});">

</body></html>

Tuesday, February 22, 2011

Location on Desktop browsers

4

Google street view cars record location of all wi-fi spots

Tuesday, February 22, 2011

Web Workers

5

JavaScript threads in browser

Heavy-weight threadsHigh start-up costHigh per-instance memory

Supported inFireFox 3.5+Chome 3+Safari 4+Opera 10.6+

Not supported inInternet ExploreriOSAndroid

Tuesday, February 22, 2011

http://en.wikipedia.org/wiki/Web_Workers

Web Workers

6

Web workers don't have access to DOMExcept for XMLHttpRequest

Can have multiple workersWorkers can communicate with each other

Tuesday, February 22, 2011

Example

7

<!DOCTYPE HTML><html> <head> <title>Worker example: One-core computation</title> </head> <body> <p>The highest prime number discovered so far is: <output id="result"></output></p> <script> var worker = new Worker('worker.js'); worker.onmessage = function (event) { document.getElementById('result').textContent = event.data; }; </script> </body></html>

Tuesday, February 22, 2011

http://www.whatwg.org/specs/web-workers/current-work/

worker.js

8

var n = 1;search: while (true) {

n += 1;for (var i = 2; i <= Math.sqrt(n); i += 1)

if (n % i == 0)continue search;

// found a prime!postMessage(n);

}

Tuesday, February 22, 2011

worker.onmessage

9

var worker = new Worker('worker.js'); worker.onmessage = function (event) { document.getElementById('result').textContent = event.data; };

Callback method for messages from thread

Tuesday, February 22, 2011

postMessage

10

var n = 1;search: while (true) {

n += 1;for (var i = 2; i <= Math.sqrt(n); i += 1)

if (n % i == 0)continue search;

// found a prime!postMessage(n);

}

How thread sends message to main thread

Tuesday, February 22, 2011

11

Mobile Web Apps

Tuesday, February 22, 2011

12

iPhone Browser Sizes

Tuesday, February 22, 2011

source: http://developer.apple.com/library/safari/#documentation/AppleApplications/Reference/SafariWebContent/UsingtheViewport/UsingtheViewport.html

Viewport

13

Region of the screen used to display part of image

Mobile viewport

Fixed size

Can change scale

Tuesday, February 22, 2011

Viewport & Scale

14

Tuesday, February 22, 2011

http://developer.apple.com/library/safari/#documentation/AppleApplications/Reference/SafariWebContent/UsingtheViewport/UsingtheViewport.html

<meta name="viewport" content="user-scalable=no, width=device-width" />

15

width=device-widthmake the view port same size as the device

user-scalable=noDon't let user zoom in or out

Common settings for web app to look like iPhone app

Tuesday, February 22, 2011

The iPhone Look

16

<body> <div id="container"> <div id="header"> <h1><a href="./">Jonathan Stark</a></h1> <div id="utility"> <ul> <li><a href="about.html">About</a></li> <li><a href="blog.html">Blog</a></li> </ul> </div> <div id="nav"> <ul> <li><a href="consulting-clinic.html">Consulting Clinic</a></li> <li><a href="on-call.html">On Call</a></li> <li><a href="development.html">Development</a></li> </ul>

Tuesday, February 22, 2011

The iPhone Look (same on Android)

17

#header ul li a { background-color: #FFFFFF; border: 1px solid #999999; color: #222222; display: block; font-size: 17px; font-weight: bold; margin-bottom: -1px; padding: 12px 10px; text-decoration: none;}

#header ul li:first-child a { -webkit-border-top-left-radius: 8px; -webkit-border-top-right-radius: 8px;}#header ul li:last-child a { -webkit-border-bottom-left-radius: 8px; -webkit-border-bottom-right-radius: 8px;}

Tuesday, February 22, 2011

jQuery Mobile

18

Touch-Optimized Web Framework for Smartphones & Tablets

Alpha 3 release Feb, 2011

Tuesday, February 22, 2011

jQuery Mobile Example

19

<body><div data-role="page" data-theme="b"> <div id="jqm-homeheader"> <h1> Hello World! </h1> </div> <div data-role="content"> <ul data-role="listview" data-inset="true" data-theme="c" data-dividertheme="b"> <li data-role="list-divider">Example</li> <li>List Item</li> <li><a href="page.html">With Link</a></li> </ul> </div></div></body>

Tuesday, February 22, 2011

Single Page Structure

20

<!DOCTYPE html> <html><head> <title>Page Title</title> <link rel="stylesheet" href="http://code.jquery.com/mobile/1.0a3/jquery.mobile-1.0a3.min.css" /> <script type="text/javascript" src="http://code.jquery.com/jquery-1.4.3.min.js"></script> <script type="text/javascript" src="http://code.jquery.com/mobile/1.0a3/jquery.mobile-1.0a3.min.js"></script></head> <body> <div data-role="page"> <div data-role="header"> <h1>Page Title</h1></div> <div data-role="content"><p>Page content goes here.</p> </div> <div data-role="footer"> <h4>Page Footer</h4> </div></div></body></html>

Tuesday, February 22, 2011

Themes

21

Tuesday, February 22, 2011

Themes

22

Tuesday, February 22, 2011