Software Development Kit (SDK)

Jump to navigation Jump to search

A Software Development Kit (SDK) is a software development tool set that allows the creation of applications for a certain software environments.



    • QUOTE: SDKs have a wider scope than libraries do. In fact, all SDKs will contain one or more libraries. An SDK is a collection of libraries, APIs, documentation, utilities, and/or sample code that help you implement certain features without having to do the work from scratch. SDKs vary in scope and function from implementing a feature or set of features, like an analytics SDK for instance, to building whole applications for a specific platform, as is the case with the Android SDK for example.

      Going back to our house analogy, if a library is a stove, then an SDK is a whole kitchen. While you can go and buy all your kitchen appliances, cabinets, and counters separately, it will be a lot easier to buy a full kitchen set, complete with built-in appliances and instructions on how to assemble it. SDKs can be limited in scope such as in the case with one room, but they can also have a bigger scope of a collection of rooms or even the whole house.



  • (Wikipedia, 2017) ⇒ Retrieved:2017-6-22.
    • SDKs may have attached licenses that make them unsuitable for building software intended to be developed under an incompatible license. For example, a proprietary SDK will probably be incompatible with free software development, while a GPL-licensed SDK could be incompatible with proprietary software development. LGPL SDKs are typically safe for proprietary development.

      The average Android mobile app implements 15.6 SDKs, with gaming apps implementing an average of 17.5 SDKs. The most popular SDK categories for Android mobile apps are analytics and advertising.

      SDKs may be unsafe (as SDKs are implemented within apps, but are running an independent code). Malicious SDKs (with honest intentions or not) may violate users’ data privacy, damage the apps’ performance or even get apps banned from Google Play or iTunes. New technologies allow app developers to control and monitor SDKs in real time.

      A software engineer typically receives the SDK from the target system developer. Often the SDK can be downloaded directly via the Internet or via SDKs marketplaces. Many SDKs are provided for free to encourage developers to use the system or language. Sometimes this is used as a marketing tool. Freely offered SDKs may still be able to monetize, based on user data taken from the apps, which may serve the interests of big players in the ecosystem, for example the operating system.

      A SDK for an operating system add-on (for instance, QuickTime for classic Mac OS) may include the add-on software itself to be used for development purposes, albeit not necessarily for redistribution together with the developed product. 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-style run-time environment query to determine whether the add-on is present, and ones where the application will simply fail to start, 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 and Apple provide driver development kits (DDK) for developing device drivers.