Koja je veza između SDK-a i API-ja?
U razvoju softvera, s kontinuiranim povećanjem veličine sustava, postaje ključno razlaganje složenih sustava na manje komponente, pri čemu je dizajn programskog sučelja posebno važan. Primarni zadatak dizajna sučelja je razumno raspodijeliti odgovornosti softverskog sustava. Dobar dizajn sučelja može smanjiti ovisnost između različitih dijelova sustava, poboljšati koheziju modula i istovremeno smanjiti stupanj sprege između modula, čime se poboljšava održivost i proširivost sustava. API, kao oblik sučelja, igra važnu ulogu u interakciji između programa, dok su SDK i API usko povezani.
01 API
(1) Koncept API-ja
API, skraćenica za "Programsko sučelje aplikacije", skup je unaprijed definiranih funkcija koje su namijenjene za povezivanje dvaju različitih entiteta kao "sučelje". Pruža način da aplikacije i programeri pristupe rutinama određenog softvera ili hardvera bez pristupa izvornom kodu ili razumijevanja detalja njegove interne mehanike.
U praksi, API su funkcije koje su unaprijed napisali drugi i koje mogu implementirati određene funkcionalnosti. Samo trebate pozvati njegove metode prema pruženo sučelje i proslijediti određene parametre, a funkcija će vam pomoći u implementaciji tih funkcionalnosti.

Iz koncepta "sučelja", u računalstvu se odnosi na mjesto interakcije između dva različita entiteta, što mogu biti dva potpuno različita sustava ili dva segmenta programa. Stoga se "I" u sučelju može razumjeti na ovaj način. Na temelju toga, mjesto interakcije između čovjeka i programa naziva se UI (Korisničko sučelje), uključujući sve oblike unosa, kao što su miš, tipkovnica, dodirni zaslon i glasovni unos itd. Interakcija između programa naziva se API, a sva interakcija koja nije čovjek-čovjek odvija se putem API-ja, a suštinski je priroda interakcije prijenos podataka i pokretanje funkcija.
(2) Klasifikacija API-ja
API se dijele na API-je razine sustava (kao što su Windows, Linux, Unix itd.) i prilagođene API-je koji nisu razine operacijskog sustava. Kao učinkovit uzorak enkapsulacije koda, razvojni uzorak API-ja Microsoft Windowsa prihvatilo je mnogo tvrtki za razvoj komercijalnih aplikacija i razvilo API funkcije određenih komercijalnih aplikacijskih sustava za objavljivanje, kako bi se trećim stranama olakšalo proširenje funkcionalnosti. Na primjer, API-ji razvijeni od strane Googlea, Applea i Nokije itd.
API se također dijele na otvorene API-je i privatne API-je. Kao što samo ime sugerira, otvoreni API je sučelje otvoreno za sve, dopuštajući svima da ga pozovu i dobiju podatke iza njega. Ponekad tvrtke API koriste kao svoj javni otvoreni sustav, tj. tvrtka postavlja vlastite standarde sučelja sustava, a kada je potrebno izvršiti integraciju sustava, prilagodbu i aplikacije programa, svi članovi tvrtke mogu pozvati izvorni kod putem tog standarda sučelja, a taj standard sučelja naziva se otvoreni API. Privatni API je sučelje koje nije otvoreno za javnost.
02 SDK
(1) Koncept SDK-a
SDK, skraćenica za "Komplet alata za razvoj softvera", obično je skup alata za razvoj koje inženjeri softvera koriste za izgradnju aplikacija za određeni paket softvera, softverski okvir, hardversku platformu, operacijski sustav itd. Jednostavno rečeno, SDK je skup alata koji pružaju pružatelji usluga trećih strana za implementaciju određene funkcionalnosti softverskog proizvoda.
SDK obično pružaju profesionalne tvrtke koje pružaju skup profesionalnih usluga, kao što su alati za razvoj Androida ili usluge za razvoj na temelju hardvera itd. Postoje i SDK-ovi usmjereni na određenu funkcionalnost softvera, kao što su tehnologija push obavijesti, tehnologija prepoznavanja slika, tehnologija mobilnog plaćanja, tehnologija analize govornog prepoznavanja itd. U trendu otvorenosti interneta, neki funkcionalni SDK-ovi postali su operativni kao proizvod.
Programeri više ne moraju razvijati svaku funkcionalnost proizvoda, već mogu odabrati prikladnu i stabilnu uslugu SDK-a i integrirati određenu funkcionalnost u proizvod za vrlo malo vremena.
(2) Razlika između SDK-a i API-ja
SDK je ekvivalent okruženju za integraciju alata za razvoj, dok je API sučelje podataka. API podaci se pozivaju u SDK okruženju.
U praksi, SDK sadrži definicije API-ja, API definira sposobnost, specifikaciju sučelja, a SDK može sadržavati tu sposobnost, tu specifikaciju. Ali SDK ne sadrži samo API i njegovu implementaciju, već je i skup alata za softver, koji sadrži i mnoge druge pomoćne funkcije.
SDK sadrži materijale potrebne za korištenje API-ja, stoga ljudi često nazivaju razvoj pisanja Windows aplikacija samo s API-jem "SDK programiranjem".





