What a mobile SDK is for

A mobile SDK is a ready package of code a development team embeds into an iOS or Android app.
Instead of writing authentication, tracking, caching and error handling themselves, they add the
vendor’s SDK and reach its capabilities through high-level methods.

In e-commerce, a personalization SDK covers several jobs at once:

  • Behavioural tracking: sending events (product view, add to cart, purchase) into the platform.
  • Fetching recommendations: requesting personal recommendations for the current user.
  • Content management: receiving the configuration of in-app messages, banners or remote config
    without shipping a new version.

What separates a good SDK from a bad one

Property Good Bad
Binary size Under 3 MB Over 5 MB with no justification
App start time Lazy initialisation Blocking the main thread
Network requests Asynchronous, with retry Synchronous, unhandled timeouts
OS version support The last three majors Only the latest
Documentation Complete, with examples Read the source

Tip: before integrating, ask the vendor for real production data on the SDK’s average impact on
app start time and on crash-free rate. Reputable vendors publish it or share it on request.

The SDK lifecycle in an app

  1. Integration — adding it through the platform’s dependency manager, configuring the API key.
  2. Initialisation — the SDK starts at launch or on first use; lazy is preferable for cold start.
  3. Event tracking — the developer calls SDK methods at the right points (sdk.track("view_item", ...)).
  4. Fetching data — the SDK requests recommendations or configuration and returns the result in a
    callback.
  5. Updating — each release can bring a new SDK version; older versions keep running for users who
    have not updated.

Integration mistakes

  • Initialising on the main thread. Any network call at startup risks an application-not-responding
    event on Android.
  • Tracking too many events. Every click as an event overloads the queue and the battery. Track
    what will actually be analysed.
  • Ignoring versioning. Updating the SDK without testing on older OS versions breaks the build for
    part of the audience.