Simulate Mobile Network Latency, Delay, and Packet Loss in OS X and iOS Simulator

Recently, our team at work has been running into very intermittent issues with the sync process for our applications. Our users are sometimes working in rural areas, on mobile data networks, and we have reason to believe that our issues might be because of an intermittent or low-quality data connection. After a bit of searching, I came across a StackOverflow post that referenced Apple’s ‘Network Link Conditioner’. This utility allows you to simulate a variety of delays, network speeds, and levels of packet loss, allowing you to more realistically test how your app might perform on these networks.

Of course, you can always manually disconnect from your network to simulate a complete loss of connectivity, but being able to simulate packet loss and latency is a much more accurate test of what your users will experience when using real-world data networks. On top of that, installing the app is simple:

  1. Download the Hardware IO Tools for Xcode and open the DMG. (NOTE: This is only for OSX 10.7+)
  2. From the disk image, install the ‘Network Link Conditioner’ preference pane.
  3. You can now open the pane from System Preferences.

Upon opening the app, you will find that the app itself is mostly self explanatory, easy to use, and includes a number of presets for your to accomplish your testing:

select-profile.png

It’s worth mentioning that this will take effect on the entire machine, including your web browser and any files you may be downloading. That being said, this isn’t applicable just to testing in the iOS Simulator, but is also quite useful for testing web application performance on slow networks. Try this on your web site, or any website, and sit back and remember about how we all complained about how slow dial-up was.

slow.png

Remember when downloading one megabyte took more than a full minute? Those were the days…

 
2
Kudos
 
2
Kudos

Now read this

Learning Objective-C, OS X, and iOS Programming

Since switching to a Mac last year, I’ve been determined to learn as much as I can about Objective-C and native OS X and iOS development. Typically, when I’m looking to learn a new language or subject, after I’ve exhausted the free... Continue →