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.

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.
:quality(80)/images.vogel.de/vogelonline/bdb/1229600/1229678/original.jpg)
Definition: Representational State Transfer (REST) Application Programming Interface (API)
Was ist eine REST API?
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.
:quality(80)/images.vogel.de/vogelonline/bdb/1938200/1938283/original.jpg)
Definition: Rahmenwerk für Softwareentwicklung und Programmierung
Was ist ein Framework?
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.

Zum Special: Definitionen rund um Cloud Computing
(ID:48663401)