Hvad er SDK og forskellen mellem SDK og API?

API’er repræsenterer kommunikationen mellem forskellige softwarekomponenter, mens SDK’er repræsenterer et helt værktøjssæt, der indeholder API’er til en specifik opgave.

Et udviklerøkosystem fungerer på to grundlæggende værktøjer, en SDK og en API. I dag er det afgørende at forstå de grundlæggende forskelle, da udviklerfællesskabet bruger begge i vid udstrækning i den moderne softwareudviklingsproces.

Udviklingslandskabet er drevet af disse to ingredienser. SDK’er og API’er er nøgledriverne for implementering af tredjeparts API’er og webkommunikation.

Grundlæggende tjener både SDK og API godt til at forbedre din applikations overordnede funktionalitet og ydeevne. Men for at forbedre oplevelsen for både interne teams og slutbrugere er det uundgåeligt at lære, hvordan disse værktøjer fungerer, hvordan de er forskellige, og hvordan de hjælper i softwareudviklingsprocessen.

Lad os se nærmere på hvert enkelt af disse værktøjer.

Hvad er et SDK?

SDK er et akronym for “Software Development Kit”, også kaldet ‘devkit’. SDK er defineret af et sæt softwarebygningsværktøjer, der er specifikke for platforme. Disse værktøjer omfatter debuggere, compilere, kodebiblioteker (dvs. framework) eller rutiner og underrutiner målrettet mod et operativsystem.

Byggestenene i en typisk SDK omfatter følgende:

  • Debugger: En debugger gør det muligt for udviklere at identificere og rette fejl i programkoden.
  • Compiler: En compiler er et program, der behandler programmeringssprogserklæringer og oversætter dem til maskinforståeligt sprog eller “kode”, der bruges af processoren.
  • Kodeeksempler afslører programmeringsopgaver eller scenarier, der giver et klarere billede af en applikation eller webside.
  • Rutiner og underrutiner: En rutine eller underrutine er en metode, funktion, procedure, underprogram eller kode, der kan kaldes og udføres hvor som helst i hele programkoden. For eksempel udføres indstillingen Gem fil via en rutine.
  • Kodebibliotek: Et kodebibliotek giver udviklere mulighed for at bruge eksisterende ressourcer (f.eks. kodesekvenser) i stedet for at genopfinde dem.
  • Test- og analyseværktøjer: Disse værktøjer vurderer applikationens ydeevne i et test- og produktionsmiljø.
  • Dokumentation: Udviklere henviser til dokumenterede instruktioner (efter behov) under udviklingsprocessen.

Generelt har en SDK mindst én API i sin kitty, da applikationer ikke kan interagere, videresende, fungere eller samarbejde uden API.

Hvordan fungerer et SDK?

SDK’er giver en række værktøjer, der er nødvendige for udviklere til at bygge softwareapplikationer med lethed.

For eksempel leverer Facebook SDK til Googles Android og Apples iOS. Disse SDK’er fungerer som open source-biblioteker, der hjælper med at integrere Facebook i din Android- eller iOS-app. Desuden tilbyder Microsoft .NET framework SDK til store applikationer. Den indeholder prøver, værktøjer og biblioteker, der er nødvendige for at udvikle applikationer til Windows.

Nu hvor du er fortrolig med SDK’er, så lad os forstå, hvordan SDK’er fungerer.

  • I første omgang køber, downloader og installerer du det nødvendige “kit” til din platform. Dette kan omfatte download af filer, der inkluderer bestanddele, instruktionssæt og eksempler.
  • Dernæst kan du få adgang til alle de nødvendige værktøjer, integreret udviklingsmiljø (IDE) for at udvikle en ny applikation. Herefter kan udviklerne begynde at kode deres applikationer. En compilers rolle bliver tydelig i denne fase.
  • Endelig kan du bruge instruktioner, dokumentation, kodeeksempler og analyseværktøjer til at teste den nye applikation.

Når du har gennemført disse trin, kan du starte din SDK-rejse.

Typer af SDK’er

