An SDK, or Software Development Kit, is a collection of tools, libraries and frameworks which are designed to make application development easier. SDKs enable software developers to build software applications faster and in a more standardized way. SDKs can function as "wrappers" for functionality such as API endpoints (more on this later.)
If you're a developer reading this, the chances are that you've probably already used an SDK, even if you didn't realise it. For example, .Net developers use the .Net SDK to develop C# and .Net applications. Moreover, popular development platforms typically come with their own SDKs. Mobile developers use the iOS SDK to develop iOS applications and Android programmers use the Android SDK. For a programmer, an SDK is as vital as a box of tools is to a mechanic.
SDKs make APIs easy
Sinch uses SDKs as a complement to APIs. APIs make development easier but they can be tricky to use in their raw form. For example, let's say you are creating a Python app that sends a message using the SMS API. You'd need to write a custom 'send' function containing the endpoint URL, headers and a payload. Moreover, having made all these elements, you would then need to bring them together in a post request. Getting this right will require extensive consultation of the API reference, and you're going to have to do it all again if you want to do something else, like create a messaging group.
The whole process is a different story when you use an SDK. The Python SDK comes with out-of-the-box methods. These methods encapsulate the raw endpoints with "wrapper" methods that call the Sinch API to perform specific tasks. Once you've imported the SDK library, you can do anything from sending a message to creating a group, simply by invoking the appropriate method. Because an SDK is language specific, developers can leverage it using tools that feel comfortable for them. A Python developer can use Sinch's Python SDK the same way that they would use, say, the Python requests library.
Developing through DRY
Software engineers often use a principle called Don't Repeat Yourself (DRY). What it means is that when faced with simple operations, such as reversing a string or sending a message, programmers should avoid writing code from scratch but should instead package them into reusable methods.
A common way to achieve this sort of reusability is an open source library. A library such as Python requests is available through a package manager such as pip and provides methods such as `get` and `post` which developers can readily call when they need to. SDKs bring this convenience to Sinch's APIs. They are available through package managers such as pip and nuget. Their built in methods abstract away from the rigmarole of using raw endpoints. In short, they allow developers to harness the power of DRY in the context of an API. By leveraging an SDK, developers using Sinch to create mobile messaging apps can write code that is more readable, more reliable and more maintainable.
Sinch has SDKs in the following languages:
Python
... View more