I’m finalising quite a simple app that carries out calculations and projections of sales volume.
I plan to allow ‘unlimited use’ of the app for £0.99 a month.
The free version will allow a user to carry out 3 calculations per day.
I am using CloudKit to allow users to sync their subscription between devices. I currently have everything up and running but I’m looking for opinions on how ‘sensible’ I should be. I don’t think it’s practical to check iCloud each time a user wants to carry out a quick calculation. Likewise I think it would be naive to purely store the expiry in user defaults. There would be nothing stopping a whole sales team using one account, getting the expiry stored to user defaults and then use the app unlimited for the whole month.
In the ideal scenario the ubiquityToken will match the one I store every time a ‘full’ check is done through iCloud. That way I know the expiry I store belongs to the user. I know it’s rare that people log out of iCloud but I found while testing that the ubiquityToken returned nil if the user didn’t enable iCloud documents (which I never had) so this ‘ideal’ match may not happen.
What are people’s opinions? Should a do a ‘full’ check each time? Every 3-4 hrs, every day or every few days? If I check too often I risk limiting paying customers if, like me, they use an iPad with no cellular connectivity when they’re out of the house without wifi. If I check too infrequently I risk my business model being abused and losing out on revenue. This is the first in a series of apps that I’m planning and I want to get a good handle on how to manage the expiry issue.
Sorry for the long post. It was difficult to explain what I meant.