HOME

TheInfoList



OR:

A software development kit (SDK) is a collection of
software development Software development is the process of conceiving, specifying, designing, programming, documenting, testing, and bug fixing involved in creating and maintaining applications, frameworks, or other software components. Software development inv ...
tools in one installable package. They facilitate the creation of applications by having a compiler, debugger and sometimes a software framework. They are normally specific to a hardware platform and
operating system An operating system (OS) is system software that manages computer hardware, software resources, and provides common daemon (computing), services for computer programs. Time-sharing operating systems scheduler (computing), schedule tasks for ef ...
combination. To create applications with advanced functionalities such as advertisements, push notifications, etc; most application software developers use specific software development kits. Some SDKs are required for developing a platform-specific app. For example, the development of an
Android Android may refer to: Science and technology * Android (robot), a humanoid robot or synthetic organism designed to imitate a human * Android (operating system), Google's mobile operating system ** Bugdroid, a Google mascot sometimes referred to ...
app on the
Java Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's mo ...
platform requires a Java Development Kit. For iOS applications (apps) the iOS SDK is required. For Universal Windows Platform the
.NET Framework SDK Microsoft Windows SDK, and its predecessors Platform SDK, and .NET Framework SDK, are software development kits (SDKs) from Microsoft that contain documentation, header files, libraries, samples and tools required to develop applications for Mic ...
might be used. There are also SDKs that add additional features and can be installed in apps to provide analytics, data about application activity, and monetization options. Some prominent creators of these types of SDKs include
Google Google LLC () is an American Multinational corporation, multinational technology company focusing on Search Engine, search engine technology, online advertising, cloud computing, software, computer software, quantum computing, e-commerce, ar ...
, Smaato,
InMobi InMobi is an Indian multinational mobile advertising technology company, based in Bengaluru. Its mobile-first platform allows brands, developers and publishers to engage consumers through contextual mobile advertising. The company was found ...
, and
Facebook Facebook is an online social media and social networking service owned by American company Meta Platforms. Founded in 2004 by Mark Zuckerberg with fellow Harvard College students and roommates Eduardo Saverin, Andrew McCollum, Dustin ...
.


Details

An SDK can take the form of application programming interfaces (APIs) in the form of on-device
libraries A library is a collection of materials, books or media that are accessible for use and not just for display purposes. A library provides physical (hard copies) or digital access (soft copies) materials, and may be a physical location or a vir ...
of reusable functions used to interface to a particular
programming language A programming language is a system of notation for writing computer programs. Most programming languages are text-based formal languages, but they may also be graphical. They are a kind of computer language. The description of a programming l ...
, or it may be as complex as hardware-specific tools that can communicate with a particular
embedded system An embedded system is a computer system—a combination of a computer processor, computer memory, and input/output peripheral devices—that has a dedicated function within a larger mechanical or electronic system. It is ''embedded'' ...
. Common tools include debugging facilities and other
utilities A public utility company (usually just utility) is an organization that maintains the infrastructure for a public service (often also providing a service using that infrastructure). Public utilities are subject to forms of public control and ...
, often presented in an
integrated development environment An integrated development environment (IDE) is a software application that provides comprehensive facilities to computer programmers for software development. An IDE normally consists of at least a source code editor, build automation tools a ...
(IDE). SDKs may include sample software and/or technical notes along with documentation, and tutorials to help clarify points made by the primary reference material. SDKs often include licenses that make them unsuitable for building software intended to be developed under an incompatible license. For example, a proprietary SDK is generally incompatible with
free software Free software or libre software is computer software distributed under terms that allow users to run the software for any purpose as well as to study, change, and distribute it and any adapted versions. Free software is a matter of liberty, ...
development, while a GPL-licensed SDK could be incompatible with proprietary software development, for legal reasons. However, SDKs built under the
GNU Lesser General Public License The GNU Lesser General Public License (LGPL) is a free-software license published by the Free Software Foundation (FSF). The license allows developers and companies to use and integrate a software component released under the LGPL into their own ...
(LGPL) are typically usable for proprietary development. In cases where the underlying technology is new, SDKs may include hardware. For example,
AirTag AirTag is a tracking device developed by Apple. AirTag is designed to act as a key finder, which helps people find personal objects (e.g. keys, bags, apparel, small electronic devices, vehicles). To locate lost items, AirTags use Apple's crowds ...
's 2021 NFC SDK included both the paying and the reading halves of the necessary hardware stack. The average
Android Android may refer to: Science and technology * Android (robot), a humanoid robot or synthetic organism designed to imitate a human * Android (operating system), Google's mobile operating system ** Bugdroid, a Google mascot sometimes referred to ...
mobile app A mobile application or app is a computer program or software application designed to run on a mobile device such as a phone, tablet, or watch. Mobile applications often stand in contrast to desktop applications which are designed to run on ...
implements 15.6 separate SDKs, with gaming apps implementing on average 17.5 different SDKs. The most popular SDK categories for Android mobile apps are analytics and advertising. SDKs can be unsafe (because they are implemented within apps, yet run separate code). Malicious SDKs (with honest intentions or not) can violate users'
data privacy Information privacy is the relationship between the collection and dissemination of data, technology, the public expectation of privacy, contextual information norms, and the legal and political issues surrounding them. It is also known as data ...
, damage app performance, or even cause apps to be banned from Google Play or the App Store. New technologies allow app developers to control and monitor client SDKs in real time. Providers of SDKs for specific systems or subsystems sometimes substitute a more specific term instead of ''software''. For instance, both
Microsoft Microsoft Corporation is an American multinational corporation, multinational technology company, technology corporation producing Software, computer software, consumer electronics, personal computers, and related services headquartered at th ...
and Citrix provide a driver development kit (DDK) for developing
device driver In computing, a device driver is a computer program that operates or controls a particular type of device that is attached to a computer or automaton. A driver provides a software interface to hardware devices, enabling operating systems and o ...
s.


Examples

Examples of software development kits for various platforms include: * AmigaOS NDK * Android NDK * iOS SDK * Java Development Kit * Java Web Services Development Pack * Microsoft Windows SDK *
VaxTele SIP Server SDK VaxTele SIP Server SDK (Software Development Kit) is a complete development toolkit, which allows software vendors and Internet telephony service providers (ITSP) to develop SIP Server and (SIP) Session Initiation Protocol based VoIP systems for Mic ...
* Visage SDK * Vuforia Augmented Reality SDK *
Windows App SDK Windows App SDK (formerly known as Project Reunion) is a software development kit (SDK) from Microsoft that targets the development of Windows API, native desktop applications on Windows 11 and Windows 10 back to version 1809. Windows App SDK doe ...
* Xbox Development Kit


See also

* Application programming interface * Game development kit *
Widget toolkit A widget toolkit, widget library, GUI toolkit, or UX library is a library or a collection of libraries containing a set of graphical control elements (called ''widgets'') used to construct the graphical user interface (GUI) of programs. Most wid ...
(or GUI toolkit)


References

{{DEFAULTSORT:Software Development Kit Computer libraries Software development