Software Development Kit (SDK) – Definition und Überblick
Ein Software Development Kit (Abkürzung SDK) ist ein Set aus Software Tools und vordefinierten Programmen, mit denen Entwickler:innen Anwendungen für bestimmte Plattformen leichter und schneller entwickeln können. Meistens stellen die Hard- und Software-Anbieter die SDKs selbst zur Verfügung, um den Entwicklern die Arbeit zu erleichtern und ihre Services schneller mit neuen Anwendungen anzureichern.
Was beinhaltet ein SDK?
Gute SDKs machen den Entwicklungsprozess so leicht und unkompliziert wie möglich. Sie sollten also all das zur Verfügung stellen, was ein Entwickler möglicherweise bei der Entwicklung einer neuen, passenden Anwendungen benötigen könnte.
Ein Software Development Kit (SDK) beinhaltet in der Regel
-
- ein Integrated Development Environment (IDE): Ein IDE oder auch integrierte Entwicklungsumgebung ist eine Software für die Anwendungsentwicklung, die gängige Entwicklertools in einer zentralen grafischen Oberfläche vereint. Dieser „visueller Editor“ hilft dem Entwickler dabei, grafische Elemente und das gesamte Design zu layouten.
- einen Compiler: Ein Compiler übersetzt den Quellcode der verwendeten Programmiersprache in die benötigte Programmiersprache (Maschinencode).
- einen Debugger: Ein Debugger identifiziert Fehler im Code und hilft den Entwicklern, den Code für den Service passend auszugeben.
- und eine API (Application Programming Interface).
Eine typische IDE besteht aus folgenden Komponenten:
-
-
- Quellcode-Editor: Ein Texteditor, der eine Programmierung von Software-Code mit folgenden Features unterstützt: Syntaxhervorhebung mit visuellen Hinweisen, sprachspezifische Autovervollständigung und eine Bug-Prüfung, während der Code geschrieben wird.
- Automatisierung lokaler Builds: Dienstprogramme, mit denen sich einfache wiederholbare Aufgaben im Rahmen der Entwicklung lokaler Software-Builds zur Nutzung durch die Entwickler automatisieren lassen, wie beispielsweise die Kompilierung von Quell- in Binärcode, dessen Paketierung und die Ausführung automatischer Tests.
- Debugger: Ein Programm zur Prüfung anderer Programme, mit dem sich die Position von Bugs im Originalcode grafisch anzeigen lässt.
Darüber hinaus können Software Development Kits aber auch folgendes enthalten:
- Dokumentation: Ein Leitfaden gibt den Entwicklern Instruktionen, wie sie vorzufahren haben.
- Code Beispiele: Fertige Codes dienen den Entwicklern als Beispiel.
- Bibliotheken: Bibliotheken im SDK können vorgefertigte Code-Schnipsel enthalten, die für die Entwickler gängige Programmierfunktionen ausführen
- Testing und Analyse Tools: Im SDK helfen solche Tools, die Performance der Anwendungen in einer Test- und einer Produktivumgebung zu testen.
Warum nutzt man SDKs?
Die vorgefertigten Tools und Elemente in den Software Development Kits (SDK) helfen Entwicklern dabei, den gesamten Entwicklungsprozess zu beschleunigen und effizienter zu gestalten. Außerdem können sie mithilfe der SDKs Anwendungen und Programme mit mehr Funktionen ausstatten.
Aus Anwender:innen-Sicht bedeutet das, dass schneller mehr Anwendung zur Verfügung stehen. Beispiel Apple: Mithilfe der Apple SDKs entwickeln externe Anbieter schneller passende Apps, die wiederum im App Store angeboten werden können.
SDK Vorteile:
- Schnellere Entwicklung
- Effizienter Prozess
- Standardisierte Inhalte
- Eingebauter Support
- Mehr Funktionen
- Ergebnis: Mehr verfügbare Anwendungen am Markt
Wie funktionieren SDKs?
SDKs funktionieren sowohl für mobile Apps, als auch für Websites oder andere digitale Anwendungen.
1. Recherchiere, welches SDK für deinen Zweck notwendig ist
2. Kaufe bzw. Downloade das SDK
3. Installiere das SDK
4. Öffne das IPE – hier schreibst du deinen Code
5. Öffne alle anderen APIs und Entwickler-Tools, die du benötigen wirst
6. Nutze die Dokumentationen und Anweisungen während des Prozesses
7. Führe einen Testlauf mit den ggf. Vorhandenen Analyse-Tools durch
Unterschied SDK & API
Eine API (Application Programming Interface) ist eine Art codebasierter Vermittler zwischen zwei Plattformen. Als Teil des SDKs aber auch alleinstehend ermöglicht die API, dass diese beiden Plattformen oder Anwendungen miteinander kommunizieren können. Da während der Entwicklung mit einem SDK die Anwendungen oder Systeme mit anderen Anwendungen kommunizieren müssen, ist eine API als Teil des SDKs also notwendig.
- Eine API ist normalerweise Teil des SDKs (nicht anders herum)
- Mit einer API allein können Entwickler keine Anwendungen entwickeln
- APIs sind notwendig, um eine eindeutige Kommunikation zwischen den Anwendungen herzustellen
- APIs sind also Voraussetzung für die Funktionalität der App
Probleme bei SDKs
Entwickler greifen häufig auf freiverfügbare SDKs zurück. So gibt es viele kostenfreie SDKs wie z.B. Advertising-SDKs, die sich schnell und unkompliziert bei der Entwicklung von mobilen Apps einsetzen lassen. So spart der Entwickelnde Zeit und kann sich auf andere Aufgaben konzentrieren. Die Gefahr hierbei ist, dass auch SDKs fehlerhafte Konfigurationen oder Anweisungen enthalten können. Dies ist besonders problematisch, da SDKs aufgrund ihrer standardisierten Inhalte eher selten hinterfragt werden.
Probleme, die aufgrund von SDKs auftreten können:
- Unverschlüsselte Datenübertragungen
- Datenübertragung an unzulässige Drittanbieter
- Einsatz von nicht notwendigen Trackern
- Crash-Schleifen (wie zuletzt beim facebook-Kit)
Darunter leiden dann in der Regel die Anwender:innen selbst. Persönliche Daten, sensible Inhalte und Nutzergewohnheiten gelangen dabei außerhalb der eigenen Kontrollzone. Dazu kommt, dass einmal fehlerbehaftete SDKs sich in unzähligen Anwendungen wiederfinden können. Die Verbreitung geschieht also häufig sehr schnell und betrifft dann direkt viele App-Nutzer:innen auf einmal.
Was kann ich als Privatnutzer:in dagegen tun?
Hier gilt grundsätzlich: Weniger ist mehr. Privatnutzer:innen ist also geraten, sich vor der Installation von Apps über die Sicherheit zu informieren. Wir veröffentlichen dazu auf unserem Blog immer wieder aktuelle Testergebnisse von bekannten Apps. Hier geht’s zu den Apptests.
Gefahren durch SDKs als Unternehmen vermeiden
Als Unternehmen lässt sich diese Problematik relativ unkompliziert umgehen. Mithilfe sogenannter App Risk Management Lösungen können riskante Apps identifiziert und aus dem Unternehmensnetzwerk ausgeschlossen werden. Am Beispiel von APPVISORY bedeutet das, dass alle Apps aus dem Enterprise App Store und das bestehende App Portfolio auf Sicherheitsrisiken und Compliance-Verstöße hin untersucht und automatisch in Postiv- und Negativlisten übertragen werden. Hier können Sie kostenlos Ihre Mobilgeräte auf riskantes Verhalten untersuchen.