ADR-0010 QuantaCorp SDK
Publication Date | 2021-03-09 |
---|---|
Last Update | 2021-03-09 |
Status | Accepted |
Context
The eTryOn project will be developing multiple applications that require an avatar to work or to enrich the user experience. The creation of this avatar starts with the capture of two images. Those two images are sent as input to the QuantaCorp pipeline. After processing, the output of that pipeline is a 3D model.
QuantaCorp’s current technology portfolio consists of an API, a web portal for B2B customers, and a mobile app for B2B customers on iOS and iPadOS.
Given that eTryOn is customer focused, we need a solution that will meet customer expectations while keeping the impact on QuantaCorp’s architecture to a minimum.
To reach a broad public, we need to expand to other platforms like the web and Android. We should avoid having to make the user open a separate app to capture the required photos. Having to switch apps can have a negative effect on the overall user experience. Because there is no direct communication channel as there is in a B2B environment, guidance during a scan becomes very important. The user will also expect the scan interface to work in the same fashion across platforms. If this experience cannot be guaranteed to be similar, guidance during a scan becomes a must.
Developers should be provided with libraries that facilitate the consumption of the QuantaCorp API, and allow them to integrate QuantaCorp’s pipeline in a loosely coupled way.
Decision
We will create an SDK for Android, iOS and web that will consume the QuantaCorp API and will include a scan component to facilitate photo capture.
Consequences
By creating an SDK for the various eTryOn apps, scanning functionality will be implemented in the apps themselves. This way we avoid having to force the user to use a separate app.
The SDK will be implemented in Unity (cf ADR-0006) which could pose a small development challenge.
We reduce the complexity of the project’s architecture by avoiding the integration of yet another application, and yet another system.