Definition

Software Development Kit (SDK)

Ein Software Development Kit (SDK) ist ein Satz von Software-Tools und Programmen, die von Hardware- und Softwareanbietern bereitgestellt werden und mit denen Entwickler Anwendungen für bestimmte Plattformen erstellen können. SDKs helfen Entwicklern, ihre Anwendungen problemlos in die Dienste eines Anbieters zu integrieren.

SDKs enthalten Dokumentation, Programmierschnittstellen (APIs), Codebeispiele, Libraries (Bibliotheken) und Prozesse sowie Anleitungen, die Entwickler verwenden und in ihre Anwendungen integrieren können. Entwickler können SDKs nutzen, um Anwendungen zu erstellen und zu pflegen, ohne alles von Grund auf neu schreiben zu müssen.

Im Einzelnen umfassen SDKs folgende Komponenten:

  • Libraries sind eine Sammlung von wiederverwendbaren und verpackten Codeteilen, die bestimmte Funktionen ausführen.
  • APIs sind vordefinierte Codeteile, mit denen Entwickler allgemeine Programmieraufgaben auf der Plattform durchführen können.
  • Integrierte Entwicklungsumgebungen (Integrated Development Environment, IDEs) sind visuelle Editoren, die bei der Gestaltung und dem Layout von grafischen Elementen wie Textfeldern und Schaltflächen helfen. Sie sind in Toolkits für die Entwicklung mobiler Softwareanwendungen weit verbreitet. Die IDE von Apple, Xcode, enthält beispielsweise eine Reihe von Entwicklungswerkzeugen, die Entwicklern helfen, Software für macOS, iOS, iPadOS, watchOS und tvOS zu erstellen. Für Android gibt es zahlreiche IDE-Optionen.
  • Zu den Test-Tools und Compilern gehören Debugging Tools, die Entwicklern helfen, Codierungsfehler in verschiedenen Phasen der Anwendungsentwicklung zu erkennen.
  • Die Dokumentation umfasst die Anleitungen und Tutorials, die von den Anbietern zur Verfügung gestellt werden, um Entwickler in verschiedenen Entwicklungsphasen zu unterstützen.
Komponenten und Beispiele für SDKs
Abbildung 1: Entwickler verwenden SDKs von verschiedenen Anbietern. Die meisten SDKs umfassen Libraries, APIs, IDEs, Testwerkzeuge und Dokumentation.

Unterschied zwischen SDK und API

Mit SDKs können Entwickler Anwendungen erstellen und sie dienen als Bausteine für das Softwareprodukt. APIs hingegen stellen den Code bereit, mit dem zwei Softwareprogramme miteinander kommunizieren können. Eine API definiert den korrekten Weg für einen Entwickler, Dienste von einem Betriebssystem oder einer anderen Anwendung anzufordern und Daten in verschiedenen Kontexten und über mehrere Kanäle bereitzustellen.

Wenn ein Entwickler ein SDK verwendet, um Anwendungen zu entwickeln und Systeme zu erstellen, müssen diese Anwendungen mit anderen Anwendungen kommunizieren. Ein SDK enthält eine API, die diese Kommunikation ermöglicht.

Weitere Unterschiede zwischen SDK und API sind:

  • SDKs enthalten normalerweise APIs, aber APIs enthalten keine SDKs.
  • Eine API kann zwar für die Kommunikation verwendet werden, nicht aber für die Erstellung neuer Anwendungen.
  • Ein SDK ist ein Tool und eine Codekomponente, die für einen bestimmten Zweck erstellt wurde, während eine API eine Schnittstelle für einen Dienst ist.

Wie verwendet man ein SDK?

Ein Entwickler benötigt ein iOS SDK, um iOS-Anwendungen zu erstellen, ein Android-Toolkit, um Android-Anwendungen zu erstellen, ein Nordic SDK, um Bluetooth- oder Wireless-Anwendungen zu erstellen, und ein VMware SDK, um die Integration mit der VMWare-Plattform zu ermöglichen.

Für groß angelegte Software-as-a-Service-Anwendungen (SaaS) verwenden Unternehmen in der Regel die Open-Source-Plattform .NET SDK, die von Microsoft unterstützt wird. Weitere Beispiele für beliebte SDKs sind das Google Cloud SDK, Microsoft Windows SDK, Java Development Kit (JDK) und das Node.js SDK. Obwohl SDKs hauptsächlich mit nativen mobilen Anwendungen in Verbindung gebracht werden, können Entwickler sie auch in Verbindung mit Websites, Set-Top-Boxen und anderen digitalen Plattformen verwenden.

Die Verwendung eines SDK umfasst in der Regel drei Schritte:

  1. Ein plattformspezifisches SDK wird von einem Entwickler erworben, heruntergeladen und installiert.
  2. Der Entwickler beginnt die Entwicklung in einer IDE. Er kann die im SDK enthaltenen APIs verwenden, um neue Anwendungen zu erstellen.
  3. Um die Anfangsphase der Entwicklung zu beschleunigen, verwenden Entwickler die im SDK enthaltenen Anleitungen, Dokumentationen, Codebeispiele und Test-Tools.

Vorteile eines SDK

Verschiedene Arten von SDKs können für eine Vielzahl von Programmiersprachen und mobilen Anwendungen verwendet werden. Durch die Zusammenstellung der benötigten Tools an einem Ort vereinfachen SDKs Standardprozesse und erweitern die Funktionalität von Anwendungen.

Im Folgenden sind die wichtigsten Vorteile von SDKs aufgeführt:

