OsmAnd is free with enough contributions to OpenStreetMap.
Personally, I was using MagicEarth for public transport when needed but it’s stopped working for some reasons. Once Organic Maps gets support for public transport (currently it only provides train times for me), I’ll fully move there. It’s great for everything else though!