Udvikling af web- og mobilapps kører på forudsætning af SDK’er. Lad os se på nogle af de almindelige SDK-typer.

  • Platform-SDK’er: Disse SDK’er er nøglekomponenterne, der er nødvendige for appudvikling til enhver platform. For eksempel bruges Windows 10 SDK til at udvikle Windows 10 Store-apps.
  • Udvidelses-SDK’er: Dette er valgfri SDK’er, der bruges til at udvide og tilpasse udviklingsmiljøet. De er dog ikke et must for at udvikle apps til en bestemt platform.
  • Programmeringssprog-specifikke SDK’er: Sådanne SDK’er bruges til at udvikle programmer på specifikke sprog. For eksempel bruges Java Developer Kit (JDK) til at udvikle applikationer, der bruger programmeringssproget Java.
  • Analytics SDK’er: Disse SDK’er indsamler data såsom brugeradfærd, handlinger osv. For eksempel Googles Analytics SDK.
  • SDK’er for indtægtsgenerering: Sådanne SDK’er bruges af udviklere til at implementere annoncer, der springer ud af de eksisterende apps. De er sat på plads med det ene formål at skabe omsætning.
  Sådan sletter du en Badoo-konto

SDK-fordele

SDK’er giver adskillige fordele for udviklerfællesskabet. Primært behøver de ikke at arbejde hårdt for at udvikle applikationer med effektiv brug af softwareudviklingssæt.

  • Få adgang til præfabrikerede dele: SDK giver nem adgang til præfabrikerede dele og reducerer derved den tid, der bruges på softwareudvikling. For eksempel giver Android map SDK dig mulighed for at konfigurere og implementere forskellige placeringstjenester i din app. SDK’et giver nem adgang til bestanddele og samler dem i appen (f.eks. placeringskoordinater såsom længdegrad, breddegrad, tjenester inden for et bestemt sted).
  • Sømløse integrationer: SDK’er tilbyder jævnere integrationer med forskellige software og applikationer. De giver også direkte adgang til nødvendige oplysninger via korrekt dokumentation.
  • Giver genveje til udviklere: SDK’er giver udviklere mulighed for at genbruge kodesekvenser, da det forkorter udviklingscyklussen. Dette giver udviklere god tid til at fokusere på kritiske opgaver.
  • Indbygget support: SDK’er er aktiveret med indbygget kodeekspertise (support), inklusive komplet dokumentation. Udviklere behøver således ikke lede efter eksperter på domænet for at få deres spørgsmål løst.
  • Overkommelighed: De faktorer, der er nævnt ovenfor, hjælper med at modvirke uforholdsmæssigt store udgifter, der er afholdt i softwareudvikling og efter-implementeringsfaser.

Lad os nu hoppe til den mellemliggende API-komponent.

Hvad er en API?

API er et akronym for ‘Application Programming Interface’. Den udarbejder et sæt regler, hvorved platforme, enheder eller applikationer forbinder og kommunikerer med hinanden. API kan enten være en del af et SDK eller eksistere uafhængigt. I begge scenarier etablerer det systemisk synkronicitet mellem forskellige applikationer.

Udviklerne maksimerer fordelen ved ikke-fri (proprietær) eller cloud-baseret software til at bygge effektive API’er. De kan derefter udnytte tjenester, som brugerne kan få adgang til via de indbyggede API’er.

API er analog med en aftale mellem to parter. Det tilbyder øjeblikkelig informationsudveksling sammen med retningslinjer for, hvordan informationen skal kommunikeres.

Nogle API’er er kendt for at give ‘grænseflade’, hvorfor ‘API’ og ‘grænseflade’ løst betragtes som de samme enheder.

Nøglekomponenter

API har to nøglekomponenter:

  • Tekniske specifikationer: Specifikationer for en API refererer til oplysningerne vedrørende protokollerne til API-integration (dvs. med andre platforme, applikationer). De skal være veldokumenterede for at sikre effektiv brug af API’en.
  • Grænsefladen: Grænsefladen giver en vej til adgang til API’er. Det kan tilgås med et nøgleord, hvis det er en web-API eller via en separat grænseflade.

Lad os nu dykke ned i, hvordan en typisk API fungerer.

Hvordan fungerer en API?

API’er tillader jævn dialog mellem forskellige sæt applikationer.

