Cos'è un Software Development Kit (SDK)?

Copia URL

Un Software Development Kit (SDK) è un insieme di strumenti, solitamente fornito dal produttore di una piattaforma hardware, di un sistema operativo o di un linguaggio di programmazione.

SDK open source: scoprine i vantaggi

Gli SDK consentono agli sviluppatori software di realizzare applicazioni specifiche per tale piattaforma, sistema o linguaggio di programmazione. Puoi paragonarli al sacchetto degli attrezzi che trovi nell'imballaggio quando acquisti un mobile da montare, la sola differenza è che si tratta di sviluppare app. Puoi disporre degli elementi costitutivi, o strumenti di sviluppo, necessari per portare a termine il lavoro e il contenuto del kit varia a seconda del produttore. 

Un tipico SDK di base include un compilatore, un debugger e una serie di interfacce di programmazione delle applicazioni (API), ma può contenere anche tutti o alcuni degli elementi che seguono:

  • Documentazione
  • Librerie
  • Editor
  • Ambienti runtime o di sviluppo
  • Strumenti di test o analisi
  • Driver
  • Protocolli di rete

Un valido SDK deve includere tutti i componenti che potrebbero essere necessari a uno sviluppatore durante la creazione di nuove applicazioni per il prodotto in questione e il relativo ecosistema. Alcuni SDK contengono anche un semplice progetto di prova per esemplificare e agevolare le fasi di sviluppo rendendole immediate.

Java Development Kit (JDK), Windows 7 SDK, MacOs X SDK e iPhone SDK sono tutti esempi di Software Development Kit. In particolare, l'SDK per operatori Kubernetes semplifica lo sviluppo di un operatore Kubernetes personalizzato. Contiene API ad alto livello, strumenti per lo scaffolding e la generazione del codice, oltre a estensioni per gestire gli scenari di utilizzo più comuni degli operatori. 

Come funzionano gli operatori Kubernetes e come realizzarli

Adotta lo sviluppo cloud native

Risorse da Red Hat

La maggior parte degli SDK contiene un'API che consente di connettere i nuovi progetti o app per dispositivi mobili a livello di codice sorgente nella riga di comando. Spesso includono anche esempi di codice che forniscono agli sviluppatori esempi di programmi e librerie per aiutarli a capire come creare i programmi di base. Grazie a quel punto di partenza, possono passare più facilmente all'ottimizzazione e allo sviluppo di app complesse, nonché al debug e all'aggiunta di nuove funzioni in base alle esigenze.

Per aiutare gli sviluppatori a imparare a utilizzare più rapidamente il nuovo SDK, alcuni SDK contengono anche una documentazione che esemplifica l'utilizzo delle API, oltre a esercitazioni, domande frequenti ed elementi grafici di esempio. Proprio per questo, un'interfaccia utente o di programmazione intuitiva (o una documentazione più esaustiva) può essere utile per indurre gli sviluppatori a preferire il programma di una determinata azienda a una soluzione della concorrenza.

In modo analogo, un SDK può offrire a un'azienda un ottimo strumento per presentare il proprio prodotto agli sviluppatori e influenzare la loro scelta rispetto alla piattaforma o al sistema operativo da adottare per realizzare le proprie app, in tempo reale e in un ambiente di sviluppo integrato. Per tale motivo, la maggior parte degli SDK può essere utilizzata gratuitamente: lo sviluppatore può semplicemente scaricare l'SDK e iniziare a programmare da subito. 

Panoramica di Red Hat sullo sviluppo cloud native

Alcuni SDK possono richiedere l'accettazione di specifici accordi o regole prima dell'utilizzo, soprattutto se riguardano nuovi prodotti che sono ancora in fase alpha o beta, oppure software contenente algoritmi che non sono di pubblico dominio, ovvero non open source. Un SDK può anche essere soggetto a un contratto di licenza, per evitare che il software realizzato con tale strumento venga rilasciato con una licenza incompatibile.

Prima di scegliere un determinato SDK lo sviluppatore deve prendere in considerazione questi aspetti. Ad esempio:

  • Un SDK oggetto di licenza proprietaria non è compatibile con lo sviluppo di software open source.
  • Gli SDK coperti dalla General Public License (GPL) non possono essere utilizzati per lo sviluppo di app proprietarie.
  • Una Lesser General Public License (LGPL) prevede svariate condizioni di cui tenere conto per i progetti che contengono elementi di codice proprietario. 

Grazie alla flessibilità dei kit di sviluppo, gli sviluppatori sono in grado di realizzare costantemente nuove funzionalità — o ampliare quelle esistenti — per le loro app open source, e di condividerle con il resto della community. 

Red Hat combina i migliori strumenti, soluzioni e servizi per lo sviluppo di applicazioni, nel rispetto dei principi open source. Qualunque sia la tua esigenza, Red Hat offre la soluzione più adatta alla tua azienda: che sia una piattaforma da utilizzare come base per le tue app (Red Hat OpenShift), un ambiente di runtime in cui generarle (Red Hat Runtimes) o un ambiente di sviluppo con tutti gli strumenti necessari per sviluppare, eseguire il debug, testare e distribuire applicazioni.

 

Cloud native e cloud ibrido: come definire la tua strategia

Hub

Il blog ufficiale di Red Hat

Leggi gli articoli del blog di Red Hat per scoprire novità e consigli utili sulle nostre tecnologie, e avere aggiornamenti sul nostro ecosistema di clienti, partner e community.

Tutte le versioni di prova dei prodotti Red Hat

Grazie alle versioni di prova gratuite dei prodotti Red Hat potrai acquisire esperienza pratica, prepararti per le certificazioni o capire se il prodotto che hai scelto è giusto per le esigenze della tua organizzazione.

Continua a leggere

Cloud computing: Red Hat OpenShift per gli ingegneri della piattaforma

Red Hat OpenShift offre gli strumenti di progettazione delle piattaforme ideali per creare e gestire le Internal Developer Platform (IDP).

Cos'è la migrazione delle applicazioni?

La migrazione delle applicazioni è un processo capace di migliorare i carichi di lavoro trasferendo un'applicazione da un ambiente all'altro.

Integrated Development Environment (IDE)

Un IDE, o ambiente di sviluppo integrato, è un software progettato per la realizzazione di applicazioni che aggrega strumenti di sviluppo comuni in un'unica interfaccia utente grafica.

Sviluppo e distribuzione delle applicazioni: risorse consigliate