Mobile SDK development: A Comprehensive Checklist

Maya Kamath
WhatfixEngineeringBlog
5 min readJun 15, 2021

“The future of mobile is the future of online. It is how people access online content now.”

– David Murphy, Founder and Editor of Mobile Marketing Daily

Mobile SDKs are an integral part of mobile app development. Every mobile application generally integrates 15–20 SDKs on average. From the past couple of years, Mobile app market has seen a huge growth in the number of applications and their use-cases and this presents an opportunity that SDK developers can tap on.

With the huge number of mobile SDKs available in the market today, It becomes even more important to provide a seamless and great experience to the users of your SDK in order to stand out from the crowd.

In this post, we can examine some of the Good practices that one needs to inculcate in mobile SDK development to help deliver a world-class SDK.

Development Checklist :

Quick and Easy Integration

SDKs are generally created to support use-cases, where it can decrease time and effort in coding. If the process of SDK integration into the app is complicated and time-consuming, such SDKs might not even stand a chance.

To make the integration of SDKs easier, One can use a dependency manager like CocoaPods, npm, NuGet or use a repository manager like JFrog Artifactory. Ideally, your users should be able to integrate your SDK in less than 10 minutes or less.

Permissions !! Permissions !! Permissions !!

You should always clearly and transparently communicate the permissions your SDK will need to function. It is an added bonus If you can clearly justify the need for the permissions. Always cross verify if the permissions you have added in your SDK are actually required.

In an ideal scenario, your SDK will not need any permission apart for what the host application is already using.

Great documentation = Quick Integration

You have to provide your users with clear, well-organized documentation to allow them to successfully use your SDK’s features and see its value. The more value developers are able to extract from your app, the more likely they are to stay and possibly bring some friends.

Your documentation should cover all your methods and APIs and provide “getting started” guides and lots of sample code. This way your users can just copy and paste this code and with a few edits, they will be up and running.

Why, How: Understanding Problem/Value and Use-case

It is always a plus to have an understanding of What the problem the user of your SDK is trying to solve using your SDK, How the SDK integration has benefited them.

Having an insight into the most commonly used tools by the developers in your space makes it easier for you to design an SDK that suits their needs better.

Resource Management

As mentioned before, apps have an average of nearly 20 SDKs integrated. So be vary of the resources your SDK uses, and how much overhead it can add to the application. Remember that your SDK is a guest in your user’s app — strive to be a great guest and use as few resources as you can.

It‘s all about the size!

The size of an app is often an important deciding factor end-users consider when they want to install a new app. You wouldn’t want your users to complain that they are losing installs because your SDK increased the size of the app drastically. Make sure any resource you include in your SDK is in a compressed and optimized format.

Also, a thing to bear in mind is to keep the Third-party dependencies in your SDK to a bare minimum.

Zero conflict with your users’ app

Your SDK should under no circumstance affect the behavior of the host app. You’ll want to make sure you use a prefix for all resource names in your SDK to make sure they are unique and will not cause any issues for the app.

OS versions Compatibility

Compatibility with OS versions is the key to ensure your SDK can be used by a larger audience of developers. Set a reasonable minimum OS version to support in order to make sure that you have covered the generally used minimum OS version of the app itself, to avoid conflicts while integrating.

Also, a prompt effort to support the latest OS version and architecture ensures that your SDK stays on the app for a longer period of time.

Quality, It is not an act; it is a habit.

Generally, App developers have bugs and crashes of their own and it would be prudent not to add additional burden with bugs from your SDK.

Consider adopting a zero-bug policy. Obviously, some bugs will always make their way through the doors, but you have to keep them to a minimum in both quantity and severity. Coupled with good support and speedy fixes, this will ensure you don’t negatively impact your users.

One of the ways is to enable Static code analysis. Some things that can be proactively done are,

  • Running a linter to make sure there are no code styling issues
  • Running all sorts of tests for SDK
  • Ensuring there are no memory leaks or other kinds of problems

Similarly, Testing can also be made fast and painless using Automation testing frameworks like Appium, Robot, Espresso, etc. We can parallelize the tests by specifying the number of simulators and run them on the devices we want.

Privacy — like eating and breathing — is one of life’s basic requirements.

The security and privacy of your users’ app and their end-users must be taken very seriously. This is doubly important if your SDK handles extra-sensitive data like Payment details or credit card information.

Always use SSL on all your network calls. Avoid storing any information locally and use encryption to protect the data in case you do.

Conclusion

SDKs are not necessary, but they sure make life a whole lot easier. And with the future of online content on Mobile apps, the opportunities and competition in the SDK market will only keep growing.

And, If your SDK offers an exceptional user experience to stand out from the competition, then you are there for Life!

References :

https://code.tutsplus.com/series/learn-android-sdk-development-from-scratch--mobile-14542

https://clevertap.com/blog/what-is-an-sdk/

--

--

Maya Kamath
WhatfixEngineeringBlog

Mobile developer, Blogger, Technology/Product Management Enthusiast