I was really excited after I read about Path sending address book data to their servers. Not because of anything with privacy, but because the post showed me how to snoop traffic on the iPhone. I could finally figure out what GroupMe was doing to absolutely destroy my battery when I left it running.
GroupMe is an excellent service. It makes it very easy to create groups and communicate with them. My team at work actually ditched Campfire to use it because of how much we were talking on our phones outside of work. There’s one big problem though, it absolutely destroys your iPhone battery.
The Internet tells you to turn off location services for the app to solve the problem. That might have helped if I was using location in the app, but I wasn’t. My battery still would drain like crazy, even when my phone was asleep. It feels like my phone is going to overheat and explode.
So what the heck is GroupMe doing? I hooked up mitmproxy and opened up GroupMe. I saw all the expected traffic when I was loading messages and sending them. When I closed the app though, the requests didn’t stop. I noticed lots of requests that look like this
http://chat.groupme.com/event?token=33367a776311af00asdfas6869d43b9e&flush=true happening over and over again. GroupMe is polling for new messages, constantly, in the background.
Luckily, the iPhone kills the app after about 10 minutes, but 10 minutes of constant network activity is still going to do plenty to drain the battery. What I don’t understand is why they’re doing this. All it gains them is not sending a push notification to that phone for the next 10 minutes.