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
- Integration — adding it through the platform’s dependency manager, configuring the API key.
- Initialisation — the SDK starts at launch or on first use; lazy is preferable for cold start.
- Event tracking — the developer calls SDK methods at the right points (
sdk.track("view_item", ...)). - Fetching data — the SDK requests recommendations or configuration and returns the result in a
callback. - 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.