Contents at a Glance |
|
iv | |
About the Authors |
|
ix | |
About the Technical Reviewer |
|
x | |
Acknowledgments |
|
xi | |
Introduction |
|
xii | |
|
Chapter 1 Harnessing the Power of the Mobile Web |
|
|
1 | (20) |
|
|
1 | (10) |
|
Getting Started: HyperText Markup Language (HTML) |
|
|
1 | (2) |
|
Getting Stylish: Cascading Style Sheets (CSS) |
|
|
3 | (3) |
|
Getting Interactive: JavaScript |
|
|
6 | (2) |
|
Getting Informative: Extensible Markup Language (XML) |
|
|
8 | (2) |
|
JSON: Human-Readable Data Interchange |
|
|
10 | (1) |
|
The Mobile Web, Yesterday and Today |
|
|
11 | (4) |
|
Knowing the Speeds (Or "What is 3G anyway?") |
|
|
11 | (1) |
|
Languages and Protocols, Yesterday and Today |
|
|
12 | (3) |
|
Concepts We Like---And What's Ahead! |
|
|
15 | (4) |
|
Concept 1 Think Like A User |
|
|
16 | (1) |
|
Concept 2 Don't Annoy the User |
|
|
16 | (1) |
|
Concept 3 Test-Retest Reliability |
|
|
17 | (1) |
|
Concept 4 Keep it Simple Stupid! |
|
|
17 | (2) |
|
|
19 | (2) |
|
Chapter 2 Twitter Applications: Who's That Tweet? |
|
|
21 | (18) |
|
|
22 | (1) |
|
Setting Up Your Development Environment |
|
|
22 | (4) |
|
Your First Mobile Web Application |
|
|
26 | (12) |
|
|
38 | (1) |
|
Chapter 3 Twitter Applications: I Love Ham |
|
|
39 | (10) |
|
|
39 | (2) |
|
|
41 | (2) |
|
|
43 | (5) |
|
|
48 | (1) |
|
Chapter 4 Basic Planning and Structuring of Your Application |
|
|
49 | (16) |
|
|
49 | (4) |
|
Giving People What They Want |
|
|
50 | (1) |
|
|
51 | (2) |
|
|
53 | (7) |
|
All Mobile Is Not the Same |
|
|
54 | (3) |
|
Structuring Your Application |
|
|
57 | (2) |
|
User Movement: Navigation or Storyboard |
|
|
59 | (1) |
|
Structuring Your Development |
|
|
60 | (3) |
|
|
60 | (2) |
|
|
62 | (1) |
|
|
63 | (2) |
|
Chapter 5 Handling Multiple Screen Resolutions with CSS 3 |
|
|
65 | (20) |
|
A History of Tired Eyes and Resolution Evolution |
|
|
65 | (4) |
|
|
69 | (10) |
|
The Daily Droid's Base HTML Code |
|
|
72 | (2) |
|
The Daily Droid's Semi-magical CSS Code |
|
|
74 | (5) |
|
|
79 | (4) |
|
|
83 | (2) |
|
Chapter 6 Handling Different Browser Platforms |
|
|
85 | (14) |
|
META Tags and the Viewport |
|
|
85 | (4) |
|
|
86 | (1) |
|
|
86 | (3) |
|
|
89 | (9) |
|
|
89 | (2) |
|
|
91 | (1) |
|
JavaScript User Agent Detection |
|
|
92 | (1) |
|
Introducing the JavaScript Agent Detection Code |
|
|
92 | (5) |
|
.htaccess User Agent Detection |
|
|
97 | (1) |
|
|
98 | (1) |
|
Chapter 7 Building an Impressive User Experience with jQuery Mobile |
|
|
99 | (22) |
|
|
99 | (3) |
|
|
102 | (7) |
|
So - About Those Transitions |
|
|
109 | (2) |
|
|
111 | (2) |
|
Rolling Your Own Theme with ThemeRoller |
|
|
113 | (5) |
|
Rolling it All Together: Simple Calc |
|
|
118 | (2) |
|
|
120 | (1) |
|
Chapter 8 Building Visually Rich Internet Applications |
|
|
121 | (24) |
|
Finding and Using Icons and Stock Photography |
|
|
121 | (6) |
|
|
121 | (2) |
|
|
123 | (1) |
|
|
123 | (1) |
|
|
124 | (1) |
|
|
125 | (1) |
|
Guidance on Using Photos in Web Apps |
|
|
126 | (1) |
|
|
127 | (3) |
|
|
128 | (1) |
|
|
129 | (1) |
|
|
130 | (11) |
|
|
131 | (1) |
|
|
132 | (1) |
|
|
133 | (2) |
|
Comparing Frameworks: About Jon!! |
|
|
135 | (6) |
|
|
141 | (3) |
|
|
144 | (1) |
|
Chapter 9 HTML5 Location-Based Applications |
|
|
145 | (22) |
|
The Mechanics of Geolocation |
|
|
145 | (5) |
|
Understanding Device Capabilities |
|
|
145 | (2) |
|
Understanding HTML5 Capabilities |
|
|
147 | (1) |
|
Detecting Browser Geolocation Support |
|
|
147 | (3) |
|
Exploring Our Sample Application |
|
|
150 | (10) |
|
Building Our Basic Geolocation Application |
|
|
151 | (4) |
|
Dealing with the Four Corners of Android's Geolocation World |
|
|
155 | (5) |
|
Expanding Your Horizons with Maps |
|
|
160 | (4) |
|
Adding a Map to Our Application |
|
|
160 | (4) |
|
|
164 | (1) |
|
Gaming Your Location-for Fun! |
|
|
165 | (1) |
|
|
166 | (1) |
|
Chapter 10 Using Cloud Services: A Transport Application |
|
|
167 | (20) |
|
Introducing the "Move Me" Example Application |
|
|
169 | (10) |
|
|
169 | (4) |
|
Dealing with Global State |
|
|
173 | (1) |
|
Customizing Location Markers |
|
|
173 | (1) |
|
|
174 | (2) |
|
Performing Local Transport Searches |
|
|
176 | (1) |
|
|
177 | (2) |
|
Improving the "Move Me" Example Application |
|
|
179 | (2) |
|
Dealing with Other Transport Possibilities |
|
|
180 | (1) |
|
Limitations to our Approach |
|
|
181 | (1) |
|
Introducing Transit Data Resources |
|
|
181 | (4) |
|
Making Use of Transport Schedules and Timetables |
|
|
181 | (3) |
|
|
184 | (1) |
|
|
185 | (2) |
|
Chapter 11 Pushing the Limits with Audio and Video |
|
|
187 | (24) |
|
Audio for Mobile Web Apps |
|
|
187 | (10) |
|
Utilizing the HTML5 audio Tag |
|
|
188 | (1) |
|
Integrating Audio into Who's That Tweet? |
|
|
189 | (1) |
|
Working with Audio Codecs |
|
|
190 | (2) |
|
Using the Audacity Audio Editor |
|
|
192 | (4) |
|
|
196 | (1) |
|
Adding Video to Mobile Applications |
|
|
197 | (5) |
|
Using the HTML5 video Tag |
|
|
197 | (2) |
|
|
199 | (1) |
|
Using Handbrake to Transcode Videos |
|
|
200 | (2) |
|
Exploring on Your Own: Music Service APIs |
|
|
202 | (7) |
|
"Scrobbling" Tracks to Last.fm |
|
|
203 | (4) |
|
Tapping into the Power of Amazon's Product Advertising API |
|
|
207 | (2) |
|
|
209 | (2) |
|
Chapter 12 Supercharging the User Experience with AJAX |
|
|
211 | (22) |
|
|
211 | (5) |
|
|
211 | (4) |
|
So What About the JavaScript and XML? |
|
|
215 | (1) |
|
|
216 | (4) |
|
|
220 | (6) |
|
|
221 | (3) |
|
Second: Get the Output and Display It! |
|
|
224 | (2) |
|
|
226 | (3) |
|
|
229 | (2) |
|
|
230 | (1) |
|
Setting Asynchronous to False? |
|
|
230 | (1) |
|
|
231 | (2) |
|
Chapter 13 PackagingYour Applications |
|
|
233 | (28) |
|
Compressing Your Application |
|
|
233 | (8) |
|
|
234 | (2) |
|
Compression Tools and Utilities |
|
|
236 | (5) |
|
Finding a Hosting Solution |
|
|
241 | (5) |
|
Evaluating Hosting Providers |
|
|
241 | (4) |
|
|
245 | (1) |
|
|
246 | (6) |
|
Deploying an Application Using Secure FTP |
|
|
248 | (4) |
|
|
252 | (2) |
|
|
254 | (5) |
|
|
255 | (3) |
|
|
258 | (1) |
|
|
259 | (2) |
Index |
|
261 | |