Jaký je vztah mezi SDK a API?
V softwarovém vývoji, s neustálým rozšiřováním rozsahu systémů, je zásadní rozdělit složité systémy na menší komponenty, přičemž návrh programovacího rozhraní je obzvláště důležitý. Hlavním úkolem návrhu rozhraní je racionální rozdělení odpovědností softwarového systému. Dobrý návrh rozhraní může snížit závislost mezi jednotlivými částmi systému, zvýšit soudržnost modulů a zároveň snížit vazebnost mezi moduly, čímž se zlepší udržovatelnost a rozšiřitelnost systému. API jako forma rozhraní hraje důležitou roli při interakci mezi programy, zatímco SDK a API jsou úzce propojeny.
01 API
(1) Koncept API
API, zkratka pro "Application Programming Interface" (Programovací rozhraní aplikace), je sada předdefinovaných funkcí, které mají sloužit jako "rozhraní" pro propojení dvou různých entit. Poskytuje způsob, jakým aplikace a vývojáři mohou přistupovat k rutinám určitého softwaru nebo hardwaru, aniž by se museli dotýkat zdrojového kódu nebo rozumět detailům jeho vnitřního fungování.
V podstatě je API funkce, kterou někdo předem napsal a která je schopna realizovat určitou funkcionalitu. Stačí volat její metody podle poskytnutého rozhraní a předat specifikované parametry a funkce vám pomůže tuto funkcionalitu realizovat.

Z konceptu "rozhraní" v oblasti počítačů se jedná o místo interakce mezi dvěma různými entitami, může se jednat o dva zcela odlišné systémy nebo o dva úseky kódu. Proto lze "I" v rozhraní chápat takto. Na tomto základě se místo interakce mezi člověkem a programem nazývá UI (uživatelské rozhraní), včetně všech forem vstupu, jako je myš, klávesnice, dotyková obrazovka a hlasový vstup atd. Interakce mezi programy se nazývá API a veškerá interakce, která není mezi člověkem a člověkem, probíhá přes API. Tato interakce je v podstatě přenos dat a spouštění funkcí.
(2) Klasifikace API
API se dělí na systémová API (např. Windows, Linux, Unix atd.) a vlastní API na úrovni operačního systému. Vývojový model API společnosti Microsoft Windows byl převzat mnoha společnostmi vyvíjejícími komerční aplikace a vyvinuly API funkce svých komerčních aplikací, aby je zveřejnily a usnadnily tak rozšíření funkcí třetími stranami. Například API vyvinuté společnostmi Google, Apple a Nokia atd.
API se dělí také na otevřená API a soukromá API. Jak název napovídá, otevřené API jsou rozhraní veřejně dostupná všem, která umožňují každému je volat a získávat data, která jsou za nimi. Někdy společnosti používají API jako svůj veřejně otevřený systém, tj. společnost stanoví vlastní standardy systémového rozhraní a všichni členové společnosti mohou volat zdrojový kód prostřednictvím tohoto rozhraní při provádění integrace systému, přizpůsobení a aplikací programů. Tento standard rozhraní se nazývá otevřené API. Soukromé API jsou rozhraní, která nejsou veřejně dostupná.
02 SDK
(1) Koncept SDK
SDK, zkratka pro "Software Development Kit" (Sada pro vývoj softwaru), je obvykle sada vývojových nástrojů, které softwaroví inženýři používají k vytváření softwarových aplikací pro konkrétní balíček, softwarový rámec, hardwarovou platformu, operační systém atd. Jednoduše řečeno, SDK je sada nástrojů poskytovaná třetí stranou pro implementaci určité funkce softwarového produktu.
SDK obvykle poskytují profesionální společnosti jako soubor profesionálních služeb, například vývojové nástroje pro Android nebo služby založené na vývoji hardwaru atd. Existují také SDK pro určitou softwarovou funkci, jako jsou technologie push notifikací, technologie rozpoznávání obrazu, technologie mobilních plateb, technologie analýzy rozpoznávání hlasu atd. V trendu otevřeného internetu jsou některé funkční SDK provozovány jako produkt.
Vývojáři již nemusí vyvíjet každou funkci produktu sami, stačí si vybrat vhodnou a stabilní službu SDK a integrovat určitou funkci do produktu s minimálním časovým úsilím.
(2) Rozdíl mezi SDK a API
SDK je ekvivalent vývojového integrovaného prostředí a API je datové rozhraní. API data se volají v prostředí SDK.
Ve skutečnosti SDK obsahuje definice API, API definuje schopnost, specifikaci rozhraní a SDK může obsahovat tuto schopnost, tuto specifikaci. SDK však obsahuje nejen API a jeho implementaci, ale je to sada softwarových nástrojů, která obsahuje mnoho dalších pomocných funkcí.
SDK obsahuje dokumentaci potřebnou pro používání API, proto se způsob psaní aplikací pro Windows pouze pomocí API často nazývá "programování SDK".





