Tool-Sammlung für die Entwicklung von Software Was ist ein Software Development Kit (SDK)?

Anbieter zum Thema

Ein Software Development Kit stellt eine Sammlung von Werkzeugen, Bibliotheken, Informationen und anderen Ressourcen zur Verfügung, mit der sich Software in verschiedenen Programmiersprachen und für unterschiedliche Betriebssysteme, Hardwareplattformen oder Cloud-Computing-Umgebungen entwickeln lässt.

Tool-Sammlung für die Entwicklung von Software: Ein Software Development Kit soll Programmierern nicht nur die Arbeit erleichtern, sondern auch für eine schnellere Entwicklung neuer Anwendungen sorgen.
Tool-Sammlung für die Entwicklung von Software: Ein Software Development Kit soll Programmierern nicht nur die Arbeit erleichtern, sondern auch für eine schnellere Entwicklung neuer Anwendungen sorgen.
(Bild: gemeinfrei © Gerd Altmann / Pixabay)

Das Akronym für Software Development Kit lautet SDK. Ins Deutsche übersetzt bedeutet der Begriff Software-Entwicklungsbaukasten. Bei einem SDK handelt es sich um eine Sammlung von Tools, Bibliotheken, Informationen und anderen Ressourcen, mit der sich Software entwickeln lässt. Software Development Kits existieren für verschiedene Programmiersprachen, Hardwareplattformen, Betriebssysteme und Cloud-Computing-Umgebungen.

Aufgabe eines SDKs ist es, Entwicklern und Programmierern die Arbeit zu erleichtern und ihnen ein schnelles, unkompliziertes Erstellen neuer Anwendungen mit dem gewünschten Funktionsumfang zu ermöglichen. Die Software Development Kits werden von Herstellern, Herausgebern oder Entwicklern von Programmiersprachen, Betriebssystemen oder Plattformen zusammengestellt und veröffentlicht. Sie sollen nach Möglichkeit alle Ressourcen beinhalten, die ein Entwickler für das Erstellen einer Anwendung benötigt. Bei bestimmten interpretierten Sprachen ist das Software Development Kit identisch mit der Laufzeitumgebung.

Lizenzierung von Software Development Kits

In der Regel werden Software Development Kits kostenlos bereitgestellt. Die Nutzung eines SDKs kann allerdings mit bestimmten Auflagen oder Vorgaben des Herausgebers wie zum Beispiel die vertrauliche Behandlung bestimmter Informationen verbunden sein. SDKs unterliegen bestimmten Lizenzvereinbarungen. Diese sollen verhindern, dass die mit dem Kit entwickelte Software mit einer inkompatiblen Lizenz veröffentlicht wird.

Ein Software Development Kit kann proprietär oder frei lizenziert sein. SDKs mit proprietären Lizenzen sind für die Entwicklung von Open-Source-Software ungeeignet. Steht ein Software Development Kit unter General Public License (GPL), eignet es sich nicht für die Entwicklung proprietärer Software. SDKs unter LGPL-Lizenz (GNU Lesser General Public License) lassen sich unter Einhaltung bestimmter Vorgaben für das Erstellen von Software mit proprietären Code-Anteilen verwenden.

Die verschiedenen Bestandteile eines SDKs

Je nach Plattform, Programmiersprache oder Betriebssystem sind die Bestandteile eines SDKs sehr unterschiedlich. So ist beispielsweise bei bestimmten interpretierten Sprachen das Software Development Kit identisch mit der Laufzeitumgebung. In der Regel bestehen SDKs aus Werkzeugen, Bibliotheken, Informationen und anderen Ressourcen. Zu den konkreten Bestandteilen zählen zum Beispiel:

  • Application Programming Interfaces (APIs),
  • Compiler zum Übersetzen des Programmcodes,
  • Debugger zum Finden von Codefehlern,
  • Bibliotheken,
  • Editoren,
  • Laufzeitumgebungen,
  • Analyse- und Testwerkzeuge,
  • grafische Benutzeroberflächen,
  • Command-Line-Tools,
  • Treiber,
  • Netzwerkstacks und -protokolle,
  • Dokumentationen und Leitfäden,
  • vorgefertigte Programmkomponenten,
  • Beispiele und Testprojekte.

Abgrenzung zwischen SDK und API

Die Begriffe SDK und API werden immer wieder in ähnlichen Zusammenhängen genannt. Sie lassen sich aber deutlich voneinander abgrenzen. API steht für Application Programming Interface. Es handelt sich um eine Schnittstelle, die eine Kommunikation zwischen verschiedenen Anwendungen oder Plattformen mit definierten Methoden, Abläufen und Strukturen erlaubt. Die API tritt quasi als Vermittler auf und macht Informationen über verschiedene Anwendungen oder Plattformen hinweg verfügbar. In dieser Funktion ist sie ein unverzichtbarer Bestandteil von Software Development Kits. Um Software zu entwickeln, ist eine API alleine aber nicht ausreichend. Sie wird im SDK mit weiteren Ressourcen und Tools ergänzt.

