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

The Mobile Ecosystem

If you are coming from the desktop web world, you are probably not aware of the complete mobile ecosystem. Let’s review the current state of affairs, so we can be sure we have all the knowledge we need to create the best solutions.

What Is a Mobile Device?

It’s really difficult to categorize every mobile device. Is it a smartphone? Is it a handheld? Is it a netbook? Is it a music player?

First, when is a device considered a mobile one?

For the purposes of this book, a mobile device has the following features:

  • It’s portable.

  • It’s personal.

  • It’s with you almost all the time.

  • It’s easy and fast to use.

  • It has some kind of network connection.

Portable

A mobile device has to be portable, meaning that we can carry it without any special considerations. We can take it to the gym, to the university, to work; we can carry it with us everywhere, all the time.

Personal

We’ve all heard it: “Don’t touch my phone!” A mobile device is absolutely personal. My mobile is mine; it’s not property of the family, nor is it managed by the company who manufactured it. I choose the ringtone, the visual theme, the games and applications installed, and which calls I should accept. My wife has her own mobile device, and so do my kids. This personal feature will be very important in our projects. You can browse a desktop website from any computer—your familiar home PC, your computer at work, or even a desktop at a hotel or Internet café—and numerous people may have access to those machines. However, you will almost always browse a mobile website from the same device, and you are likely to be the only person who uses that device.

Note

Do a test: go now and ask some friends or colleagues to allow you to view your email or your Facebook account using their mobile devices. Pay attention to their faces. They don’t want to! You will log them out from their accounts, you will use their phone lines, and you will touch their devices. It’s like a privacy violation.

Companion

Your mobile device can be with you anytime! Even in the bathroom, you probably have your mobile phone with you. You may forget to take lots of things with you from your home in the morning, but you won’t forget your wallet, your keys, and your mobile device. The opportunity to be with the user all the time, everywhere, is really amazing.

Easy usage

A notebook (or even a netbook) is portable; it can be with you at any time and it has a network connection, but if you want to use it, you need to sit down and perhaps find a table. Therefore, it’s not a mobile device for the purposes of this book.

A mobile device needs to be easy and quick to use. I don’t want to wait two minutes for Windows to start; I don’t want to sit down. If I’m walking downtown, I want to be able to find out when the next train will be departing without having to stop.

Connected device

A mobile device should be able to connect to the Internet when you need it to. This can be a little difficult sometimes, so we will differentiate between fully connected devices that can connect any time in a couple of seconds and limited connected devices that usually can connect to the network but sometimes cannot.

A classic iPod (non-Touch) doesn’t have a network connection, so it’s out of our list too, like the notebooks.

Note

Where do tablets, like the iPad, fit in? They are not so personal (will you have one tablet per member of the family?), and they may not be so portable. But, as they generally use mobile instead of desktop operating systems, they are more mobile than notebooks or netbooks. So, I don’t have the answer. They are in the middle.

Mobile Device Categories

When thinking about mobile devices, we need to take the “phone” concept out of our minds. We are not talking about simply a phone for making calls. A voice call is just one possible feature of a mobile device.

With this in mind, we can try to categorize mobile devices.

Mobile phones

OK, we still have mobile phones in some markets. These are phones with call and SMS support. They don’t have web browsers or connectivity, and they don’t have any installation possibilities. These phones don’t really interest us; we can’t do anything for them.

In a couple of years, because of device recycling, such phones will probably not be on the market anymore. The Nokia 1100 (see Figure 1-1) is currently the most widely distributed device in the world, with over 200 million sold since its launch in 2003. In terms of features, it offers nothing but an inbuilt flashlight. The problem is that we can’t create web content for it. Some companies may continue to make very low-end entry devices in the future, but hopefully Nokia and most other vendors will stop creating this kind of device. Even newer, cheaper mobile devices now have inbuilt browser support. This is because the mobile ecosystem (vendors, carriers, integrators, and developers) wants to offer services to users, and a browser is the entry point.

For example, through its OVI Services Nokia offers OVI Mail, an email service for non-Internet users in emerging markets. Thanks to this service, many, many people who have never before had access to email can gain that access, with a mobile device costing less than $40. This widespread solution meets a real need for many people in emerging markets, like some countries in Africa and Latin America.

Low-end mobile devices

Low-end mobile devices have a great advantage: they have web support. They typically have only a very basic browser, but this is the gross market. People who buy these kinds of devices don’t tend to be heavy Internet users, but this may change quickly with the advent of social networks and Web 2.0 services. If your friends can post pictures from their mobile devices, you’ll probably want to do the same, so you may upgrade your phone whenever you can.

Nokia, Motorola, Kyocera, LG, Samsung, and Sony Ericsson have devices for this market. They do not have touch support, have limited memory, and include only a very basic camera and a basic music player. We can find phones in this category from $40 on sale all over the world.

200 million devices worldwide sounds very attractive but this device (Nokia 1100) is out of our scope because it doesn’t have a web browser.

Figure 1-1. 200 million devices worldwide sounds very attractive but this device (Nokia 1100) is out of our scope because it doesn’t have a web browser.

Mid-end mobile devices

This is the mass-market option for a good mobile web experience. Mid-end devices maintain the balance between a good user experience and moderate cost. From $150, we can find a lot of devices in this market sector. In this category, devices typically offer a medium-sized screen, basic HTML-browser support, sometimes 3G, a decent camera, a music player, games, and application support.

