David Singleton monitored his Internet connection while on a train journey. Most people have experienced what it is like using mobile Internet in a driving vehicle — it’s generally pretty unreliable.
David found that the big issue is incidental latency. Latency can vary wildly, in his measurements between 100 milliseconds and 20 seconds. TCP does not deal well with such differences, due to its exponential backing off. Do we need something built on IP that deals better with extremely unreliable connections?
This makes a strong case for offline capable mobile applications: make sure your application is still useful during those 20 second latencies. Cache data. Precache data. Show something more than just a spinner.
As it turns out mobile apps are generally good at the “app” part; not so much on “mobile”.