Beispiele und Einsatzmöglichkeiten eines Software Development Kits

SDKs lassen sich einsetzen, um Software für spezifische Hardwareplattformen, Betriebssysteme oder Programmiersprachen zu erstellen. Abhängig vom jeweiligen Einsatzgebiet existiert eine Vielzahl verschiedener SDKs. Im Folgenden eine kleine Auswahl typischer Beispiele für Software Development Kits:

  • Java Development Kit (JDK) zum Entwickeln von Software in der Programmiersprache Java,
  • Android und iOS SDKs für die Entwicklung von Anwendungen für Smartphone-Betriebssysteme,
  • Windows und macOS SDKs für die Entwicklung von Software für Windows- und Apple-Rechner,
  • VMware SDKs wie vSphere SDK, vCenter SDK, vCloud SDK für die Entwicklung von Anwendungen für die VMware-Virtualisierungsplattform,
  • Nordic Semiconductor SDKs für die Entwicklung von Bluetooth- und Wireless-Anwendungen,
  • Raspberry Pi Pico SDK für die Entwicklung von Anwendungen für die Hardwareplattform des Mikrocontrollerboards Raspberry Pi Pico.

Software Development Kits und Cloud Computing

Um Anwendungen auf Cloud-Plattformen zu entwickeln, müssen viele verschiedene Cloud-Services angesprochen, unterschiedliche Programmiersprachen genutzt und individuelle Skripte erstellt werden. All diese Tätigkeiten manuell auszuführen, stellt Entwickler vor hohe Anforderungen.

Um den Cloud-Entwicklern die Arbeit zu erleichtern, bieten Betreiber von Cloud-Plattformen wie Google, Amazon oder Microsoft und andere entsprechende SDKs an. Teilweise werden diese als Cloud Development Kits (CDKs) bezeichnet. Die SDKs stellen Tools und Oberflächen bereit, um Cloud-Ressourcen einer Cloud-Computing-Infrastruktur anzusprechen, sie gemäß den Anforderungen zu konfigurieren und individuelle Abläufe für eigene Anwendungen zu definieren. Über APIs ist die Verwendung verschiedener Programmiersprachen oder Entwicklungsumgebungen (Integrated Development Environments - IDEs) und die Einbindung unterschiedlicher Plattformen in die Cloud-Infrastruktur möglich.

Beispiele für Software Development Kits großer Cloud-Computing-Anbieter sind das AWS Cloud Development Kit von Amazon, das Azure SDK von Microsoft mit Client Libraries für .NET, Java, JavaScript/TypeScript, Python, Go, C, C++, Android, iOS oder das Google Cloud SDK für die Interaktion mit Produkten und Diensten der Google Cloud und mit Client-Bibliotheken für Programmiersprachen wie Java, Python, Node.js, Ruby, Go, .NET oder PHP.

Jetzt Newsletter abonnieren

Täglich die wichtigsten Infos zu Cloud Computing

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung.

Aufklappen für Details zu Ihrer Einwilligung

Vorteile durch den Einsatz von Software Development Kits

Der Einsatz eines Software Development Kits bietet Entwicklern viele Vorteile. Sie erhalten ein Set aus Werkzeugen, Bibliotheken, Informationen, Beispielen und anderen Ressourcen, die das Erstellen von Software für spezifische Plattformen erleichtert. Anwendungen lassen sich schneller und mit weniger Aufwand programmieren und bereitstellen. Die Entwickler benötigen weniger Programmier-Know-how, um bestimmte Funktionalitäten einzubinden.

Durch die Verwendung von grafischen Benutzeroberflächen, das Kombinieren vordefinierter Programmelemente durch Drag-and-Drop-Verfahren und die Nutzung von fertigen Programmbeispielen lassen sich manuelle Programmierarbeiten deutlich reduzieren. Für die Herausgeber von SDKs bietet sich der Vorteil, dass Entwickler sich unter Umständen für ihr Produkt oder ihre Plattform entscheiden, da das bereitgestellte Software Development Kit im Vergleich zu Konkurrenzprodukten ein effizienteres, unkomplizierteres Arbeiten ermöglicht. Die Zahl der verfügbaren Anwendungen für bestimmte Plattformen oder Betriebssysteme mit guten SDKs steigt dementsprechend.

Public, Private, Hybrid & Co.: Definitionen rund um Cloud Computing

Definitionen rund um Cloud ComputingAlle relevanten Schlagworte aus dem Bereich Cloud Computing finden Sie auch gut erklärt in unseren Definitionen. Ganz im Sinne eines kleinen, aber feinen Glossars lesen Sie hier leicht verständliche Erklärungen zu den wichtigsten Begriffen. Als Service für Sie haben wir die hier erklärten Begriffe in unseren Beiträgen auch direkt mit den zugehörigen Lexikoneinträgen verlinkt. So können Sie die wichtigsten Begriffe direkt dort nachschlagen, wo sie im Text auftauchen.  

Zum Special: Definitionen rund um Cloud Computing

(ID:48663401)