What is an SDK?

Page one of the SDK primer for those with little to no SDK experience.

When I first started my journey with the iDonate SDK, I suppose you could say I had a few questions. What could I do with these tools? What could I not do? And most importantly, what exactly is an SDK? A cursory Google search for that exact phrase showed me that I was not alone in that line of questioning.

In this article, I hope to help new users understand the core concepts behind an SDK.

What is an API?

The first concept that builds understanding of an SDK is the API, or Application Programming Interface.

The best real-world analogy that I found for describing an API is this: The gas pedal in a car. When you press it, you know what will happen, even though you have no working knowledge of modern internal combustion engines. You know that when you press the pedal, velocity increases.

An API is much like that. A simple input that connects to a more complex mechanism that produces a uniform, predictable result.

What is an SDK?

An SDK is a collection of code based around API calls.

A more fun way to think of an SDK: During the mid-70's, Lego released a product known as Lego Technics. It came with a little electric motor that you could use to create a car, a robotic arm, or anything else you could think of that made use of that little motor and the Lego blocks in the box.

That motor can be thought of as the API. The blocks can be thought of as code blocks. The box containing the motor, blocks, and instructions can be thought of as the SDK.

What Can the iDonate SDK Do?

The idea behind the iDonate SDK is to empower organizations with the ability to create custom giving experiences for their donors, using the iDonate back-end functionality that they already know and love.

The iDonate Giving Form is a powerful piece of software that has the ability to enable donations across all platforms, utilizing all major (and some not-so-major) payment methods.

However, what if you want to add something to or remove something from the form which isn't addressable using the out-of-the-box giving form customization options? Maybe you’d like to change the language on the form to court donations in non-English-speaking areas? Whatever is outside of the scope of iDonate’s out-of-the-box customization options, that’s where the iDonate SDK comes in.