| • Science | • People | • Locations | • Timeline |
It may be something as simple as an application programming interface in the form of some files to interface to a particular programming language, or include sophisticated hardware to communicate with a certain embedded system. Common tools include debugging aids and other utilities. SDKs also frequently include sample code and supporting technical notes or other supporting documentation to help clarify points from the primary reference material.
A software engineer typically receives the SDK from the target system developer. Often times, the SDK can be downloaded directly via the Internet. Many SDKs are provided for free to encourage developers to use the system or language. Sometimes this is used as a marketing tool. For example, Foo Products might provide the Widget SDK for free to encourage people to use it. In turn, more people will be encouraged to buy more of their widgets since they can program them for free.
SDKs may have attached licenses that make them unsuitable for Free software development.
An SDK for an operating system add-on (for instance, QuickTimeQuickTime is a multimedia technology developed by Apple Computer, capable of handling various formats of digital video, sound, text, animation, music, and immersive virtual reality panoramic images. There are three main components to the QuickTime technol for MacOS) may include the add-on software itself, to be used for development purposes, if not necessarily for redistribution. An interesting situation arises here between platforms where it is possible to develop applications that can at least start up on a system configuration without the add-on installed, and use a GestaltGestalt is the name of a system call introduced in Mac OS 6. 4 in 1989 to allow applications to dynamically query what capabilities were present in the running system configuration. By this time, the pace of Mac development had produced such a proliferati-style run-time environment query to determine if the add-on is present, and ones where the application will simply fail to start. In other words, is it possible to build a single binary that will run on configurations with and without the add-on present, albeit operating with reduced functionality in the latter situation.
See also: Application programming interface
Computer terminology Software engineering