You are previewing Programming the Mobile Web.

Programming the Mobile Web

Cover of Programming the Mobile Web by Maximiliano Firtman Published by O'Reilly Media, Inc.
  1. Programming the Mobile Web
    1. SPECIAL OFFER: Upgrade this ebook with O’Reilly
    2. Preface
      1. Who This Book Is For
      2. Who This Book Is Not For
      3. What You’ll Learn
      4. Other Options
      5. If You Like (or Don’t Like) This Book
      6. Conventions Used in This Book
      7. Using Code Examples
      8. How to Contact Us
      9. Safari® Books Online
      10. Acknowledgments
    3. 1. The Mobile Jungle
      1. Myths of the Mobile Web
      2. The Mobile Ecosystem
      3. Mobile Knowledge
      4. Brands, Models, and Platforms
      5. Technical Information
      6. Market Statistics
    4. 2. Mobile Browsing
      1. The Mobile Browsing Experience
      2. Mobile Web Eras
    5. 3. Architecture and Design
      1. Website Architecture
      2. Design and Usability
    6. 4. Setting Up Your Environment
      1. Setting Up a Development Environment
      2. Production Environment
    7. 5. Markups and Standards
      1. First, the Old Ones
      2. Current Standards
      3. XHTML Mobile Profile and Basic
      4. CSS for Mobile
      5. Confusion
    8. 6. Coding Markup
      1. Heading Structure
      2. The Document Body
      3. Plug-ins and Extensions
    9. 7. CSS for Mobile Browsers
      1. Where to Insert the CSS
      2. Selectors
      3. CSS Techniques
      4. Common Patterns
      5. CSS Sprites
      6. WebKit Extensions
    10. 8. JavaScript Mobile
      1. Supported Technologies
      2. Coding JavaScript for Mobile Browsers
    11. 9. Ajax, RIA, and HTML 5
      1. Ajax Support
      2. JavaScript Libraries
      3. WebKit CSS Extensions
      4. Mobile Rich Internet Applications
      5. HTML 5
    12. 10. Server-Side Browser Detection and Content Delivery
      1. Mobile Detection
      2. Content Delivery
      3. Multimedia and Streaming
      4. Content Adaptation
      5. Mobilizing WordPress and Other CMSs
    13. 11. Geolocation and Maps
      1. Location Techniques
      2. Detecting the Location
      3. Showing a Map
    14. 12. Widgets and Offline Webapps
      1. Mobile Widget Platforms
      2. Standards
      3. Platforms
      4. Widget Design Patterns
    15. 13. Testing, Debugging, and Performance
      1. Testing and Debugging
      2. Performance Optimization
    16. 14. Distribution and Social Web 2.0
      1. Mobile SEO
      2. Mobile Web Statistics
      3. Mobile Web Advertising
      4. Mobile Web Social Features
    17. A. MIME Types for Mobile Content
      1. Markup and Script MIME Types
      2. Image MIME Types
      3. Mobile Content MIME Types
      4. Audio and Video MIME Types
      5. Widget and Webapp MIME Types
    18. Index
    19. About the Author
    20. Colophon
    21. SPECIAL OFFER: Upgrade this ebook with O’Reilly
O'Reilly logo

Chapter 1. The Mobile Jungle

Isn’t the mobile web the same web as the desktop one? It does use the same basic architecture and many of the same technologies, though mobile device screens are smaller and bandwidth and processing resources are more constrained. There’s a lot more to it than that, though, with twists and turns that can trip up even the most experienced desktop web developer.

Myths of the Mobile Web

As the Web has moved onto mobile devices, developers have told themselves a lot of stories about what this means for their work. While some of those stories are true, others are misleading, confusing, or even dangerous.

It’s Not the Mobile Web; It’s Just the Web!

I’ve heard this quote many times in the last few years, and it’s true. It’s really the same Web. Think about your life. You don’t have another email account just for your mobile. (OK, I know some guys that do, but I believe that’s not typical!)

You read about the last NBA game on your favorite site, like ESPN; you don’t have a desktop news source and a different mobile news source. You really don’t want another social network for your mobile; you want to use the same Facebook or Twitter account as the one you used on your desktop. It was painful enough creating your friends list on your desktop, you’ve already ignored many people…you don’t want to have to do all that work again on your mobile.

For all of these purposes, the mobile web uses the same network protocols as the whole Internet: HTTP, HTTPS, POP3, Wireless LAN, and even TCP/IP. OK, you can say that GSM, CDMA, and UMTS are not protocols used in the desktop web environment, but they are communication protocols operating at lower layers. From our point of view, from a web application approach, we are using the same protocols.

