All Topics  
Software development kit

 

   Email Print
   Bookmark   Link






 

Software development kit



 
 
A software development kit (SDK or "devkit") is typically a set of development tools that allows a software engineer
Software engineer

A software engineer is a person who applies the principles of software engineering to the design, development, testing, and evaluation of the software and systems that make computers or anything with software such as chips work....
 to create applications
Application software

Application software is any tool that functions and is operated by means of a computer, with the purpose of supporting or improving the software user 's work....
 for a certain software package, software framework
Software framework

A software framework, in computer programming, is an abstraction in which common code providing generic functionality can be selectively overridden or specialized by user code providing specific functionality....
, hardware
Hardware

Hardware is a general term that refers to the physical cultural artifacts of a technology. It may also mean the physical components of a computer system, in the form of computer hardware....
 platform, computer system, video game console
Video game console

A video game console is an game development that produces a video signal which can be used with a display device to display a video game. The term "video game console" is used to distinguish a machine designed for consumers to buy and use solely for playing video games from a personal computer, which has many other functions, or arcade machi...
, operating system
Operating system

An operating system is an interface between hardware and applications; it is responsible for the management and coordination of activities and the sharing of the limited resources of the computer....
, or similar platform.

It may be something as simple as an application programming interface
Application programming interface

An application programming interface is a set of subroutine, data structures, class and/or Protocol provided by library and/or operating system Service s in order to support the building of applications....
 in the form of some files to interface to a particular programming language
Programming language

A programming language is a machine-readable artificial language designed to express computations that can be performed by a machine, particularly a computer....
 or include sophisticated hardware to communicate with a certain embedded system
Embedded system

An embedded system is a special-purpose computer system designed to perform one or a few dedicated functions, often with real-time computing constraints....
.






Discussion
Ask a question about 'Software development kit'
Start a new discussion about 'Software development kit'
Answer questions from other users
Full Discussion Forum



Encyclopedia


A software development kit (SDK or "devkit") is typically a set of development tools that allows a software engineer
Software engineer

A software engineer is a person who applies the principles of software engineering to the design, development, testing, and evaluation of the software and systems that make computers or anything with software such as chips work....
 to create applications
Application software

Application software is any tool that functions and is operated by means of a computer, with the purpose of supporting or improving the software user 's work....
 for a certain software package, software framework
Software framework

A software framework, in computer programming, is an abstraction in which common code providing generic functionality can be selectively overridden or specialized by user code providing specific functionality....
, hardware
Hardware

Hardware is a general term that refers to the physical cultural artifacts of a technology. It may also mean the physical components of a computer system, in the form of computer hardware....
 platform, computer system, video game console
Video game console

A video game console is an game development that produces a video signal which can be used with a display device to display a video game. The term "video game console" is used to distinguish a machine designed for consumers to buy and use solely for playing video games from a personal computer, which has many other functions, or arcade machi...
, operating system
Operating system

An operating system is an interface between hardware and applications; it is responsible for the management and coordination of activities and the sharing of the limited resources of the computer....
, or similar platform.

It may be something as simple as an application programming interface
Application programming interface

An application programming interface is a set of subroutine, data structures, class and/or Protocol provided by library and/or operating system Service s in order to support the building of applications....
 in the form of some files to interface to a particular programming language
Programming language

A programming language is a machine-readable artificial language designed to express computations that can be performed by a machine, particularly a computer....
 or include sophisticated hardware to communicate with a certain embedded system
Embedded system

An embedded system is a special-purpose computer system designed to perform one or a few dedicated functions, often with real-time computing constraints....
. Common tools include debugging aids and other utilities often presented in an IDE
Integrated development environment

An integrated development environment also known as integrated design environment or integrated debugging environment is a software application that provides comprehensive facilities to computer programmers for software development....
. 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 the SDK can be downloaded directly via the Internet
Internet

The Internet is a global network of interconnected computers, enabling users to share information along multiple channels. Typically, a computer that connects to the Internet can access information from a vast array of available server and other computers by moving information from them to the computer's local memory....
. 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 license
License

The verb license or grant license means to give permission. The noun license refers to that permission as well as to the document memorializing that permission....
s that make them unsuitable for building software intended to be developed under an incompatible license. For example, a proprietary SDK will likely be incompatible with free software
Free software

Free Software or software libre is software that can be used, studied, and modified without restriction, and which can be copied and redistributed in modified or unmodified form either without restriction, or with minimal restrictions only to ensure that further recipients can also do these things and to prevent consumer-facing hardware...
 development, while a GPL
GNU General Public License

The GNU General Public License is a widely used free software license, originally written by Richard Stallman for the GNU project. The GPL is the most popular and well-known example of the type of strong copyleft license that requires derived works to be available under the same copyleft....
 licensed SDK will likely be incompatible with proprietary software development. LGPL
GNU Lesser General Public License

The GNU Lesser General Public License or LGPL is a free software license published by the Free Software Foundation . It was designed as a compromise between the strong-copyleft GNU General Public License and permissive licenses such as the BSD licenses and the MIT License....
 SDKs are typically safe for proprietary development.

An SDK for an operating system add-on (for instance, QuickTime
QuickTime

QuickTime is a multimedia framework developed by Apple Inc., capable of handling various formats of digital video, media clips, sound, text, animation, music, and QuickTime VRs....
 for Mac OS
Mac OS

Mac OS is the trademarked name for a series of graphical user interface-based operating systems developed by Apple Inc. for their Macintosh line of computer systems....
) 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 Gestalt
Gestalt (Mac OS)

Gestalt was the name of a system call introduced into the Apple Macintosh operating system System Software 6 in 1989 to allow applications to dynamically query what capabilities were present in the running system configuration....
-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, it is 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.

Providers of SDKs for specific systems or subsystems may sometimes substitute a more specific term instead of software. For instance, both Microsoft
Microsoft

Microsoft Corporation is a multinational corporation computer technology corporation that develops, manufactures, licenses, and supports a wide range of computer software products for computing devices....
 and Apple provide driver development kits (DDK) for developing device driver
Device driver

In computing, a device driver or software driver is a computer program allowing higher-level computer programs to interact with a hardware device....
s.

See also

  • Application programming interface
    Application programming interface

    An application programming interface is a set of subroutine, data structures, class and/or Protocol provided by library and/or operating system Service s in order to support the building of applications....
  • Graphics library
    Graphics library

    A graphics library is a Computer program designed to aid in rendering computer graphics to a monitor. This typically involves providing optimized versions of functions that handle common Rendering tasks....
  • OCR SDK
    OCR SDK

    An OCR SDK is a Software Development Kit for developers adding Optical_character_recognition technology into software applications, OCR SDK provide methods for incorporating Optical Character Recognition technology into forms processing applications, document imaging management system, e-discovery system, or records management solution to ex...
  • Widget toolkit
    Widget toolkit

    A widget toolkit, widget library, or GUI toolkit is a set of GUI widget for use in designing applications with graphical user interfaces ....
     (or GUI toolkit)