Shopify / unity-buy-sdk

The Unity Buy SDK allows Unity developers to query and sell products from Shopify directly in Unity.
https://help.shopify.com/api/sdks/custom-storefront/unity-buy-sdk
MIT License
67 stars 23 forks source link

Extract iOS from Unity Buy SDK repo #528

Open sleroux opened 5 years ago

sleroux commented 5 years ago

Problem

This repo is using the now-defunct Circle CI 1.0 service for running automated tests. We'll need to migrate our tests to run on the open sourced version of Travis CI. A challenge with porting this repo directly to Travis is that it contains both the Unity C# libraries and iOS Swift libraries which have tests and Travis's support for running a test suite across multiple types of projects is limited [1]. The Android portion of the SDK was already extracted from the repo and has it's own CI setup here [2].

Solution

I propose we extract out the iOS plugin from this repo and put it in it's own repo (game-buy-sdk-ios) which can be tested independently inside it's own Travis CI job. This will also make it easier to modify the plugin when we need to support new versions of iOS

[1] https://docs.travis-ci.com/user/customizing-the-build/#build-matrix [2] https://github.com/Shopify/game-buy-sdk-android

sleroux commented 5 years ago

I did some research into what it would look like to extract the iOS code from Unity and found a couple of things:

I was able to move over the iOS tests to run on Travis so I propose we table this work for now. Motivation behind moving this out into it's own repo would be to reuse Apple Pay functionality on different gaming integrations. When that happens we'll need to convert the Swift code to ObjC++ to be compatible at a more native level and pull the code in as a static lib. Along with the refactoring we'd also reconsider the API boundary between Unity/Apple Pay to be more cross-engine compatible - similar to how Android is implemented today.