1.The Mobile Jungle 1
The Mobile Ecosystem 1
What Is a Mobile Device? 1
Mobile Device Categories 3
Brands,Models,and Platforms 9
Apple iOS 9
Android 13
Windows 17
Nokia 20
BlackBerry 24
Samsung 26
Sony Mobile 27
Motorola Mobililty 27
Amazon 28
LGMobile 28
HTC 29
HP and Palm 29
Firefox OS 30
Ubuntu for Phones 30
Chinese Platforms 31
Other Platforms 31
Smart TV Platforms 31
Technical Information 32
2.Understanding the Mobile Web 35
Myths of the Mobile Web 35
It's Not the Mobile Web:It's Just the Web ! 35
You Don't Need to Do Anything Special About Your Desktop Website 36
One Website Should Work for All Devices(Desktop,Mobile,TV) 36
Just Create an HTML File with a Width of 320 Pixels,and You Have a Mobile Website 37
Native Mobile Applications Will Kill the Mobile Web 37
People Are Not Using Their Mobile Browsers 37
What Is the Mobile Web? 38
Differences 38
Mobile Web Eras 39
WAP 1 39
WAP 2.0 41
The Mobile Browsing Experience 43
Navigation Methods 43
Zoom Experience 45
Reflow Layout Engines 46
Direct Versus Cloud-Based Browsers 47
Multipage Experience 48
WebEngines 49
Fragmentation 50
Display 50
Input Methods 58
Other Features 60
Market Statistics 60
3.Browsers and Web Platforms 63
Web Platforms That Are Not Browsers 64
HTML5 Web Apps 64
Web Views 67
Pseudo-Browsers 68
Native Web Apps,Packaged Apps,and Hybrids 69
Ebooks 72
Mobile Browsers 73
Preinstalled Browsers 73
User-Installable Browsers 82
Browser Overview 87
4.Tools for Mobile Web Development 89
Working with Code 89
Adobe Dreamweaver 89
Adobe Edge Tools 90
Microsoft Visual Studio and WebMatrix 91
Eclipse 91
Native Web IDEs 91
Testing 91
Emulators and Simulators 92
Real Device Testing 114
Remote Labs 116
Production Environment 124
Web Hosting 125
Domain 125
Error Management 125
Statistics 126
5.Architecture and Design 127
Mobile Strategy 127
When to Get Out of the Browser 127
Context 130
Server-Side Adaptation 131
Progressive Enhancement 132
Responsive Web Design 134
RESS 139
Navigation 140
Design and User Experience 141
Touch Design Patterns 145
Tablet Patterns 148
Official UI Guidelines 149
WhatNotto Do 149
6.Markupsand Standards 153
First,the Verv Old Ones 153
WML 154
Current Standards 158
Politics of the Mobile Web 159
Delivering Markup 160
XHTML Mobile Profile and Basic 164
AvailableTags 165
Official Noncompatible Features 166
Creating Our First Compatible Template 167
Markup Additions 169
Mobile HTML5 169
Creating Our First HTML5 Template 170
Syntax Rules 171
New Elements 172
CSSforMobile 172
WCSS Extensions 172
CSS3 176
HTML5 Compatibility Levels 177
Testing Your Browser 177
7.Basics of Mobile HTML5 181
The Document Head 181
Title 181
Website Icons 183
Home Screen Icons 187
The Viewport 200
Changing the Navigation Method 215
Removing Automatic Links 216
Metadata for Sharing 216
Hiding the URL Address Bar 218
Native App Integration 220
The Document Body 224
Main Structure 225
HTML5 Mobile Boilerplate 227
The Content 228
Block Elements 228
Lists 228
Tables 229
Frames 229
Links 230
Accessibility 232
8.HTML5 Forms 235
Form Design 235
Form Elements 238
Select Lists 238
Radio Buttons and Checkboxes 241
Buttons 242
Hidden Fields 243
Text Input Fields 243
Range Slider Fields 254
Date Input Fields 255
File Selection Fields 257
Noninteractive Form Elements 264
Form Control Attributes 266
Placeholder 266
autofocus 267
autocomplete 267
readonly 268
Input Validation Attributes 268
Safari Extensions 268
Firefox Extensions 268
XHTML Mobile inputmode 269
Additional Form Attributes 270
Form Validation 270
HTML5 Validation 271
WAP CSS Validation 275
9.Feature and Device Detection 279
Possible Problems 279
Possible Solutions 280
Informational Websites 281
Can I Use 282
MobileHTML5.org 282
WebPlatform.org 284
Client-Side Detection 284
HTML Fallbacks 284
CSS Fallbacks 285
Vendor Prefixes 286
JavaScript Fallbacks 290
Modernizr 292
Polyfills 297
Platform Detection 298
Server-Side Detection 300
HTTP 300
Detecting the Context 307
Cloud-Based Browsers 309
Mobile Detection 311
Transcoders 312
Device Libraries 313
10.Images and Media 331
Images 331
Image Formats 331
Using the img Element 336
Responsive Images 337
Local Pictograms 340
Dealing with Multiple Screen Densities 342
Using Vector-Based Solutions 343
Providing One Single Image 344
Providing Image Alternatives 346
SVG 350
Canvas 357
Adobe Flash 365
Video 368
Containers and Codecs 368
Delivering Video 370
The HTML5 video Element 370
Streaming 376
Embedding with object 378
Video Compatibility 378
Audio 379
Invisible Audio Player 380
Web Audio API 380
Audio Compatibility 381
11.CSS for Mobile Browsers 383
Where to Insert the CSS 383
Media Queries 384
CSS3 Media Queries 385
Selectors 392
CSS Techniques 393
Reset CSS Files 393
Text Formatting 395
Common Patterns 404
Display Properties 404
Rounded Corners 408
Border Image 409
Pseudoclasses 413
Backgrounds 413
Scrollable Areas 414
Content 415
Opacity 416
Cursor Management 416
Selection Management 417
Touch Callout 420
Highlight Color 421
Appearance Override 421
CSS Sprites 422
Samples and Compatibility 422
CSS Sprites Alternatives 427
CSS3 Modules 427
Gradients 428
Reflection 431
Masks 432
Transforms 433
Transitions 439
Animations 442
CSS Filter Effects 446
CSS Regions and Exclusions 447
New CSS Values and Units 448
12.JavaScript Mobile 451
Coding for Mobile Browsers 452
HTML5 Script Extensions 453
Code Execution 453
Cloud-Based Browsers 454
JavaScript Debugging and Profiling 455
Battery Consumption 455
Background Execution 456
Status Detection 457
Background Tab Notification Trick 460
Background Execution Compatibility 461
Push Notifications 462
Supported Technologies 463
The Document Object Model 463
The Selectors API 463
JSON 464
Binary Data 464
Web Workers 464
HTML5 APIs 466
Native Web App APIs 466
Standard JavaScript Behavior 467
Standard Dialogs 467
History and URL Management 470
Manipulating Windows 471
Focus and Scroll Management 472
Timers 473
Changing the Title 476
Cookie Management 476
Event Handling 477
JavaScript Libraries 484
Mobile Libraries 485
UI Frameworks 487
Sencha Touch 488
jQuery Mobile 489
Enyo 490
Montage 491
iUI 492
jQTouch 493
JavaScript Mobile UI Patterns 495
13.Offline Apps,Storage,andNetworks 501
Offline Web Apps 501
The Manifest File 502
Accessing Online Resources 503
Updating the Package 504
Deleting the Package 505
TheJavaScript API 506
Compatibility and Limits 508
Client-Side Storage 511
Web Storage 511
The Web SQL Database API 514
The IndexedDB API 518
The FileSystem API 520
User Intervention 521
Debugging Storage 521
Network Communication 522
Ajax 522
Server Sent Events 525
WebSockets 527
14.Geolocation and Maps 529
Location Techniques 529
Accuracy 529
Indoor Location 529
Client Techniques 530
Server Techniques 532
Asking the User 533
Detecting the Location 534
The W3C Geolocation API 534
Carrier Network Location APIs 539
IP Geolocation 540
Maps/Navigation App Integration 541
Google Maps for Android 541
iOS Maps 543
Bing Maps 545
Showing a Map 546
Google Maps API v3 546
Google Maps Static API 549
Nokia Here 550
15.Device Interaction 553
Mobile-Specific URIs 553
Making a Call 554
Sending Email 556
Sending an SMS 557
Other Communication Apps 558
Adding a Contact to the Phonebook 559
Integrating with Other Applications 560
JavaScript APIs 564
Touch 564
Gestures 572
Sensors 579
Network Information 583
File Management 585
Full Screen 587
Web Notifications 588
Camera 590
Battery 593
Vibration 593
Other APIs 594
16.Native and Installed Web Apps 597
Web App Pros and Cons 598
Architecture of a Web App 599
Meta Configuration 599
Platform Access 600
Data Storage 600
Network Access 600
Logic 600
User Interfaca 601
Packaging 601
Distribution 601
Standards 601
Packaging and Configuration Standards 601
Omcial Platforms 602
iOS Web Apps 602
Symbian Standalone Web Apps 612
Windows 8 Store Apps 613
Mozilla Open Web Apps 619
Chrome Apps 624
Samsung Web Apps 624
BlackBerry Web Works Apps 624
Nokia S40 Web Apps 632
Nokia Symbian Web Apps 637
Apache Cordova/PhoneGap Apps 644
Template Creation 646
Cordova Web View 646
CordovaJS 647
Plug-ins 650
Distribution 650
iOS App Store 650
Android Stores 651
BlackBerry AppWorld 651
Microsoft Windows Store 651
Microsoft Windows Phone Store 651
Full-Screen App Patterns 652
Multiple Views 652
Layout 652
Input Method 652
One-View Widget 653
Dynamic Application Engine 653
Reload My Web App 653
17.Content Delivery 655
MIME Types 655
Static Definition 655
Dynamic Definition 657
File Delivery 658
Direct Linking 658
Delayed Linking 658
OMA Download 659
Application and Games Delivery 662
iOS Applications 663
Android Applications 665
Windows Applications 666
Java ME 667
18.Debugging and Performance 671
Debugging 671
Server-Side Debugging 671
Markup Debugging 676
Client-Side Debugging 678
Perfcrmance Optimization 686
Measurement 686
Best Practices 689
19.Distribution and Social Web 2.0 695
Mobile SEO 695
Spiders and Discoverability 696
Mobile Sitemaps 696
How Users Find You 698
SMS Invitation 698
Email Invitation 699
Mobile TinyURL 699
QR Codes 699
NFC Tags 701
User Fidelizing 701
Web Shortcuts 702
RSS 702
Open Search 702
Apple Passbook 703
Mobile Web Statistics 704
Google Analytics for Mobile 704
Yahoo!Web Analytics 705
Mobilytics 705
Monetizing Your Website 705
Mobile Advertisements 705
Mobile Web Social Features 706
Authentication and Sharing APIs 706
Sharing Content 707
A.MIME Types for Mobile Content 709
Index 713