Skip to content
Surf Wiki
Save to docs
technology/software-engineering

From Surf Wiki (app.surf) — the open knowledge base

Software development kit

Set of software development tools


Set of software development tools

A software development kit (SDK) is a collection of software development tools in one installable package to develop a software. 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 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 app on the Java platform requires a Java Development Kit. For iOS applications (apps) the iOS SDK is required. For Universal Windows Platform the .NET Framework SDK 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, Smaato, InMobi, and Facebook.

Details

An SDK can take the form of application programming interfaces in the form of on-device libraries of reusable functions used to interface to a particular programming language or use a SDK-based languages like Kotlin is used in Android development, or it may be as complex as hardware-specific tools that can communicate with a particular embedded system. Common tools include debugging facilities and other utilities, often presented in an integrated development environment. 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 development, while a GNU General Public License'd SDK could be incompatible with proprietary software development, for legal reasons. However, SDKs built under the GNU Lesser General Public License are typically usable for proprietary development. In cases where the underlying technology is new, SDKs may include hardware. For example, AirTag's 2012 near-field communication SDK included both the paying and the reading halves of the necessary hardware stack.

The average Android mobile app 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, 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 and Citrix provide a driver development kit for developing device drivers.

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
  • Visage SDK
  • Vuforia Augmented Reality SDK
  • Windows App SDK
  • Xbox Development Kit

References

References

  1. Sandoval, K.. (2 June 2016). "What is the Difference Between an API and an SDK?". Nordic APIs AB.
  2. Benso, A.. (2000). "Proceedings International Test Conference 2000 (IEEE Cat. No.00CH37159)".
  3. Burd, B.. (2015). "Android Application Development All-in-One For Dummies". John Wiley & Sons.
  4. Asif, S.Z.. (2011). "Next Generation Mobile Communications Ecosystem: Technology Management for Mobile Communications". John Wiley & Sons.
  5. Withee, K.. (2011). "SharePoint 2010 Development For Dummies". John Wiley & Sons.
  6. Vaughan-Nichols, S.J.. (4 January 2013). "No, Google is not making the Android SDK proprietary. What's the fuss about?". CBS Interactive.
  7. Orland, K.. (20 July 2017). "Sony's legal quest to remove its leaked developer's kit from the Web". Condé Nast.
  8. Davidson, S.J.. (2004). "A Primer on Open Source Software for Business People and Lawyers". Leonard, Street and Deinard.
  9. "OPEN SOURCE AND COMMERCIAL SOFTWARE : AN IN-DEPTH ANALYSIS OF THE ISSUES".
  10. (16 October 2012). "Airtag releasing NFC mobile payments developer kit, wishes Apple would help simplify the ecosystem". VentureBeat.
  11. "The All-Star Winners of Mobile App Tools (SDKs)".
  12. "All iOS and Android 3rd Platform SDKs".
  13. (19 October 2015). "Hundreds Of Apps Banned From App Store For Accessing Users' Personal Information".
  14. "Windows Driver Kit documentation". Microsoft.
  15. (27 June 2017). "Driver Development Kit - For XenServer 6.2.0 Service Pack 1 with Hotfix XS62ESP1062". Citrix Systems, Inc.
Info: Wikipedia Source

This article was imported from Wikipedia and is available under the Creative Commons Attribution-ShareAlike 4.0 License. Content has been adapted to SurfDoc format. Original contributors can be found on the article history page.

Want to explore this topic further?

Ask Mako anything about Software development kit — get instant answers, deeper analysis, and related topics.

Research with Mako

Free with your Surf account

Content sourced from Wikipedia, available under CC BY-SA 4.0.

This content may have been generated or modified by AI. CloudSurf Software LLC is not responsible for the accuracy, completeness, or reliability of AI-generated content. Always verify important information from primary sources.

Report