Overvej et eksempel, hvor du allerede har en app til at sælge dagligvarer, hvor dine brugere kan søge efter og købe dagligvarer online. Din app leverer allerede denne service. Lad os nu sige, at brugerne også vil lede efter købmandscentre på et bestemt sted i en by. I et sådant tilfælde kan du integrere din app med etablerede dagligvareudbydere, der opererer i byen. Ved at implementere geolocation API ville du give brugerne mulighed for at lede efter købmandscentre uden at bekymre sig om en separat geo-location-applikation.

  Sådan repareres DisplayPort til HDMI-adapter, der ikke virker

Fra et teknisk synspunkt følger et API-kald nedenstående trin:

  • En applikationsbruger starter opgaven fra din app ved at oprette en anmodning.
  • API’et videresender anmodningen ved at foretage et opkald til webserveren. API’en er klar over, hvor anmodningen skal sendes, da anmodningen typisk er målrettet mod at nå API-slutpunktet. Server-URL’en definerer slutpunktet.
  • Til sidst udføres opgaven, da databasen eller tredjepartsapplikationen leverer den ønskede service.

Typer af API

REST (Representational State Transfer): REST API’er er en af ​​de mest populære API-typer, hvor API’en skal overholde et sæt principper såsom:

  • Klient-server-arkitektur: Ændringer foretaget på serveren bør ikke påvirke klienten
  • Kommunikation mellem klient og server via HTTP, CRUD (Create, Read, Update, Delete) og JSON.
  • Statsløshed: Der er ingen lagring af klientens tilstand på serveren mellem to anmodninger.

REST bruges normalt til at overføre data. For eksempel bruges Facebook API til at få en Facebook-brugers navn, placering og profilbillede ind i en anden app.

RPC (Remote Procedure Call): Dette bruges til at udføre kode på et andet system. I modsætning til REST, hvor klienten kun anmoder om data, kalder RPC metoder. Anmodningerne kan sendes i XML- eller JSON-formater og kaldes XML-RPC og JSON-RPC’er. Afsenderen af ​​anmodningen forventer et svar fra det andet system, efter at metoden er udført.

For eksempel godkender en betalingsgateway-API et kreditkortnummer (udfører kode i slutningen) og sender et succes- eller fiaskosvar til den opkaldende app.

SOAP (Simple Object Access Protocol) API’er: De er webbaserede API’er, der bruges i tilfælde, der kræver forbedret databeskyttelse og sikkerhed. De kan kommunikere over webbaserede protokoller som HTTP, SMTP, TCP/IP osv.

SOAP er et sæt protokoller, hvorimod REST er en arkitektonisk model. Dette gør det muligt at oprette RESTful API’er ved hjælp af SOAP-baserede protokoller.

API-fordele

API’er er til gavn for både grupper, almindelige brugere og udviklingsprofessionelle. Udviklere kan komme i kontakt med forretningsinteressenter for at opdatere bureausystemer og udvide bureauets forretningspotentiale.

Selvom fordelene kan bringe udviklerperspektivet ind, forstærker API’er både udvikleroplevelsen og slutbrugeroplevelsen. Lad os se nogle af fordelene ved API’er.

  • Integration: API’er forbinder forskellige softwareapplikationer, da de forbedrer den overordnede applikations- eller produktydelse.
  • Nem udviklingscyklus: API’er hjælper udviklere med at forkorte softwareudviklingscyklussen. API-automatisering har nøglen, da computere bruges til at styre arbejde i stedet for en manuel taskforce. API’er giver virksomheder mulighed for at opdatere deres arbejdsgange på én gang.
  • Effektivitet: Med API-adgang kan indhold, når det først er genereret, nemt deles og omfordeles på tværs af forskellige kanaler.
  • Personalisering: API’er muliggør tilpasninger. Enhver bruger eller virksomhed kan drage fordel af dette ved at tilpasse indholdet eller tjenesterne efter deres behov.

Forskellen mellem en SDK og API

Lad os forstå forskellen mellem de to bestanddele med eksempler.

Facebook tilbyder en række løsninger, der tilbyder værktøjer til professionelle udviklere såvel som aktive brugere. Den har både en API og en SDK. Begge disse værktøjer er berettiget til at udføre forskellige funktionaliteter og er specifikke for anvendelsestilfælde. Vi begynder med API’erne.

  Sådan gendanner du Google Instant Search-tastaturgenveje

Facebook API’er

