On this page Choose the right SDKResponsibilitiesIntegration sequenceLifecycleDelivery and capability boundaries
APP SDK / Android · iOS

Architecture and integration

Understand the host app, native SDK and platform responsibilities, then choose an Android or iOS integration path.

Choose the right SDK

The APP SDK runs in Android and iOS applications. Design your own pages, interactions and brand, then call native interfaces for device connectivity, cloud binding, commerce, stores and payments. The Infinite Ride app uses this same SDK.

For instrument firmware, FreeRTOS BSPs and terminal protocol integration, use the separate hardware SDK docs. The two SDKs run on the phone and terminal respectively; they are not interchangeable.

Responsibilities

Layer Responsibility
Host app Brand and UI, privacy consent, system permissions, platform login, map and media extensions, payment URL entry points
APP SDK Native device sessions, credential storage, cloud binding and recovery, commerce and store requests, purchase intents and payment invocation
Platform Account verification, application and manufacturer scope, vehicle authorization, pricing and inventory, orders and payment status
Terminal and hardware SDK Terminal identity, nearby pairing, vehicle capabilities and execution receipts

The SDK does not include a complete set of skinnable screens. Cross-platform hosts such as React Native need their own thin bridge; public capabilities do not depend on a JavaScript runtime. Maps, location and media require host extensions. SDK initialization alone does not enable them.

Integration sequence

  1. Contact the platform to register your application, manufacturer scope and services. Obtain the binary package, API base URL and platform login contract.
  2. Follow the Android or iOS guide and configure your registered clientId.
  3. Obtain privacy consent and required system permissions, then install the original session returned by platform login.
  4. Recover unfinished operations before loading the vehicle list. Follow vehicles and recovery to connect.
  5. Show commerce and stores for the selected vehicle or fixed manufacturer. Create orders and initiate payment only after explicit user action.

Lifecycle

Configure once per process. Maintain one device client and one selected vehicle. Call public device, account and cloud client entry points on the main thread; callbacks return there. Never block it waiting for cloud requests.

Cloud clients capture the account and token at creation. After login refresh or an account change, cancel old operations, wait for settlement and create new clients. Leaving a screen, cancellation or a system dialog does not roll back business operations. Reconcile results already confirmed by the server or terminal through recovery APIs.

SDK 0.2.1 isolates vehicle caches and cloud recovery records by API base, clientId and account. Terminal credentials retain their account/terminal scope, so test and production still require separate installation identities and storage. Verify the origin before adopting legacy pending records; see accounts and scope.

Delivery and capability boundaries

Android receives an AAR with Maven metadata; iOS receives a static XCFramework. Public headers, native samples and contracts/commerce.d.ts are included. Retain the third-party license notices supplied with the package.

The server enforces manufacturer scope. clientId is a public application identifier, not a secret. This version does not provide partner account token exchange or application attestation. Availability also depends on platform registration, terminal support, phone permissions and payment provider configuration. See accounts and scope and release checks.