We’ve migrated our documentation to a new site, which means some URLs have changed.
Subscriptions

Piano Integration: Mobile Apps

Mobile experiences

Piano provides SDKs for iOS and Android to create mobile app experiences with Composer. This integration provides flexibility for creating dynamic user experiences in native applications by leveraging the power of Composer's segmenting, metering or A/B testing abilities.

In-app purchases

Both iOS and Android require apps to process subscriptions and transactions through their stores, which makes it impossible for Piano Management + Billing to transact through your integrated payment provider. However, Piano Management + Billing is integrated with both iTunes and Google Play stores, which allows Piano Management + Billing to verify in-app subscriptions directly with a store's API. As a result, it centralizes the entitlements in Piano Management + Billing, so the consumer, who purchased the in-app subscription, is still able to get access on the web or any additional platform.

Authentication

Clients using Identity Management, but not mobile app experiences, can include a Identity Management login feature inside their mobile application.

Entitlements

Whether your business model is a hard paywall, or you simply need to check entitlements on the mobile application without integrating with Composer SDK, your mobile application needs to check access via REST API. For single access check, the /access/check method would provide access details for a single resource, or alternatively use /access/list if your application is leveraging multiple resources.

If your mobile application will not make any network requests directly to Piano's REST API and uses a managed server as a proxy, you should consider using the API methods from the Publisher Module, which has a much larger suite of methods. These methods require an API token as an authorization credential, and so cannot be used on the mobile device directly, where the API token could be compromised.

Here you can find more information about Implementing Piano's mobile SDKs.

FAQ

How do you implement mobile experiences using React Native?

Your application should implement bridge modules that would connect the JS and native part of the application. It's required because you won't be able to execute mobile app experiences from JS code in react native. You can find more details here.

What's the recommended approach for non-native apps (e.g. mobile web wrapped in the app) for the Composer experiences?

The recommended approach is running through native code with mobile Composer SDK. Although running the web version of Composer might sound attractive in this case, web experiences are guaranteed to work only on the web, and not in web-based mobile applications.

What's the recommended approach for native apps?

To get the most out of the Piano platform, we recommend using Composer SDK in the native apps as described above.

What app languages are supported?

Piano has SDK for mobile experiences supported in Objective C, Swift, and Java (for Android).

Last updated: