EngineeringOctober 18, 2017

5 tips for integrating SDKs the right way

Learn how to integrate SDKs into your mobile data strategy holistically with these five tips from our head of SDK engineering, Sam Dozor.

5 tips for integrating SDKs the right way

SDKs, or Software Development Kits, provide a cost and time-effective way to add third-party features into your websites and applications. Roughly half of the SDKs in apps are marketing and customer experience related, addressing needs such as analytics, attribution, A/B testing and user engagement, but there are also SDKs for crash reporting, user login and authentication, payment processing, and more.

When integrated properly, these libraries provide app creators with turn-key access to many of the core components needed to build and maintain high-quality product experiences. However, SDKs are not a panacea—too many SDKs, and improperly implemented ones, can lead to a host of problems including app bloat, instability, battery life drainage, data leakage, and more. But, it doesn’t have to be that way; follow these five tips to integrate your SDKs successfully. 

Integrate SDKs The Right Way

If you have decided to integrate SDKs into your mobile data strategy, here are some steps you can take to ensure they’re successful.

1. Measure twice, cut once

The main goal of integrating most SDKs into your application is to improve the application and better use data from it. Before touching any code, you need to make sure you have a clear game plan. The best way to go about this is to answer the following questions ahead of time:

  • What are your business objectives?
  • How will an SDK work towards these objectives?
  • What risks could an SDK introduce?
  • What metrics will determine success?
  • How will you analyze these metrics effectively?

Doing this will help you both determine the need for implementing an SDK in the first place and minimize app bloat when you do. Once you determine an SDK fits into your strategy, then you are ready to begin the vetting and testing process.

2. Maintain open communication

Creating, maintaining, and updating applications takes the work of several teams. When you introduce SDKs, that may need to work closely with developers from other organizations. Maintaining clear, open communication is one of the most important practices throughout this process.

In an ideal world, every SDK would work perfectly. Unfortunately, this isn’t always the case. Providing constructive criticism to the external organization team members is a great way to help both organizations understand and improve pain points. It’s also important to remember that developers that wrote or work directly in the SDK are likely more well-acquainted with it, should you have questions when either vetting or integrating the SDK. More often than not, the easiest way to find a solution to an issue is to ask those who know it best.  

Within your organization, it’s important to keep everyone that will interact with an SDK in the loop. Before integrating an SDK, set clear naming conventions and develop a data hygiene process to diminish friction between teams and produce more actionable data.

3. Commit to one hour of review

Before diving headlong into SDKs, it’s important to keep in mind that Introducing new code into any environment carries a degree of risk. However, most of these risks can be mitigated by thoroughly vetting an SDK before introduction. Reviewing an SDK doesn’t need to be a time-intensive process to yield results.

We recommend committing to one hour of code review to understand what an SDK can accomplish within your application and its requirements. Your review should not only focus on its SDK’s dependencies, but also its manifest merger and post-build merger debug report. Completing this review can help you maximize the benefits and minimize issues in the long run at a low time-cost.

4. Automate when possible

SDKs provide services and features to applications while reducing the development and testing cycle it would take to build those features in-house. After doing all the work to integrate SDKs, regular updates to the SDK will keep your application running smoothly. If you have more than a few SDKs, this could start to become a substantial use of engineer hours. To alleviate the burden and free up your engineers to further develop your application, we recommend automating updates as much as possible, whether you employ a wildcard or other method.

5. Otherwise…

 Instead of implementing every service as an SDK, you can employ a  customer data platform, like mParticle, which gives you access to 175+ services with a single API. mParticle eliminates the need to integrate and update multiple SDKs within your app and offers additional features like audience syncing, identity resolution, and campaign orchestration. Contact us today to get started.

Latest from mParticle

See all insights