Is there a common practice? [import]uid: 52103 topic_id: 17866 reply_id: 317866[/import]
I’m not sure what you mean with “progress” but if you’re talking about statistics and app settings, then as long as you keep your bundle ID the same (com.somecompany.appname) then everything should be OK.
All statistics are based on the bundle ID, and app settings will remain.
For iOS it’s easy since you can change from free to paid whenever you want.
For Andriod however, it’s not possible to change from free to paid. Once free always free. This means you will have to create a new bundle ID for your paid version, which also means you will have two separate apps with no way to transfer statistics/settings from the free app.
[import]uid: 70847 topic_id: 17866 reply_id: 68227[/import]
Thanks for your reply. I have two versions of the game - free (with ads) and paid (without). After completing a few levels in the free version of the game, users may decide to purchase the paid version. However, they don’t want to start all over again. Is there a way to detect if the paid version is installed and load settings from it? [import]uid: 52103 topic_id: 17866 reply_id: 68231[/import]
Sharing data between apps is not possible with iOS, Apple doesn’t allow it. With Android I’m not so sure. It might be possible, however there are no API calls for this in Corona, and I wouldn’t recommend it.
Instead, I would opt for using in-app-purchasing. This would solve your problems. The only drawback is that it’s only available for iOS at the moment in Corona.
Another solution would be if you have your own server. You could have your app create user accounts and store backups of the user data there.
[import]uid: 70847 topic_id: 17866 reply_id: 68279[/import]
Thanks! I will consider storing the data on my own server. It’s probably best to have a backup button (not automated backups) for those who decide to upgrade. And use their device ID to make this as fast and easy as possible. And since I already store settings in JSON, using MongoDB on the server would be perfect, I think
[import]uid: 52103 topic_id: 17866 reply_id: 68308[/import]
…sounds like a plan!
Just a quick note regarding the UDID. As of iOS5 it has been deprecated. No worry though, you can still use it (I still do in my apps when I communicate with my server). However it does mean that sooner or later Apple will remove it from the SDK (maybe iOS6). We need to find another way to determine a unique ID.
I’ve been playing with the idea of creating an app-specific UUID which is simple enough, however to work properly I’d need to save that in the device’s keychain which is not currently possible with Corona. The beauty about the keychain is that your apps can share keychain data with each-other, and it would survive app removals and device restores even onto another device. [import]uid: 70847 topic_id: 17866 reply_id: 68318[/import]