3rd party integrations

SDK Integration

4min

Purple Experience



Summary

This article explains the details required, if you want us to integrate a SDK or other 3rd-party system for Purple Apps.

Introduction

At Purple, we are happy to integrate SDKs and 3rd party systems that we do not currently support. We believe that this helps to provide variability and opportunity for our customers.

Not every 3rd party system is ready to integrate with the Purple platform.

Following our product approach, we need to be able to automate the build process of our Purple Apps: We provide a white-label app framework (native Android and iOS, respectively) to which we pass a specific configuration and get an app as output. For third-party integrations, we have certain abstraction layers for instance, analytics frameworks and consent management platforms.

Requirements

In result, we require any SDK integration to meet the following specifications:

We expect published artefacts in common package managers, without the need to manually include any library code.

  • For Android, a published aar artefact in a maven repository, so that we can include it like this (using SourcePoint as an example): implementation 'com.sourcepoint.cmplibrary:cmplibrary:7.1.0' This maven repository can be password protected if needed.
  • For iOS, we use Cocoapods, so we expect something like this to include the library: pod 'ConsentViewController', '7.1.0' Actually, in our case it's included in a .podspec instead of a Pod-file, since our app framework is a library, too: sub.dependency 'ConsentViewController', '7.1.0'
  • If you don't want to publish your source code publicly, it's also possible to publish a precompiled xcframework in a cocoapod, like ConsentManager does for example (see https://github.com/iubenda/cm-sdk-xcframework)

Since our app builds are running on various developer machines and in CI/CD runners, we cannot provide SSH keys here, especially since they can change over time (e.g. adding a new machine).

To ensure smooth development, we also require a development environment. It should be configured the same way as a generic production environment and enable us to verify proper functioning of our code and configuration.