I'm pretty sure the crashes are a result of Server Side issues. It's a lot better now than it was on the first day, but the servers are still overloaded. The only crashes I ever experience anymore is in the middle of catching a wild Pokemon. I'll nail it, go into the Catch animation, and then it just hangs. When that happens, I'll press Home to exit, bring up the task manager to clear it out of cache, then immediately restart the app. Sometimes I'll find the Pokemon I was just working on in my inventory, other times it won't be there because apparently it broke free during the time I was logged out (and as luck would have it, it'd usually happen while trying to catch an Orange or Red difficulty pokemon). I typically experience this when numerous players are within my immediate vicinity.
Things are getting better though. Today I haven't had a freeze during Gym battles (a couple days ago it happened regularly).