How do I configure the pricing so it is charged for every month? Do I have to add functionality in the app itself for this? Or is it managed outside the app?
The plan is to offer the app for iOS and Android. I guess it is managed in different ways on Android and iOS or is there a uniform interface, which can be used to implement this functionality in a cross platform matter?
Mike -- there are too many ways to answer that question, which is outside the scope of the support we are able to offer here. I recommend you search Stack Overflow for something like "subscription service for cordova phonegap app" (or something like that) to see what others have tried to do. There are many services you can go through, you do not have to use just Google and iOS. Which service is the best is hard to say, it depends on what you need and what works for your customers and app. Most of what you'll find out there is about including ads, but I'm sure you can find backend services (for a fee) to help you implement a subscription service, as well.
The Intel XDK creates standard Cordova (aka PhoneGap) apps, so solutions you find for Cordova apps can also be applied to the XDK. One restriction to be aware of is that our build system does not support Cordova plugins that utilize hooks scripts or gradle scripts. If your solution includes a plugin that requires those features you'll have to move to building the app locally, yourself, using Cordova CLI.
Apple have quite hard restrictions on how subscriptions are managed I believe. I read somewhere that you're not allowed to have any URLs in the app that lead to external subscription services, for example. All app providers/developers who make use of external subscriptions (such as Spotify and Netflix) seem to have removed all links as you're not allowed to have that.
At the same time, there's now support for new price/business models in iOS, such as subscriptions in 200 different price tiers if I remember correctly. Not sure how Android manage subscriptions, but there should be support for it in Android as well IIRC.
That was the reason for my question.
So basically, there seems to be two options:
(1) Use an external service and let the user type in his/her user and password in the app, which is then validated against the server. And remove all links from the app to the external (web) service. That's not ideal, because then it becomes difficult to promote the service, as you're not allowed to include any links to it. In addition, it's cumbersome for the user to purchase from an external service as it allows typing in credit card information etc. one more. Compared to the few clicks that are required to buy from the App Store or Google Play.
(2) Manage subscriptions in the app itself. Then all payments have been moved to the app and you will have some degree of promotion for the service in the app itself, from the app store. Then there are three choices:
(2a) Use a cross platform library for managing subscriptions so you stick to the concept of a single code base. You won't pollute the source code with different implementations depending on whether iOS or Android is used.
(2b) Do it the hard way and implement different solutions for iOS and Android.
(2c) As I don't really know how subscriptions are managed, the best would be if they are managed outside the app itself but in the OS rather than in an external web service. If that is the case, then nothing needs to be done. The OS itself disables the app if the subscription hasn't been paid. But I guess that it doesn't work like this, right?
I asked becuase I'd like to avoid (2b). Single codebase is prefered due to maintenance issues. And I bet that subscriptions, which is a relatively hot topic at the moment, will go through a number of updates in the near future. But using a cross platform layer on top of each platform could of course make it more difficult if it's not updated when the APIs change...
Thanks for the reply. The Intel XDK is great.