Converting the XPMobileSDK to use typescript and class-based structures - for use in NextJS

It seems that the global dependencies and callback structures in the current SDK doesn’t play well in NextJS.

To address this, we’re rewriting the SDK in TypeScript and adopting a class-based structure.

However, we’re also concerned about how to efficiently implement future changes to the SDK without disrupting our new architecture. We would love to hear your thoughts and suggestions on additional improvements or best practices we might consider, especially regarding managing updates. How have you successfully handled similar challenges in your projects?

In general, we maintain the existing communication protocol with the MoS, and we avoid breaking changes when introducing new features. If the protocol does change, a changelog file is included with the release, detailing the modifications.

We have never supported forward compatibility. Therefore, when updating the MoS, clients should also update their SDKs and verify that the new version works correctly. If adjustments specific to a version are necessary, version-specific configurations should be implemented.

For a more generic approach to backend communication, I recommend using API gateway that was release in 2024R2. This approach is currently more stable and relies on REST calls instead of SOAP calls. However, note that some functionality available in the mobile SDK, such as VideoPush, may not be achievable with this setup. The choice depends on the specific requirements and objectives of the implementation.