I spend my work days on a Mac Pro desktop with an SSD hard drive and an internet connection that hovers around 85mbs down and 5mbs up. This a crazy fast setup. I’ve almost forgotten how frustrating it can be to have to wait for the computer to keep up. Now, I’m so spoiled by the speed that if I’m forced to wait even a few seconds longer than I expect to get something done, I start getting frustrated real fast.
But, I build websites and apps for people with exponentially slower machines and internet connections than I have. If I can still get frustrated with my lightning fast setup, certainly the people I’m building for must be experiencing even greater pain.
When we build web apps and design interfaces, we empathize with the people we’re building it for. We consider speed a feature. The difference between a sluggish UI, and a snappy UI can make the difference between a happy customer and a frustrated customer. With such an insanely fast workstation, how can I possibly empathize with someone who’s on—say—a cheap DSL connection?
Use Network Link Conditioner
Network Link Conditioner is a tool provided by Apple that lets you throttle your network connection to a few preset and any number of custom configurations.
Getting it requires a visit to the Apple developer center to download a package called Hardware IO Tools for Xcode.
- Visit https://developer.apple.com/downloads (You’ll need a developer account with Apple).
- Search for Hardware IO Tools for Xcode and download the .dmg.
- Open the .dmg, double click Network Link Conditioner.prefPane
Once you get it installed, you’ll see a preference pane in your system configuration that looks like this. I’ve configured it to a DSL connection preset and turned it on.
Now that I’ve got my fancy new DSL connection, I can now browse the internet at a more “common” connection speed:
After you get this going, try browsing around some of your favorite web sites and apps and see what they’ve done to optimize for slower connection speeds. Try out the different presets too, like Very Bad Connection.
Next time, I’ll figure out how to use this on localhost connections, so I can develop with a throttled connection on my own machine.