I samarbejde med tredjepartsudviklere forbinder Facebook API’er til Facebook og får adgang til nødvendige data om en bruger. Dette bruges til at tilpasse applikationsfunktioner.

For eksempel bruger en filmbookingsapp Facebook API til at lade dig logge ind på appen ved hjælp af dit Facebook-id. Dit navn og profiloplysninger deles med filmbookingsappen for at sikre brugerens ægthed og for at lade dig undgå at huske et separat login og adgangskode. Det giver også filmbooking-appen mulighed for at vise dig relevante annoncer, mens du gennemser dit Facebook-feed.

En af API’ens USP’er inkluderer, hvordan den kobles sammen med en Graph API Explorer. Graph API-tjenesten opbygger relationelle data mellem brugere, konti, opdateringer, grupper og mere.

GET graph.facebook.com/me?fields=posts.limit(5){message}

Her observerer vi en prøve-API-udstedelse for bedre forståelse. Ovenstående opkald vil hente op til fem opslag, du har offentliggjort, og teksten for hvert enkelt opslag.

Lad os tage et andet eksempel.

GET graph.facebook.com/me?fields=posts.limit(5){message,privacy{value}}

Ovenstående API-forespørgsel returnerer teksten og privatlivsindstillingerne for hvert indlæg, du har offentliggjort.

Begge API’er kører under Graph API og hjælper derved med at generere analyse (dvs. relationelle data).

Selvom ovenstående eksempel er en simpel use case, så overvej et andet scenarie, hvor en restaurantejer ønsker at angive brugere, der deltog i en fest på deres restaurant. Ejeren kunne bruge et Facebook API-kald og generere en liste over brugere, der var til stede under funktionen, ved at få adgang til de billeder, der blev klikket på ved festen, og de taggede Facebook-brugere.

Derudover kunne restaurationsmyndighederne også have en liste over brugernes sociale konti og bruge dem til fremtidige kampagner. Uden API’er kan udnyttelse af sådanne funktionaliteter være besværligt at udvikle. Dernæst vil vi se på Facebook SDK’er.

Facebook SDK’er

SDK’er leveret af Facebook er specifikt designet til “oprettelse af applikationer”. For eksempel er der mange spil, du kan spille i Facebook-appen. Disse er designet til at køre i Facebook, og du skal bruge et SDK for at oprette disse apps.

Lad os se på Facebook SDK til iOS. Det giver mulighed for udvikling af Facebook-applikationer til iOS specifikt.

Overvej følgende kodestykke, der afslører Facebook SDK til iOS:

/**
 * For more details, please take a look at:
 * developers.facebook.com/docs/reference/ios/current/class/FBSDKAppEvents
 */
- (void)applicationDidBecomeActive:(UIApplication *)application {    
    [FBSDKAppEvents activateApp];    
}

Ovenstående eksempel bruges til at logge hændelser relateret til applikationsaktiveringer.

Strukturen af ​​opkaldet varierer i begge tilfælde. En API udfører en handling, der er foruddefineret via eksisterende kilder og funktioner. Tværtimod definerer SDK først funktionen og kalder derefter kilden og funktionen.

Vælg mellem en SDK og API

API’er skitserer i det væsentlige, hvordan forskellige platforme kan arbejde sammen synkront. De hjælper med applikationsintegration via protokoller og specifikationer. De er således en af ​​de kritiske komponenter i et SDK. API’er kan dog ikke bruges til at oprette apps fra bunden.

SDK’er letter opbygningen af ​​en ny applikation eller software, der er specifik for ét programmeringssprog eller platform. Et SDK har generelt mindst én API til at kommunikere eksternt.

Hvis du bygger en app til at køre på en bestemt platform, såsom iOS, skal du bruge SDK’et til den pågældende platform. For at kommunikere med andre webapplikationer som Facebook skal du bruge denne app’s API.

Konklusion 👨‍🏫

Sammenfattende er forskellen mellem en SDK og API fremhævet i følgende postulater:

  • SDK’er indeholder ofte API’er, men ingen API inkluderer SDK’er.
  • Som et fundament af et hus, der tillader huset at stå højt, muliggør SDK’er oprettelsen af ​​applikationer.
  • API’er bestemmer funktionen og kommunikationen af ​​applikationer inden for SDK’erne, svarende til de telefonlinjer, der tillader kontakt med omverdenen.