Responding to Changing Network Conditions
Mobile users transport their mobile PCs from office to home, from classroom to library, from airport to café. Network connections and capabilities differ in these environments, and the transitions between them can affect applications. In the mobile environment, network connections come and go. Some networks are unsuitable for particular uses because they are unsecured or have slow performance.
Mobile users are aware of these transitions, and they've learned how to adapt to them. They expect your application to be able to adapt as well. In short, they want to continue to be productive through all of the connectivity transitions that are typical of mobile computing environments. Consider the following:
- When their mobile PCs resume from sleep, users do not want to be alerted to the obvious (that a previously connected network is now gone) and the annoying (that your application encountered associated difficulties). Nor do they want to find that your application inexplicably failed.
- If they establish a better network connection (for example, a person might have to crawl under the desk, retrieve the network cable, and plug it in), they expect your application to automatically make use of it.
- They do not want their work interrupted with notifications every time a wireless connection becomes intermittent, is dropped, and is then reconnected.
- They do not want to be notified of difficulties with background networking activities that they were unaware of.
- Enable users to maintain control throughout networking activities. At a minimum, this means that your application should avoid network-related failures.
- Communicate appropriately and minimally about networking transitions.
- If possible, find ways to shorten the duration of network transfers: either transfer less data or delay the transfer until a high-speed connection becomes available.
- Take advantage of high-speed network connections when they're available: download data to cache and perform any pending data transfers.
- Checking Availability Before Attempting Use
- Handling Network Transitions Transparently
- Provide Options During Lengthy Operations
- Cache Critical Data
Build date: 2/8/2011