Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

In-app purchases to unlock paid functions

I am looking to release two version of my app: free and paid. The paid app will have a few more functions but no extra content as such. Originally I was going to release two separate apps on the market but it is proving difficult to keep a single code base and have two separate apps.

Would in-app purchases be a better way to do this? So I release a free app and then allow users to purchase a unlock for the extra functions. This would also mean that I wouldn't have to explicitly use the licensing part of the Android development as that is taken care of within the in-app purchasing.

like image 959
James Cross Avatar asked Jun 23 '12 14:06

James Cross


People also ask

How do in-app purchases work in iOS?

If you’re planning to use in-app purchases in iOS, you need to have an Apple developer account. This can be your own personal Apple account or as part of a team. The app we’re going to build is a subscription-based app. Basically, the user has to subscribe using in-app purchases to unlock a paid feature of the app.

What happens when a user pays once for an app?

When users pay once for a non-consumable product (like unlocking all maps in our demo app), they should never be asked to pay for it again. However, they should be able to get their purchase back when they install the app on a different device or when they re-install on the same one.

What happens when you make a purchase on the App Store?

As you understand, making purchases is an asynchronous process just like fetching the products information from the App Store. The outcome of a transaction should always become absolutely clear to users, regardless of whether it was successful or not.

How to make in-app purchases using getproducts method in Android?

The getProducts (withHandler:) method is a quite important one, and even though it’s small, it contains vital steps for making in-app purchases possible. Here it is all together: // products on the App Store is finished. // Initialize a product request. // Set self as the its delegate. // Make the request.


2 Answers

There are three strategies which come to my mind:

  1. Release two versions, a free version and a paid version. The paid version contains additional features. To make development easier, you should use Android Libaries. These prevent the duplication of code.

Advantages:

  • Simpler to implement.
  • Works on other markets as the Android Market because it is not dependant on it.

Disadvantage:

  • If the user has some data in the free version, you must provide a import functionality for the paid version or the user will loose the data.
  • You have two versions on the market which get different reviews.
  1. Release two version: a free version which contains all features but some features are locked. Unlock them using a "unlock app" which is a simple paid app released on the market.

Advantages:

  • Simple to implement.
  • Works on other markets as the Android Market because it is not dependant on it.

Disadvantes:

  • Is not that intuitive because the user has a "useless" app installed.
  1. Release one version: a free version which contains all features but some features are locked. Unlock them using in-app purchases.

Advantages:

  • Finegrained solution: You can unlock different features for different prices.

Disadvantes:

  • Not that simple to implement, the In-App-API is tricky
  • Does not work without Android Market
like image 102
theomega Avatar answered Nov 21 '22 08:11

theomega


You could also use two separate flavors. One for the free version and the other for the paid version. Without rewriting another boss project.

https://developer.android.com/studio/build/build-variants.html

like image 23
AlexPad Avatar answered Nov 21 '22 08:11

AlexPad