Software development kit
A software development kit (SDK or devkit) is typically a set of software development tools that allows the creation of applications for a certain software package, software framework, hardware platform, computer system, video game console, operating system, or similar development platform. To enrich applications with advanced functionalities, advertisements, push notifications, and more, most app developers implement specific software development kits. Some SDKs are critical for developing a platform-specific app. For example, the development of an Android app on Java platform requires a Java Development Kit, for iOS apps the iOS SDK, and for Universal Windows Platform the .NET Framework SDK. There are also SDKs that are installed in apps to provide analytics and data about application activity; prominent creators of these types of SDKs include Google, InMobi, and Facebook.
An SDK can take the form of a simple implementation of one or more application programming interfaces (APIs) in the form of on-device libraries to interface to a particular programming language, 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 (IDE). SDKs may also include sample code and technical notes or other supporting documentation such as 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 GPL-licensed SDK could be incompatible with proprietary software development, all particularly for legal reasons. However, SDKs built under the GNU Lesser General Public License (LGPL) are typically safe for proprietary development.
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, but 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 iTunes. 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 (DDK) for developing device drivers.
- Android NDK
- Application programming interface
- Game development kit
- Graphics library
- Widget toolkit (or GUI toolkit)
- Shamsee, N.; Klebenov, D.; Fayed, H.; et al. (2015). CCNA Data Center DCICT 640-916: Official Cert Guide. Cisco. p. 934. ISBN 9780133860450.
- "SDK (software development kit)". Gartner, Inc. Retrieved 5 July 2018.
- Sandoval, K. (2 June 2016). "What is the Difference Between an API and an SDK?". Nordic APIs Blog. Nordic APIs AB. Retrieved 5 July 2018.
- Tarkoma, S.; Siekkinen, M.; Lagerspetz, E.; Xiao, Y. (2014). Smartphone Energy Consumption: Modeling and Optimization. Cambridge University Press. pp. 249–50. ISBN 9781139992732.
- Buecker, A.; Affouard, A.; Armstrong, A.; et al. (2014). IBM System z in a Mobile World. IBM Redbooks. p. 207. ISBN 9780738440095.
- Dimitriu, A. (11 April 2017). "How to use Analytics for mobile apps: Google Analytics SDK vs Firebase". Littledata Blog. Littledata Consulting Ltd. Retrieved 5 July 2018.
- Kirk, J. (31 July 2017). "How to Measure Mobile Video Viewability (Without Slowing Performance)". inMobi Blog. inMobi. Retrieved 3 July 2018.
- Cohen, D. (29 September 2016). "More New Features for Facebook's Analytics for Apps". Adweek. Adweek, LLC. Retrieved 5 July 2018.
- Benso, A.; Chiusano, S.; Prinetto, P. (2000). "A software development kit for dependable applications in embedded systems". Proceedings International Test Conference 2000: 170–8. doi:10.1109/TEST.2000.894204.
- Burd, B. (2015). Android Application Development All-in-One For Dummies. John Wiley & Sons. p. 31. ISBN 9781118973806.
- Asif, S.Z. (2011). Next Generation Mobile Communications Ecosystem: Technology Management for Mobile Communications. John Wiley & Sons. p. PT384. ISBN 9781119995814.
- Vaughan-Nichols, S.J. (4 January 2013). "No, Google is not making the Android SDK proprietary. What's the fuss about?". ZDNet. CBS Interactive. Retrieved 5 July 2018.
- Orland, K. (20 July 2017). "Sony's legal quest to remove its leaked developer's kit from the Web". ArsTechnica. Condé Nast. Retrieved 5 July 2018.
- Davidson, S.J. (2004). "A Primer on Open Source Software for Business People and Lawyers". Leonard, Street and Deinard. Retrieved 5 July 2018.
- Shoavi, Orly. "The All-Star Winners of Mobile App Tools (SDKs)". SafeDK.
- Perez, Sarah. "Hundreds Of Apps Banned From App Store For Accessing Users' Personal Information". TechCrunch.
- "Windows Driver Kit documentation". Hardware Dev Center. Microsoft. Retrieved 5 July 2018.
- "Driver Development Kit - For XenServer 6.2.0 Service Pack 1 with Hotfix XS62ESP1062". Citrix Systems, Inc. 27 June 2017. Retrieved 5 July 2018.