Ein Software Development Kit (SDK) ist eine Reihe von Tools, die vom Hersteller (normalerweise) einer Hardwareplattform, eines Betriebssystems (OS) oder einer Programmiersprache bereitgestellt werden. SDKs helfen Entwicklern beim Erstellen von Anwendungen, die für diese Plattform, dieses System oder diese Programmiersprache spezifisch sind. Stellen Sie sich das wie eine Plastiktüte mit Werkzeugen vor, die mit den Teilen einer Kommode verpackt ist, die Sie gekauft haben, um sich selbst zusammenzubauen. Sie haben das, was Sie brauchen, um die Arbeit zu erledigen, und was im Kit enthalten ist, variiert von Hersteller zu Hersteller.
In der Regel enthält ein Basis-SDK einen Compiler, einen Debugger und APIs (Application Programming Interfaces). Sie können jedoch auch eine der folgenden Komponenten enthalten:
- Dokumentation
- Bibliotheken
- Editoren
- Laufzeit- / Entwicklungsumgebungen
- Test- / Analysetools
- Treiber
- Netzwerkprotokolle
Ein gutes SDK liefert alle Komponenten, die ein Entwickler möglicherweise für erforderlich hält, wenn er Apps für dieses bestimmte Produkt erstellt. Einige SDKs enthalten auch ein Beispiel oder ein grundlegendes Testprojekt, damit Entwickler so schnell wie möglich loslegen können.
Einige Beispiele für Softwareentwicklungskits sind das Java Development Kit (JDK), das Windows 7 SDK und die MacOs X SDK und das iPhone SDK. Das Kubernetes-Operator-SDK kann Ihnen beispielsweise bei der Entwicklung Ihres eigenen Kubernetes-Operators helfen. Es enthält APIs auf hoher Ebene, Tools für das Gerüst und die Codegenerierung sowie Erweiterungen für allgemeine Anwendungsfälle von Bedienern.
In den meisten SDKs ist eine API enthalten, um neue Apps oder Projekte auf Quelltextebene zu verbinden. Sie enthalten häufig auch Beispielcode, der Entwicklern Beispielprogramme und Bibliotheken enthält, mit denen sie lernen, wie grundlegende Programme erstellt werden. Von dort aus können sie komplexere Apps entwickeln.
Einige SDKs enthalten eine Dokumentation zur Verwendung der APIs sowie Tutorials, FAQs und Beispielgrafiken, da es manchmal eine Weile dauern kann, bis ein Entwickler die Verwendung eines neuen SDK erlernt. Aus diesem Grund ist eine intuitive Programmierschnittstelle (oder eine ausführlichere Dokumentation) hilfreich, um Entwickler zu ermutigen, das jeweilige Programm eines Unternehmens anstelle der Option eines Mitbewerbers zu verwenden.
Ebenso kann ein SDK eine hervorragende Möglichkeit für ein Unternehmen sein Entwickler in ihr Produkt einzuführen und sie zu ermutigen, Apps mit ihrer Plattform oder ihrem Betriebssystem zu erstellen. Aus diesem Grund können die meisten SDKs kostenlos verwendet werden. Ein Entwickler kann sie einfach herunterladen und sofort mit der Programmierung beginnen.
Einige Dinge, die zu beachten sind
Einige SDKs enthalten möglicherweise Regeln oder Vereinbarungen, die bestätigt und eingereicht werden müssen, bevor sie verwendet werden können – insbesondere für neue Produkte in einer Alpha- oder Beta-Phase – oder für Software mit Algorithmen, die nicht öffentlich zugänglich sind (nicht Open Source). Ein SDK kann auch einer Lizenzvereinbarung unterliegen, damit die erstellte Software nicht unter einer inkompatiblen Lizenz veröffentlicht wird.
Ein Entwickler muss diese Aspekte berücksichtigen, wenn er das SDK auswählt, mit dem er arbeiten möchte. Beispiel:
- Ein SDK mit einer proprietären Lizenz ist nicht mit der Entwicklung von Open Source-Software kompatibel.
- SDKs mit einer General Public License (GPL) funktionieren nicht Entwickeln von proprietären Apps
- Die Umgehung einer LGPL (Lesser General Public License) für Projekte mit proprietären Codeelementen weist einige Einschränkungen auf.
Warum Red Hat wählen?
Open Source-Anwendungen werden von Amateuren und Profis kontinuierlich entwickelt, da ihre SDKs die Codierung neuer Designs und Funktionserweiterungen ermöglichen werden dann mit dem Rest der Community geteilt.
Red Hat vereint die besten Tools, Lösungen und Services für die Anwendungsentwicklung und wir tun dies auf Open Source-Weise. Egal, ob Sie nach einer Plattform suchen, auf der Ihre App erstellt werden kann (Red Hat OpenShift), nach einer Laufzeitumgebung, in der Sie sie erstellen können (Red Hat Runtimes), oder nach einer Entwicklungsumgebung mit allen Tools, die zum Entwickeln, Testen und Bereitstellen von Anwendungen erforderlich sind ( Red Hat CodeReady Studio), Red Hat hat Sie abgedeckt.