Un SDK (abr. engl. Software Development Kit - Trusă de dezvoltare a programelor) este un set de unelte folosite de un programator pentru a scrie programe pentru un anumit sistem de operare, platformă hardware, sau pachet de programe existent.

SDK-urile conțin de regulă biblioteci sau API-pe care programatorii le pot folosi în aplicații. Unele SDK-uri includ și compilatoare, depanatoare, documentație, exemple de cod sau alte instrumente de dezvoltare. În practică, acestea sunt adesea utilizate împreună cu medii de dezvoltare integrate, care oferă o interfață mai completă pentru scrierea, testarea și depanarea codului.

Pentru anumite platforme, dezvoltarea unei aplicații presupune folosirea unui SDK specific. În cazul Android, dezvoltatorii folosesc Android SDK, iar proiectele care includ Java sau Kotlin depind și de configurarea unei versiuni JDK/Java pentru procesul de compilare. Pentru aplicațiile iOS, Apple pune la dispoziție iOS SDK, folosit la dezvoltarea aplicațiilor pentru iPhone. În cazul aplicațiilor Windows, inclusiv al celor pentru Universal Windows Platform, poate fi folosit Windows SDK, care include biblioteci, metadate și instrumente de dezvoltare. Pe lângă SDK-urile de platformă, există și SDK-uri specializate care extind aplicațiile cu funcții precum publicitate, analiză, raportarea activității sau monetizare. Printre furnizorii unor astfel de SDK-uri se numără Google, Smaato și InMobi.

Detalii Un SDK poate include API-uri livrate ca biblioteci locale, prin care dezvoltatorii accesează funcții deja pregătite pentru un anumit limbaj de programare. Alte SDK-uri sunt mai ample și pot cuprinde instrumente adaptate unui anumit tip de hardware, inclusiv pentru comunicarea cu sisteme încorporate. Printre componentele frecvente se află instrumentele de depanare și alte utilitare, uneori puse la dispoziție printr-un mediu de dezvoltare integrat. În plus, un SDK poate oferi exemple de cod sau aplicații, note tehnice, documentație și tutoriale care completează materialul principal de referință.

Licența unui SDK poate limita tipurile de software care pot fi create cu ajutorul său, mai ales atunci când produsul rezultat urmează să fie distribuit sub o licență incompatibilă. Un SDK proprietar nu este, în mod obișnuit, potrivit pentru dezvoltarea de software liber, iar un SDK aflat sub GNU General Public License poate ridica probleme pentru proiecte proprietare, din cauza condițiilor juridice ale licenței. SDK-urile publicate sub GNU Lesser General Public License sunt însă, în general, utilizabile și în proiecte proprietare. Uneori, mai ales când tehnologia vizată este recentă, un SDK poate include și hardware. Un exemplu este SDK-ul NFC al AirTag din 2012, care cuprindea atât partea de plată, cât și partea de citire din ansamblul hardware necesar.

În medie, o aplicație mobilă Android folosește 15,6 SDK-uri distincte, iar în cazul jocurilor media ajunge la 17,5 SDK-uri. Pentru aplicațiile Android, cele mai răspândite categorii sunt SDK-urile destinate analizei și publicității.

Folosirea SDK-urilor poate crea riscuri, deoarece acestea sunt incluse în aplicații, dar execută propriul cod. Un SDK problematic sau malițios poate afecta confidențialitatea datelor, poate reduce performanța aplicației ori poate determina eliminarea acesteia din Google Play sau din App Store. Unele tehnologii recente le oferă dezvoltatorilor posibilitatea de a supraveghea și controla în timp real SDK-urile rulate pe partea client.

În unele cazuri, furnizorii de SDK-uri pentru sisteme sau componente specializate folosesc denumiri mai precise decât „software development kit”. De pildă, Microsoft și Citrix folosesc termenul driver development kit pentru instrumentele destinate dezvoltării driverelor de dispozitiv.

Exemple de SDK-uri Printre exemplele de kituri de dezvoltare software pentru diferite platforme se numără:

Android NDK iOS SDK Java Development Kit Windows SDK Windows App SDK Microsoft DirectX SDK

Note Categorie:Programare