• Understand what a SDK is
• Understand what is in a SDK
• Understand the purposes and benefits of using a SDK
• Become familiar with examples of SDKs
• Learn about the differences between SDKs and APIs
Wouldn’t it be great if there were an easy way to grab all of the tools, documentation, examples, and other resources you need to develop a certain type of application?
Well, there is. It’s called a Software Development Kit, or SDK. By packing key resources for specific application development use cases into a single location, SDKs help developers work more efficiently.
Keep reading for an overview of how SDKs work, why they’re beneficial, and how they are similar to and different from other types of developer resources, such as APIs.
A SDK is a package that contains various types of resources that are necessary for building a certain type of application.
Note that we’re using the term “package” here loosely. SDKs are not packages that can be installed on a computer, and there is no specific format that developers need to use when creating SDKs. They are often packaged as .zip files that programmers can download to their Integrated Development Environment (IDE) like Android Studio, IntelliJ, or Eclipse, but SDKs could also be hosted in a Git repository.
The specific resources included in a SDK can vary from one SDK to another. But typically, SDKs include components such as:
It’s important to note that SDKs aren’t typically intended to include everything you would need to create a specific type of application. Developers usually need other tools that aren’t part of a SDK – such as an Integrated Development Environment (IDE), source code managers, and Continuous Integration (CI) servers. SDKs provide some helpful programming resources, but they are not complete development kits unto themselves.
In general, the purpose of SDKs is to make it easy for developers to acquire the tools, code, information, and other resources they need to build a certain type of application.
SDKs are often provided by software or platform vendors who want to make it easier for third-party developers to build software that interacts with their platform. However, businesses could also create SDKs for internal use. In that case, SDKs would serve to help developers inside the organization build applications for specific environments or use cases that serve the organization.
SDKs benefit developers in a few key ways:
SDKs can be used in a wide variety of contexts. As examples of SDKs in the real world, however, consider the following common SDK use cases:
SDKs are sometimes compared to Application Programming Interfaces, or APIs. Like SDKs, APIs are an important resource for helping developers to build software that interacts with a specific platform or serves a certain purpose. Also like SDKs, APIs can be used both externally (to facilitate integrations between a given platform and third-party apps) or internally (to help applications or services within an organization, or sometimes even with the same application, connect to each other).
However, SDKs and APIs are fundamentally different types of resources. An API is a way for applications or services to interact, whereas a SDK is a resource that helps developers create applications.
SDKs are also similar in some respects to software libraries. But here again, there is a clear difference.
A software library is a collection of code or other files that can be imported into, called by, or otherwise used by an application when the application runs. A SDK, in contrast, is a collection of various other types of resources. SDKs can (and often do) include software libraries, but they also frequently contain other types of resources (like documentation or software testing tools) that aren’t part of software libraries.
You don’t need to use a SDK. There is nothing stopping you from going out and building an application totally from scratch.
But in most cases, SDKs save time and effort while also making it easy to adhere to standards and design applications consistently. If a SDK is available for the platform or ecosystem in which you work, it’s very likely that you’ll benefit from using it.