I'm working on the app with monthly auto-renewable subscriptions. Right now I'm planning to check/validate the receipt every time on startup, but it seems that this approach is perceived as a bad practice, and some people are implementing the complex logic to calculate when user's subscription will expire to check the subscription receipt only one time per month.
Why? If this will destroy the user experience (or, there is a chance for such turn of events), then how?