Generally speaking, SDK, short for software development kit, is a programming package which enables a programmer to develop applications for a certain software package, software framework, hardware platform, computer system, video game console, operating system, or similar development platform. Typically an SDK includes one or more APIs, programming tools, and documentation.
SDK can be very simple. Sometimes, it can be as easy as to implement one or more application programming interfaces to a particular programming language. Under some other circumstances, SDK may be a little more complicated which includes the implementation of sophisticated hardware which is capable of communicating with a particular embedded system. Generally speaking, the common utilized tools are debugging facilities and other utilities. Moreover, sample code and supporting technical notes or other supporting documentation are usually included for they can be used to help clarify points caused by the primary reference material.
As a rule, the SDK can be downloaded directly via the internet. Software engineers often get the SDK from the target system developer. The majority of SDKs are usually provided for users free of charge, which may encourage the developer to use the system or language in return. Some people just use this as a marketing tool to promote their products from time to time.
The add-on software itself, which can be used for development purpose, may be included in an SDK for an operating system add-on, and QuickTime for Mac OS is an example.
Under some circumstances, the software may be replaced by a more specific term by the provider of SDKs for specific systems or subsystems. For instance, both Microsoft and Apple offer driver development kits instead of software development kits for developing device drivers, which will provide the user with more help and advantage and convenience.