Zeitersparnis. Mit SDKs können Entwickler einfach und schnell die Standardkomponenten ihrer Anwendungen erstellen und ihnen Funktionen hinzufügen. SDKs sind in der Regel All-in-One-Produkte und müssen nicht mit anderen Komponenten integriert werden, was den Entwicklungsprozess verlangsamen kann.

Leichtere Integration. Entwickler verwenden SDKs für einfache Funktionen wie die Anmeldung, Standortdienste und mobile Zahlungen. Einige SDKs unterstützen Entwickler dabei, komplexere App-Funktionen, wie Augmented Reality und Virtual Reality, zu erstellen und neue Funktionen hinzuzufügen. SDKs reduzieren die Komplexität von Integrationen durch die Vereinfachung von Standardprozessen, wie zum Beispiel die Erstellung von Autorisierungssignaturen und die Interpretation von SMS-Nachrichten in nativen Sprachen oder Plattformen.

Dokumentation und Code-Libraries. SDKs enthalten Dokumentation, Tutorials, APIs, Codebeispiele, Libraries und Prozesse. Sie bieten auch Anleitungen, die Entwickler verwenden und in ihre Anwendungen integrieren können. Entwickler nutzen SDKs, um Anwendungen zu erstellen und zu pflegen, ohne alles von Grund auf neu schreiben zu müssen.

Verbesserte Funktionalität. Mit SDKs können Entwickler ihre Anwendungen um weitere Funktionen erweitern, zum Beispiel um Push-Benachrichtigungen und Anzeigen. SDKs unterstützen Entwickler auch bei der Erstellung neuer Tools und vereinfachen den Prozess, da alles bereits vordefiniert ist. Wenn ein Entwickler beispielsweise Bilder oder Text aus einer App direkt auf Facebook freigeben möchte, kann er nach dem Android SDK von Facebook suchen, um den erforderlichen Code zu finden, der für ein Android-Gerät geeignet ist. Dies beschleunigt die Bereitstellung, da der Entwickler den Code nicht von Grund auf neu schreiben muss.

Glaubwürdigkeit der Marke. Apps, die von einem SDK-Toolkit unterstützt werden, gewinnen an Bekanntheit, da sie in App Stores veröffentlicht werden können, in denen Kunden nach Apps suchen und diese kaufen. Diese Apps sind weniger anfällig für unerwartete Abstürze und lassen sich leichter in Drittanbieter integrieren, was zu besseren Bewertungen im App Store führt und die Glaubwürdigkeit der Marke stärkt.

Kosteneinsparungen. Aufgrund ihrer kürzeren Entwicklungszyklen können mit SDKs erstellte Apps erhebliche Kosteneinsparungen bringen. Außerdem sind für SDK-Integrationen keine speziellen technischen Kenntnisse erforderlich, so dass Unternehmen die Integrationen intern durchführen können, anstatt externe Fachleute zu beauftragen.

Anpassungsfähigkeit. SDKs sind für eine Vielzahl von Anwendungsfällen verfügbar und bieten die Möglichkeit, Anwendungen mit personalisierten Benutzererfahrungen zu entwickeln.

Was zeichnet ein gutes SDK aus?

SDK-Anbieter bieten häufig viele kommerzielle und Open-Source-SDKs an, was es für Unternehmen schwierig macht, das richtige für ihre Bedürfnisse auszuwählen. Preisschilder und spezifische Funktionen sind ein guter Ausgangspunkt für die Auswahl eines SDK. Es ist jedoch auch wichtig, andere Faktoren zu berücksichtigen, zum Beispiel wie benutzerfreundlich und leicht verständlich es ist.

Ein gutes SDK sollte folgende Merkmale aufweisen:

Einfach zu benutzen sein. Entwickler sollten nicht viel Zeit aufwenden müssen, um herauszufinden, wie ein SDK funktioniert.

Funktional sein. Ein SDK sollte über genügend Funktionalität verfügen, um einen Mehrwert für Anwendungen zu schaffen.

Eine Dokumentation enthalten. Ein SDK sollte eine klare, gründliche und aktuelle Erklärung der Funktionsweise des Codes enthalten. Da sich ein SDK an Entwickler richtet, sollte es auch Codebeispiele und Integrationsbeispiele enthalten.

Schnelle Integration bieten. In den meisten Fällen sollte eine Integration nicht länger als fünf oder zehn Minuten dauern, je nach Art des verwendeten SDK. Ein gutes SDK sollte einfach zu integrieren sein und nur minimale Eingriffe erfordern.

Skalierbar sein. Ein SDK sollte skalierbar sein, um den wachsenden Anforderungen eines Unternehmens gerecht zu werden.

Energieeffizient sein. Einige SDKs können den Akku und den Datenverbrauch der CPU eines Geräts belasten. Ein gutes SDK hat nur minimale Auswirkungen auf den Datenverbrauch und die Akkulaufzeit eines Geräts.

Sicher sein. Forscher haben vor kurzem 1.859 Apps für Android und iOS identifiziert, die hart kodierte AWS-Cloud-Anmeldedaten enthielten, die auf ein anfälliges SDK eines Drittanbieters zurückgeführt wurden. Ein SDK sollte in der Lage sein, die Daten und App-Informationen eines Benutzers zu schützen und die aktuellen Sicherheitsrichtlinien einzuhalten.

Diese Definition wurde zuletzt im Oktober 2022 aktualisiert

Erfahren Sie mehr über Softwareentwicklung

ComputerWeekly.de
Close