Каква е врската помеѓу SDK и API?
Во развојот на софтвер, со постојаното зголемување на скалата на системите, од клучно значење е да се разложат сложените системи на помали компоненти, при што дизајнот на програмските интерфејси е особено важен. Главната задача на дизајнот на интерфејсите е рационална распределба на одговорностите на софтверскиот систем. Добриот дизајн на интерфејсите може да ја намали зависноста помеѓу различните делови на системот, да ја подобри кохезијата на модулите и да ја намали спојувањето помеѓу нив, со што се зголемува одржувањето и скалабилноста на системот. API, како една форма на интерфејс, игра важна улога во интеракцијата помеѓу програмите, додека SDK и API имаат тесна врска.
01 API
(1) Концепт на API
API, односно „Програмски интерфејс за апликации“, е сет од претходно дефинирани функции, дизајнирани да служат како „интерфејс“ за поврзување на две различни нешта. Тој обезбедува начин на кој апликациите и програмерите можат да пристапат до рутините на некој софтвер или хардвер, без да пристапуваат до изворниот код или да ги разбираат деталите на неговиот внатрешен механизам.
Во суштина, API се функции кои претходно се напишани од други и кои можат да извршат одредена функционалност. Само треба да ги повикате нивните методи според достапниот интерфејс и да ги проследите назначените параметри, а функцијата ќе ви помогне да ги реализирате тие функции.

Од концептот „интерфејс“, во компјутерската област, тоа се однесува на местото на интеракција помеѓу две различни ентитети, кои може да бидат два комплетно различни системи или два делови од програма. Затоа, „I“ во интерфејсот може да се разбере на овој начин. Врз основа на ова, местото на интеракција помеѓу човекот и програмата се нарекува UI (кориснички интерфејс), кој ги вклучува сите форми на внесување, како што се глушец, тастатура, екран на допир и гласовно внесување итн. Интеракцијата помеѓу програмите се нарекува API, а сите интеракции кои не се човечки се спроведуваат преку API. Суштината на оваа интеракција е пренос на податоци и активирање на функционалност.
(2) Класификација на API
API се дели на системски API (како Windows, Linux, Unix итн.) и прилагодени API кои не се оперативен систем. Како ефикасен модел за капсулирање на код, моделот за развој на API на Microsoft Windows е усвоен од многу компании за развој на комерцијални апликации и тие развиваат API функции на комерцијални апликации за објавување, со цел да им овозможат на трети страни да прошират функционалност. На пример, API развиени од Google, Apple и Nokia итн.
API се дели и на отворен API и приватен API. Како што сугерира името, отворен API е интерфејс што е јавно достапен за сите, овозможувајќи на секој да го повика и да ги добие податоците зад него. Понекогаш компаниите го користат API како нивниот јавен отворен систем, односно компанијата поставува стандард за интерфејс на својот систем, а кога треба да изврши интеграција на систем, прилагодување и апликации на програми, сите членови на компанијата можат да го повикаат изворниот код преку овој стандард за интерфејс, а овој стандард за интерфејс се нарекува отворен API. Приватниот API е интерфејс кој не е отворен за јавноста.
02 SDK
(1) Концепт на SDK
SDK, односно „Комплет за развој на софтвер“, обично е збирка на алатки за развој што софтверските инженери ги користат за да креираат софтверски апликации за специфичен пакет, софтверски рамки, хардверска платформа, оперативен систем итн. Едноставно кажано, SDK е комплет алатки што го нуди трета страна за да реализира одредена функционалност на софтверскиот производ.
SDK обично е збирка на професионални услуги што ги нуди компанија со професионална природа, како што се обезбедување на алатки за развој на Android или услуги за развој базирани на хардвер итн. Има и SDK за одредена софтверска функционалност, како што се технологија за притискање, технологија за препознавање слики, технологија за мобилни плаќања, технологија за анализа на говорно препознавање итн. Во трендот на отворен интернет, некои функционални SDK веќе се третираат како производ за работа.
Програмерите повеќе не треба да развиваат секоја функционалност на производот, туку само треба да изберат соодветна и стабилна услуга SDK и да потрошат малку време за да ја интегрираат одредена функционалност во производот.
(2) Разлика помеѓу SDK и API
SDK е еквивалентен на развојна интегрирана алатка, додека API е интерфејс за податоци. API податоците се повикуваат во средината на SDK.
Во суштина, SDK ги содржи дефинициите на API, а API дефинира способност, спецификација на интерфејс, а SDK може да содржи оваа способност и спецификација. Но, SDK не содржи само API и негова имплементација, туку е комплет алатки за софтвер и содржи многу други помошни функции.
SDK содржи материјали потребни за користење на API, затоа луѓето често го нарекуваат развој на „SDK програмирање“ користење само на API за пишување на апликации за Windows.





