[David Singleton](http://blog.davidsingleton.org/mobiletcp) 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".