Possible solution to Lodsys patent issue for iOS developers?

Mobile developers who offer in-app upgrades are current facing a potential patent dispute (and licensing issue) with Lodsys, a group that is claiming patent infringement.

The specifics of the patent deal with in-app upgrades and applications that are downloaded with limited features and offer the ability to “upgrade” to the full version *within* the application.

This usually consists of hitting a button in the app that invokes a transaction via the iOS in-app purchase API and at this point features in the App are “unlocked”. In some instances this can mean downloading new content (such as new levels etc)

Developers who offer in-app upgrades and purchasing are clearly worried about this whole affair but there are a couple of options available to them which would avoid breaching this patent.

1. Separate applications. In essence a developer would create multiple versions of it’s application in the AppStore. Each app would have a separate ID and cost.

Users could be prompted to download the new app from the Appstore thus bypassing the in-app purchase.

The downside of this solution is it would clog the AppStore with multiple versions of the same app.

2. Mini-apps that “unlock” features in a main app. I haven’t checked this against the Apple developer agreement but basically this would work by having a main application which includes ALL the features people can purchase on it’s initial download.

The additional features are hidden and locked when the application is installed.

To “upgrade” users are directed to NEW, separate applications in the AppStore each of which would offer a particular upgrade.

Each “mini app” would be purchased as a NEW application install (thus bypassing the in-app upgrade patent) and when launched they would make an HTTP call to the main app (e.g mainappUID://<VALUE>) passing some sort of token across that would “unlock” the features of the main application. 

Obviously there could be some security issues here in encrypting the URL key to ensure it can’t be called manually from say Safari but technically this should be possible.

Hope this helps!