Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Software development kit
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{short description|Set of software development tools}} A '''software development kit''' ('''SDK''') is a collection of software development 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 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 interface]]s<ref name="SandovalWhatIs16">{{cite web |author=Sandoval, K. |date=2 June 2016 |title=What is the Difference Between an API and an SDK? |url=https://nordicapis.com/what-is-the-difference-between-an-api-and-an-sdk/ |access-date=5 July 2018 |work=Nordic APIs Blog |publisher=Nordic APIs AB}}</ref> in the form of on-device [[Library (computing)|libraries]] of reusable functions used 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]].<ref name="BensoASoft00">{{cite book |author=Benso, A. |author2=Chiusano, S. |author3=Prinetto, P. |title=Proceedings International Test Conference 2000 (IEEE Cat. No.00CH37159) |chapter=A software development kit for dependable applications in embedded systems |pages=170β8 |year=2000 |doi=10.1109/TEST.2000.894204|isbn=0-7803-6546-1 |s2cid=206679243 }}</ref> Common [[Software development tool|tools]] include debugging facilities and other [[Utility program|utilities]], often presented in an [[integrated development environment]].<ref name="BurdAndroid15">{{cite book |url=https://books.google.com/books?id=fwElCgAAQBAJ&pg=PA31 |title=Android Application Development All-in-One For Dummies |author=Burd, B. |publisher=John Wiley & Sons |page=31 |year=2015 |isbn=9781118973806}}</ref> SDKs may include sample software and/or technical notes along with documentation, and tutorials to help clarify points made by the primary reference material.<ref name="AsifNext11">{{cite book |url=https://books.google.com/books?id=zgqQ4MX3uIUC&pg=PT384 |title=Next Generation Mobile Communications Ecosystem: Technology Management for Mobile Communications |author=Asif, S.Z. |publisher=John Wiley & Sons |page=PT384 |year=2011 |isbn=9781119995814}}</ref><ref name="WitheeSharePoint11">{{cite book |url=https://books.google.com/books?id=_OiEGA2EZz8C&pg=PT346 |title=SharePoint 2010 Development For Dummies |author=Withee, K. |publisher=John Wiley & Sons |page=PT346 |year=2011 |isbn=9781118038628}}</ref> SDKs often include [[License compatibility|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.<ref name="Vaughan-NicholsNoGoogle13">{{cite web |url=https://www.zdnet.com/article/no-google-is-not-making-the-android-sdk-proprietary-whats-the-fuss-about/ |title=No, Google is not making the Android SDK proprietary. What's the fuss about? |author=Vaughan-Nichols, S.J. |work=ZDNet |publisher=CBS Interactive |date=4 January 2013 |access-date=5 July 2018}}</ref><ref name="OrlandSonys17">{{cite web |url=https://arstechnica.com/gaming/2017/07/sony-using-copyright-requests-to-remove-leaked-ps4-sdk-from-the-web/ |title=Sony's legal quest to remove its leaked developer's kit from the Web |author=Orland, K. |work=ArsTechnica |publisher=CondΓ© Nast |date=20 July 2017 |access-date=5 July 2018}}</ref> However, SDKs built under the [[GNU Lesser General Public License]] are typically usable for proprietary development.<ref name="DavidsonAPrimer04">{{cite web |url=http://www.wipo.int/sme/en/documents/opensource_software_primer_fulltext.html |title=A Primer on Open Source Software for Business People and Lawyers |author=Davidson, S.J. |publisher=Leonard, Street and Deinard |date=2004 |access-date=5 July 2018}}</ref><ref>{{Cite web |title=OPEN SOURCE AND COMMERCIAL SOFTWARE : AN IN-DEPTH ANALYSIS OF THE ISSUES |url=https://www.wipo.int/edocs/mdocs/copyright/en/wipo_ip_cm_07/wipo_ip_cm_07_www_82575.pdf |website=wipo.int}}</ref> In cases where the underlying technology is new, SDKs may include hardware. For example, [[AirTag (company)|AirTag]]'s 2012 [[near-field communication]] SDK included both the paying and the reading halves of the necessary hardware stack.<ref>{{Cite web|url=https://venturebeat.com/2012/10/16/airtag-releasing-nfc-mobile-payments-developer-kit-wishes-apple-would-help-simply-the-ecosystem/|title = Airtag releasing NFC mobile payments developer kit, wishes Apple would help simplify the ecosystem|date = 16 October 2012}}</ref> The average [[Android (operating system)|Android]] [[mobile app]] implements 15.6 separate SDKs, with gaming apps implementing on average 17.5 different SDKs.<ref name="SafeDK">{{cite web|last1=Shoavi|first1=Orly|title=The All-Star Winners of Mobile App Tools (SDKs)|url=http://blog.safedk.com/sdk-economy/star-winners-mobile-app-tools-sdks/|website=SafeDK}}</ref><ref name="Fork.ai">{{cite web|last1=Lishi|first1=He|title=All iOS and Android 3rd Platform SDKs|url=https://fork.ai/technologies|website=Fork.ai}}</ref> The most popular SDK categories for Android mobile apps are analytics and advertising.<ref name="Fork.ai" /> 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 (Apple)|App Store]].<ref name="TechCrunch">{{cite web|last1=Perez|first1=Sarah|title=Hundreds Of Apps Banned From App Store For Accessing Users' Personal Information|url=https://techcrunch.com/2015/10/19/hundreds-of-apps-banned-from-app-store-for-accessing-users-personal-information/|website=TechCrunch|date=19 October 2015 }}</ref> New technologies allow [[Programmer|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]]<ref name="MicrosoftWDK">{{cite web |url=https://docs.microsoft.com/en-us/windows-hardware/drivers/index |title=Windows Driver Kit documentation |work=Hardware Dev Center |publisher=Microsoft |access-date=5 July 2018}}</ref> and [[Citrix]]<ref name="CitrixDDK17">{{cite web |url=https://support.citrix.com/article/CTX224947 |title=Driver Development Kit - For XenServer 6.2.0 Service Pack 1 with Hotfix XS62ESP1062 |publisher=Citrix Systems, Inc |date=27 June 2017 |access-date=5 July 2018}}</ref> provide a driver development kit for developing [[device driver]]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]] *[[Visage SDK]] *[[Vuforia Augmented Reality SDK]] *[[Windows App SDK]] *[[Xbox Development Kit]] ==See also== * [[Game development kit]] * [[Widget toolkit]] ==References== {{Reflist}} {{DEFAULTSORT:Software Development Kit}} [[Category:Computer libraries]] [[Category:Software development]] [[Category:Software development kits| ]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:Cite book
(
edit
)
Template:Cite web
(
edit
)
Template:Reflist
(
edit
)
Template:Short description
(
edit
)