So, yes…it’s the same Web. However, when developing for the mobile web we are targeting very, very different devices. The most obvious difference is the screen size, and yes, that will be our first problem. But there are many other not-so-obvious differences. One issue is that the contexts in which we use our mobile devices are often extremely different from where and how we use our comfortable desktops or even our laptops and netbooks.

Don’t get me wrong—this doesn’t mean that, as developers, we need to create two, three, or dozens of versions duplicating our work. In this book, we are going to analyze all the techniques available for this new world. Our objective will be to make only one product, and we’ll analyze the best way to do it.

You Don’t Need to Do Anything Special About Your Desktop Website

Almost every smartphone on the market today—for example, the iPhone and Android-based devices—can read and display full desktop websites. Yes, this is true. Users want the same experience on the mobile web as they have on their desktops. Yes, this is also true. Some statistics even indicate that users tend to choose web versions over mobile versions when using a smartphone.

However, is this because we really love zooming in and out, scrolling and crawling for the information we want, or is it because the mobile versions are really awful and don’t offer the right user experience? I’ve seen a lot of mobile sites consisting of nothing but a logo and a couple of text links. My smartphone wants more!

One Website Should Work for All Devices (Desktop, Mobile, TV, etc.)

As we will see, there are techniques that allow us to create only one file but still provide different experiences on a variety of devices, including desktops, mobiles, TVs, and game consoles. This vision is called “One Web.” This is to an extent possible today, but the vision won’t fully be realized for years to come. Today, there are a lot of mobile devices with very low connection speeds and limited resources—non-smartphones—that, in theory, can read and parse any file, but will not provide the best user experience and will have compatibility and performance problems if we deliver the same document as for desktop. Therefore, One Web remains a goal for the future. A little additional work is still required to provide the right user experience for each mobile device, but there are techniques that can be applied to reduce the work required and avoid code and data duplication.

Mobile Web Is Really Easy; Just Create a WML File

I’m really surprised how many mobile websites are still developed using a technology deprecated many years ago: WML (Wireless Markup Language). Even in emerging markets, there are almost no WML-only web-capable devices on the market today. The worst part of this story is that these developers think that this is the markup language for the mobile web. Wrong! WML development was called mobile web (or WAP) development a couple of years ago, when the first attempt at building a mobile web was made. (We will talk more about history in the Mobile Web Eras section of Chapter 2.) There are still a small proportion of WML-only devices available in some markets, but WML is definitely not the mobile web today.

Just Create an HTML File with a Width of 240 Pixels, and You Have a Mobile Website

This is the other fast-food way to think about the mobile web. Today, there are more than 3,000 mobile devices on the market, with almost 30 different browsers (actually, more than 300 different browsers if we separate them by version number). Creating one HTML file as your mobile website will be a very unsuccessful project. In addition, doing so contributes to the belief that mobile web browsing is not useful.

Native Mobile Applications Will Kill the Mobile Web

Every solution has advantages and disadvantages. The mobile web has much to offer native applications, as Chapter 12 of this book will demonstrate. The mobile web (and the new concept of mobile widgets) offers us a great multi-device application platform, including local applications that don’t require an always-connected Web with URLs and browsers.

People Are Not Using Their Mobile Browsers

How many Internet connections are there in the world?

1,802,330,457 (26% of the world’s population) at the beginning of 2010 (http://www.internetworldstats.com)

How many people have mobile devices?

4,600,000,000 (68% of the population) at the beginning of 2010 (U.N. Telecommunications Agency, http://www.itu.int)

So, one of the reasons why people are not using their mobile browsers may be because of us, the web producers. We are not offering them what they need. There are other factors, but let’s talk about what we can do from our point of view.

Opera Mini is a mobile browser for low- and mid-range devices. It is free and it has had more than 50 million downloads to date. This tells us that 50 million users wanted to have a better mobile web experience, so they went out and got Opera Mini. Do all the 4 billion plus worldwide mobile device users know about Opera Mini? Perhaps not, so it’s difficult to know how many would be interested in trying this different mobile web experience. However, 50 million downloads for one only browser that the user had to install actively is a big number for me. When Opera Mini appeared in Apple Inc.’s App Store, from which users can download and install applications for the iPhone, iPod, and iPad, 1 million users downloaded the browser on the first day. This is quite impressive.

Today, less than 4% of total web browsing is done from mobile devices. This percentage is increasing month by month. Mobile browsing may never become as popular as desktop browsing, but it will increase a lot in the following years.

In addition, user browsing on mobile devices will likely have a higher conversion rate. How many tabs do you usually have open at once in Internet Explorer or Firefox on your desktop or laptop? On a mobile device, when you browse you are more specific and more likely to act on what you find.

The best content for your career. Discover unlimited learning on demand for around $1/day.