Sari la conținut

SDK

De la Wikipedia, enciclopedia liberă

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.[1][2]

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.[1][3]

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.[4] Pentru aplicațiile iOS, Apple pune la dispoziție iOS SDK, folosit la dezvoltarea aplicațiilor pentru iPhone.[5] Î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.[6] 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.[7] Printre furnizorii unor astfel de SDK-uri se numără Google, Smaato și InMobi.[8][9]

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.[10] Alte SDK-uri sunt mai ample și pot cuprinde instrumente adaptate unui anumit tip de hardware, inclusiv pentru comunicarea cu sisteme încorporate.[11] Printre componentele frecvente se află instrumentele de depanare și alte utilitare, uneori puse la dispoziție printr-un mediu de dezvoltare integrat.[12] În plus, un SDK poate oferi exemple de cod sau aplicații, note tehnice, documentație și tutoriale care completează materialul principal de referință.[13][14]

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.[15][16] SDK-urile publicate sub GNU Lesser General Public License sunt însă, în general, utilizabile și în proiecte proprietare.[17][18] 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.[19]

Î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.[20] Pentru aplicațiile Android, cele mai răspândite categorii sunt SDK-urile destinate analizei și publicității.[20]

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.[21] 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[22] și Citrix[23] folosesc termenul driver development kit pentru instrumentele destinate dezvoltării driverelor de dispozitiv.

Exemple de SDK-uri

[modificare | modificare sursă]

Printre exemplele de kituri de dezvoltare software pentru diferite platforme se numără:

  1. 1 2 „What is SDK (Software Development Kit) - AWS” (în engleză). Amazon Web Services, Inc. Accesat în .
  2. „What is an SDK?” (în engleză). www.redhat.com. Accesat în .
  3. „What is an SDK?” (în engleză). GitHub. . Accesat în .
  4. „Java versions in Android builds”. developer.android.com. Accesat în .
  5. Inc, Apple. „iOS” (în engleză). Apple Developer. Accesat în .
  6. 1 2 Karl-Bridge-Microsoft. „Windows SDK overview - Windows apps” (în engleză). learn.microsoft.com. Accesat în .
  7. „Google Play SDK Index”. play.google.com. Accesat în .
  8. „Integration Center” (în engleză). Smaato. Accesat în .
  9. „InMobi Android And IOS SDK | Mobile SDK For App Monetization” (în engleză). InMobi Advertising. Accesat în .
  10. Sandoval, K. (). „What is the Difference Between an API and an SDK?”. Nordic APIs Blog. Nordic APIs AB. Arhivat din original la . Accesat în .
  11. Benso, A.; Chiusano, S.; Prinetto, P. (). „A software development kit for dependable applications in embedded systems”. Proceedings International Test Conference 2000 (IEEE Cat. No.00CH37159). pp. 170–8. doi:10.1109/TEST.2000.894204. ISBN 0-7803-6546-1.
  12. Burd, B. (). Android Application Development All-in-One For Dummies. John Wiley & Sons. p. 31. ISBN 9781118973806.
  13. Asif, S.Z. (). Next Generation Mobile Communications Ecosystem: Technology Management for Mobile Communications. John Wiley & Sons. p. PT384. ISBN 9781119995814.
  14. Withee, K. (). SharePoint 2010 Development For Dummies. John Wiley & Sons. p. PT346. ISBN 9781118038628.
  15. Vaughan-Nichols, S.J. (). „No, Google is not making the Android SDK proprietary. What's the fuss about?”. ZDNet. CBS Interactive. Arhivat din original la . Accesat în .
  16. Orland, K. (). „Sony's legal quest to remove its leaked developer's kit from the Web”. ArsTechnica. Condé Nast. Accesat în .
  17. Davidson, S.J. (). „A Primer on Open Source Software for Business People and Lawyers”. Leonard, Street and Deinard. Arhivat din original la . Accesat în .
  18. „OPEN SOURCE AND COMMERCIAL SOFTWARE : AN IN-DEPTH ANALYSIS OF THE ISSUES” (PDF). wipo.int. Arhivat din original (PDF) la . Accesat în .
  19. „Airtag releasing NFC mobile payments developer kit, wishes Apple would help simplify the ecosystem”. VentureBeat. . Arhivat din original la . Accesat în .
  20. 1 2 Shoavi, Orly. „The All-Star Winners of Mobile App Tools (SDKs)”. SafeDK. Arhivat din original la . Accesat în .
  21. Perez, Sarah (). „Hundreds Of Apps Banned From App Store For Accessing Users' Personal Information”. TechCrunch. Arhivat din original la . Accesat în .
  22. „Windows Driver Kit documentation”. Hardware Dev Center. Microsoft. Arhivat din original la . Accesat în .
  23. „Driver Development Kit - For XenServer 6.2.0 Service Pack 1 with Hotfix XS62ESP1062”. Citrix Systems, Inc. . Arhivat din original la . Accesat în .
  24. „Android NDK”. developer.android.com. Accesat în .
  25. „Featured” (în engleză). Apple Developer Documentation. Accesat în .
  26. „Java SE 17 Archive Downloads”. Oracle. Accesat în .
  27. Karl-Bridge-Microsoft. „Build desktop Windows apps with the Windows App SDK - Windows apps” (în engleză). learn.microsoft.com. Accesat în .
  28. „Download DirectX Software Development Kit from Official Microsoft Download Center” (în engleză). Microsoft Store - Download Center. Accesat în .