One of the key features of mid-end devices is the operating system (OS). They don’t have a well-known OS; they have a proprietary one without any portability across vendors. Native applications generally aren’t available publicly and some runtime, like Java ME, is the preferred way to develop installed applications.

The same vendors develop these devices as the low-end devices.

High-end mobile devices

Originally the same category as smartphones, high-end devices are generally non-multitouch but have advanced features (like an accelerometer, a good camera, and Bluetooth) and good web support (but not the best in the market). They are better than mid-end devices but not on a par with smartphones. The enhanced user experience on smartphones is one of the key differences. The other difference is that high-end devices generally are not sold with flat Internet rates. The user can get a flat-rate plan, but he’ll have to go out and find it himself.

Note

You will find different mobile categories defined in different sources. There isn’t only one de facto categorization. The one used here is based on mobile web compatibility.

Smartphones

This is the most difficult category to define. Why aren’t some mid-end and high-end devices considered “smart” enough to be in this category? The definition of smart evolves every year. Even the simplest mobile device on the market today would have been considered very smart 10 years ago.

A device in this category can cost upwards of $400. You can probably get one at half that price from a carrier; the devices are often subsidized because when you buy them you sign up for a one- or two-year contract with a flat-rate data plan (hopefully). This is great for us as users, because we don’t care too much about the cost of bytes transferred via the Web.

A smartphone, as defined today, has a multitasking operating system, a full desktop browser, Wireless LAN (WLAN, also known as WiFi) and 3G connections, a music player, and several of the following features:

  • GPS (Global Positioning System) or A-GPS (Assisted Global Positioning System)

  • Digital compass

  • Video-capable camera

  • TV out

  • Bluetooth

  • Touch support

  • 3D video acceleration

  • Accelerometer

Currently, this category includes the Apple iPhone, some Symbian devices like the Nokia N97 (some consider this device only high-end because of its browser), Nokia MeeGo devices like the N900, every Android device (including the HTC Magic and Nexus One), and the Palm Pre.

Note

Google bills its own device, the Nexus One (launched in partnership with HTC), not as a smartphone but rather a “superphone,” because of its 1-Ghz processor. The fact is, any “superphone” is super only for a couple of months before it is knocked from the podium by some other device, so this is not really a valid category.

Some other companies, like Nokia, call their phones “mobile computers.”

If you are still confused about the models, brands, and operating systems, don’t worry, it will become clearer. Some confusion is normal, and I will help you to understand the mobile web ecosystem in the following pages.

Non-phone devices

This may sound a bit strange. Non-phone mobile devices? Indeed, there are some mobile devices that have all the features we’ve mentioned, but without voice support using the normal carrier services.

For example, Apple’s iPod Touch and iPad are devices in this category. They aren’t phones, but they can be personal, are portable and easy to use, can be kept with you most of the time, and have WLAN connections, so they fall into the category of limited connected devices. They both also have a great mobile browser—the same one as the iPhone—so they will be in our list of devices to be considered for development.

We can also consider some of the new ebook readers. I have a Sony ebook reader, and it’s really great. My reader (a Sony PRS-700) isn’t a mobile device because it isn’t connected, but there are other versions (like the Amazon Kindle, shown in Figure 1-2, the Barnes & Noble Nook, and some newer Sony devices) with data connection support. The Kindle can display very basic web pages on its included browser, and a Kindle SDK has been announced for Java native development on this platform. Ebook readers aren’t phones, but they conform to all our other guidelines for mobile devices (with perhaps one difference: they are more likely to stay at home than to travel everywhere with us).

The Amazon Kindle can be considered a mobile device because of its network connection and (limited) web browser.

Figure 1-2. The Amazon Kindle can be considered a mobile device because of its network connection and (limited) web browser.

Small Personal Object Technology (SPOTs)

This may sound like a sci-fi category, but every year sci-fi gets nearer to us. The only difference between SPOTs and the other devices we’ve considered is their size: a SPOT may be a watch, or even a pair of glasses. The LG GD910 in Figure 1-3 is a watch with 3G support. It’s on the market now, so it’s not sci-fi.

The LG GD910 (the “watchphone”) is the first of a new generation of mobile devices that will have web support through widgets with updatable information in the near future.

Figure 1-3. The LG GD910 (the “watchphone”) is the first of a new generation of mobile devices that will have web support through widgets with updatable information in the near future.

“OK,” you may be thinking, “but are we really going to create a website for a one-inch screen?” Maybe not. But we can create small widgets to update information presented to the users, and this falls under the category of mobile web work.

Tablets, netbooks, and notebooks

I have to be honest: I love the tablet concept. For three years I had a Tablet PC from HP, and I always loved the idea of it. A small notebook with touch support was a really great device. However, when I bought it (back in 2005), the concept didn’t work. Why? I don’t know. However, the concept is back again, and we now have light netbooks, tablet PCs, the Apple iPad, and a variety of mobile-OS tablets on the market.

These devices have at minimum a nine-inch display, and they are more like desktops than mobile devices. Some have desktop operating systems and desktop browsers, while others, such as the iPad, have mobile software.

If a device has a full operating system, you will need to install antivirus protection and a firewall on it, so it won’t meet the easy usage criterion for a mobile device. Also remember that you can’t use a netbook while walking.

Still, this concept is growing up. Nokia, a well-know mobile device manufacturer, is now creating a netbook line: its Booklet 3G has 3G and WLAN support and runs Windows. Apple, with the iPad, has also entered this market with a hybrid half–ebook reader, half-iPhone.

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