Stands for "Software Development Kit." An SDK is a collection of software used for developing applications for a specific device or operating system. Examples of SDKs include the Windows 7 SDK, the Mac OS X SDK, and the iPhone SDK.

SDKs typically include an integrated development environment (IDE), which serves as the central programming interface. The IDE may include a programming window for writing source code, a debugger for fixing program errors, and a visual editor, which allows developers to create and edit the program's graphical user interface (GUI). IDEs also include a compiler, which is used to create applications from source code files.

Most SDKs contain sample code, which provides developers with example programs and libraries. These samples help developers learn how to build basic programs with the SDK, which enables them to eventually create more complex applications. SDKs also offer technical documentation, which may include tutorials and FAQs. Some SDKs may also include sample graphics, such as buttons and icons, which can be incorporated into applications.

Since most companies want to encourage developers to create applications for their platform, SDKs are usually provided free of charge. Developers can simply download an SDK from a company's website and begin programming immediately. However, since each software development kit is different, it can take awhile for developers to learn how to use a new SDK. Therefore, most modern SDKs include extensive documentation and have an intuitive programming interface, which helps incentivize program development.

Updated April 15, 2010 by Per C.

quizTest Your Knowledge

Creating a searchable list of records from a group data is called what?

Correct! Incorrect!     View the Index definition.
More Quizzes →

The Tech Terms Computer Dictionary

The definition of SDK on this page is an original definition written by the team. If you would like to reference this page or cite this definition, please use the green citation links above.

The goal of is to explain computer terminology in a way that is easy to understand. We strive for simplicity and accuracy with every definition we publish. If you have feedback about this definition or would like to suggest a new technical term, please contact us.

Sign up for the free TechTerms Newsletter

How often would you like to receive an email?

You can unsubscribe or change your frequency setting at any time using the links available in each email.

Questions? Please contact us.