Vai al paragrafo

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.

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. 

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. 

Porsche Informatik ottimizza l'esperienza dell'utente con Red Hat OpenShift

Porsche Informatik ha raggiunto livelli di scalabilità superiori in grado di accelerare l'innovazione e offrire agli utenti un'esperienza ottimale.

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.

 

Keep reading

ARTICOLO

Stateful e stateless

La condizione di stateful o stateless di un elemento dipende dalla durata della registrazione dell'interazione con l'elemento stesso e dalle modalità di memorizzazione di questa informazione.

ARTICOLO

Cos'è Quarkus?

Quarkus è uno stack Java Kubernetes native realizzato per le macchine virtuali Java (JVM) e per la compilazione nativa, che ottimizza Java specificamente per i container.

ARTICOLO

Cos'è il serverless computing?

Il serverless computing è un modello di sviluppo cloud native che consente agli sviluppatori di creare ed eseguire applicazioni senza gestire i server.

Scopri di più sulle applicazioni cloud native

Prodotti

Una piattaforma applicativa aziendale che offre servizi verificati per consentire la distribuzione delle app sulle infrastrutture preferite.

Risorse

White paper

Panoramica di Red Hat sullo sviluppo cloud native

Ebook

Il percorso verso le applicazioni cloud native

EBOOK

Cloud native e cloud ibrido: come definire la tua strategia.

Formazione

Formazione gratuita

Developing Cloud-Native Applications with Microservices Architectures