Flurry is free - I implemented it in one app to provide detailed logging of user activities.
Basically, most of these packages need you to add a line of code at each point in your app where you want to note something happened. This is not hard compared to most work in app development.
Some will advertise that they automatically track what happens in your app but that usually requires either something more intrusive be compiled into the app and/or makes assumptions about navigation through the app.
I have used MixPanel in a friend’s app. The analytics dashboard for MixPanel is pretty easy to use to do things like establish funnels - I used it to quickly demonstrate the fall-off when people where confronted with a login page. It used to be more expensive but now allows 20M data points per month in the free tier.
It sounds like a huge figure to say 20M data points but if you are logging all events a user generates as they move through screens, especially as you are trying to improve usability, you can easily log hundreds of data points per user per day. Say your average user logs 200 data points per work day, that’s 4,000 per month, that’s roughly 5,000 heavily-engaged users users to hit the end of the free tier. That’s a fairly conservative level of logging.