I have a meteor mobile (web app + cordova) app in production for some months now.
Users are mostly in the UK, where the mobile network quality/speed is not so good.
One of the problems I had in the beginning was to control the amount of data fetched in into the app (had to move away from the meteor livedata package for some big collections; use the richsilv:dumb-collections package for that, with good results).
I measure the network quality (speed) by making some ajax calls to my server (from the client, with no-cache) and measuring the time it takes for a round-trip. Have a global Session var that stores the average of the last 10 measures (make one call/minute) and the app opens or closes the database connection according with that value (with Meteor.disconnect() and Meteor.reconnect()).
This is to avoid unnecessary data subscriptions (when meteor looses its heartbeat, it subscribes a full set of the data the next time it has a connection with the server)
I would like to hear your thoughts on this approach. If you have a better idea, please share