Exploring iOS SDK
Del
Del
7
Del
Dette Cyber mandag Envato Tuts + kurs vil bli redusert å bare $ 3. Ikke gå glipp av.
Dette innlegget er en del av en serie som heter Lær iOS SDK Development Fra Scratch.Getting gang med Objective-CExploring stiftelsen Work
En god forståelse av iOS SDK er nøkkelen når du utvikler innfødte iOS-applikasjoner . Ikke bare vil det hjelpe deg å velge de riktige verktøyene for å takle et spesielt problem, det vil også sørge for at du ikke gå seg vill i de mange rammer som er inkludert i iOS SDK. I denne artikkelen, vi zoome inn på iOS arkitektur og finne ut hvilke krefter iOS applikasjoner under panseret.
Hva er iOS SDK?
Jeg er ganske sikker på at selv en Noen erfarne iOS-utviklere ville ha en hard tid å definere iOS SDK i en setning. Forkortelsen SDK står for Software Development Kit. IOS SDK inneholder verktøy og ressurser til å utvikle innfødte iOS-applikasjoner, noe som betyr at SDK tillater utviklere å utvikle, installere, kjøre og teste applikasjoner på iOS Simulator og om fysiske enheter.
De to drivkreftene strømtilførselen innfødte iOS-applikasjoner er Objective-C og de innfødte iOS system rammer. I den forrige artikkelen, utforsket vi den Objective-C programmeringsspråk. I denne artikkelen, jeg ønsker å utforske de rammer som kraft innfødte iOS-applikasjoner.
Dette inkluderer høye nivå rammeverk, slik som UIKit og kart Kit rammer, men også rammer som er nært knyttet til maskinvare, for eksempel den Accelerate og Core Sted rammer.
Hva er en innfødt iOS søknad?
Du vet nå hva iOS SDK er, men hva gjør en søknad kvalifisere som en innfødt iOS søknad? Det enkle svaret er at en iOS-programmet er et program som kjører på en iOS-enhet. Men dette er bare halve sannheten. Hva med web-applikasjoner som kjører i nettleseren Safari?
En iOS applikasjonen er en Cocoa applikasjon utviklet for iOS-plattformen. Flott. Hva er en Cocoa applikasjon? En Cocoa programmet er litt vanskeligere å definere. Er det språket som søknaden er skrevet? Ikke egentlig. Er det de verktøyene som en Cocoa program er bygget? Nei, det er mulig å utvikle en Cocoa program uten hjelp av Xcode.
Apple definerer en Cocoa applikasjon som et program som er sammensatt av gjenstander som til slutt arver fra NSObject, en rot klasse erklært i stiftelsen rammeverk, og som er basert på Objective-C runtime.
I denne artikkelen, jeg ønsker å fokusere på de rammer som brukes til å lage native iOS-applikasjoner. Hvis du er interessert i å lære mer om Objective-C runtime, anbefaler jeg å ta en titt på Apples Objective-C Runtime Reference eller lese Objective-C Runtime Programming Guide.
Stiftelsen rammeverket gir en andre rot klasse, NSProxy. Men vil du sjelden eller aldri bruker det i noen av prosjektene.
Den iOS Architecture
En annen forskjell med web-applikasjoner som kjører i nettleseren Safari er at native applikasjoner samhandle direkte med iOS operativsystem og de innfødte iOS system rammer. Operativsystemet fungerer som en mellommann mellom applikasjonen og den underliggende maskinvaren. En viktig fordel med denne mekling eller abstraksjon er at native applikasjoner ikke trenger å bekymre seg for fremtidige maskinvareendringer eller enhetsspesifikasjonene.
Operativsystemet gir native applikasjoner med nødvendig informasjon om maskinvaren evner (Har enheten har et kamera) og enhetsspesifikasjonene (Er program som kjører på en iPhone eller en iPad)
iOS arkitektur kan deles inn i fire forskjellige lag:?.
Cocoa Trykk
Media
Core Services
Kjerne OS
Dette lagdelt arkitektur illustrerer at abstraksjonsnivå, med høyere nivå lagene mer abstrahert og lavere nivå lagene mer grunnleggende og nært knyttet til maskinvaren. Det sier seg selv at jo høyere nivå lagene stole på de lavere nivå lag for noen av deres funksjonalitet.
Apple anbefaler å bruke høyere nivå rammer så mye som mulig, fordi de ofte er objektorientert abstraksjoner av lavere nivå rammer. Med andre ord, høyere nivå lagene indirekte samvirke med maskinvaren gjennom de nedre nivå lag, som er iboende mer kompleks. Selvfølgelig er det fortsatt mulig å falle tilbake til de lavere nivå rammer hvis høyere nivå rammeverk ikke dekker dine behov.
Som en påminnelse, er et rammeverk en katalog som inneholder en dynamisk delt bibliotek og ressursene forbundet med det, som header-filer, bilder osv Rammeverk er tilgangspunkter til ulike systemgrensesnitt, for eksempel iOS adressebok, enhetens kamera roll, og musikkbiblioteket.
Cocoa Touch Layer
I forrige artikkel skrev jeg om Cocoa Touch og dens forhold til Objective-C. I denne artikkelen vil jeg gjerne diskutere Cocoa Touch fra en mer funksjonell ståsted, hvordan programmer stole på Cocoa Touch laget og hva dens rolle er i iOS arkitektur.
Cocoa Touch laget er det øverste laget av iOS arkitektur. Den inneholder noen av de viktigste rammene som innfødte iOS-applikasjoner er avhengige av, med den mest fremtredende er den UIKit rammeverket.
Cocoa Touch lag definerer grunnleggende programmet infrastruktur og gir en rekke viktige teknologier, for eksempel multitasking og berøringsbasert innspill.
Som jeg nevnte, iOS applikasjoner stole tungt på UIKit rammeverket. Native iOS-applikasjoner kan ikke fungere hvis de ikke er knyttet mot UIKit og Stiftelsen rammer.
UIKit rammeverket eller UIKit er skreddersydd til iOS-plattformen. Det er en tilsvarende ramme for OS X-plattformen kalt Application Kit eller AppKit rammeverk. UIKit gir infrastrukturen for grafiske, hendelsesdrevet iOS-applikasjoner. Det tar også vare på andre sentrale aspekter som er spesifikke for iOS-plattformen som multitasking, push varslinger og tilgjengelighet.
Cocoa Touch laget gir utviklere med et stort antall høyt nivå funksjoner, som automatisk layout, utskrift, gest kjennerne, og dokumentstøtte. I tillegg til UIKit, inneholder det kart Kit, Hendelses Kit, og Message UI rammer, blant andre.
For en fullstendig liste over alle rammer i Cocoa Touch lag, vil jeg gjerne henvise til Apples iOS Technology Oversikt guide.
Media Layer
Grafikk, lyd og video håndteres av Media laget. Dette laget inneholder en rekke sentrale teknologier, for eksempel core grafikk, OpenGL ES og OpenAL, AV Foundation og Core Media.
Media laget inneholder et stort antall rammer inkludert Eiendeler Bibliotek rammeverk for å få tilgang til en enhet bilder og videoer, den Core Image rammene for bildemanipulering gjennom filtre og Core Graphics rammeverk for 2D tegningen.
Ta en titt på Apples iOS Technology Oversikt guide for en fullstendig liste over alle rammene av medie lag .
Core Services Layer
The Core Services laget er ansvarlig for å administrere de grunnleggende systemtjenester som innfødte iOS-applikasjoner bruker. Cocoa Touch laget er veldig avhengig av Core Services laget for noen av dens funksjonalitet. The Core Services laget gir også en rekke uunnværlige funksjoner, for eksempel blokkobjekter, Grand Central Dispatch, In-App Purchase, og iCloud Storage.
En av de mest velkommen tilskuddene til Core Services laget er ARC eller Automatic Reference Counting. ARC er en kompilator-level-funksjonen, som ble innført i 2011 med utgivelsen av iOS 5. ARC forenkler prosessen med minnehåndtering i Objective-C.
Minnehåndtering er et tema vi ikke har dekket i denne serien, men det er viktig at du forstår det grunnleggende minnehåndtering ved utvikling Cocoa-applikasjoner. Automatisk Reference Counting er et flott tillegg, men det er viktig at du vet hva ARC gjør for deg.
Du kan lese mer om minnehåndtering i The Objective-C Programming Language guide, og jeg anbefaler på det sterkeste at du gjør.
Stiftelsen rammeverket eller Foundation er en annen viktig rammeverk for iOS og OS X-programmer. I neste artikkel vil vi utforske dette rammeverket i mer detalj. Stiftelsen rammeverket er mer enn en samling av nyttige klasser, for eksempel NSArray, NSDictionary, og NSDate.
Foundation gir NSObject root klassen, noe som gir en grunnleggende grensesnitt til Objective-C runtime, og det også introduserer flere paradigmer, som reglene for objektet eierskap. Som Kjerne Foundation (se nedenfor), gjør det mulig Foundation for de ulike biblioteker og rammeverk for enkelt å dele data og kode.
En annen viktig rammen av Core Services lag og nært knyttet til stiftelsen rammeverket er C- baserte Core-stiftelsen rammeverk eller Core Foundation. Som Foundation rammeverk, gjør det de forskjellige bibliotekene og rammeverk for å dele data og kode.
Kjerne Foundation har en funksjon kalt toll-free bygge bro, som gjør det mulig substitusjon av Cocoa objekter for Kjerne Foundation objekter i funksjon parametere og vice versa.
For en fullstendig liste over alle rammene av Core Services laget, vil jeg gjerne referere til iOS Technology Oversikt guide.
Kjerne OS Layer Anmeldelser
Det meste av funksjonaliteten som tilbys av de tre høyere nivå lagene er bygget på Core OS laget og lavt nivå funksjoner. The Core OS laget gir en håndfull av rammer som programmet kan bruke direkte, slik som fart og Sikkerhetsrådet rammer.
The Core OS laget innkapsler også kjernen miljø og lavt nivå UNIX grensesnitt som programmet har ingen tilgang av sikkerhetsmessige årsaker. Men gjennom libSystem biblioteket, som er C-baserte, kan nås mange lavt nivå funksjoner direkte, for eksempel BSD stikkontakter, POSIX tråder, og DNS-tjenester.
Dokumentasjon
Din nærmeste allierte ved utvikling av innfødte iOS-applikasjoner er den dokumentasjonen som følger med iOS SDK. For det meste, er dokumentasjonen enestående, og det vil hjelpe deg å få fart på karrieren med en ny teknologi eller rammeverk med liten innsats.
Selv om dokumentasjonen er tilgjengelig på nettet, de fleste utviklere bruke nettleseren dokumentasjonen som er inkludert i Xcode. I Xcode 5, kan du finne nettleseren dokumentasjon ved å velge Dokumentasjon og API Reference
fra Xcode Vindu
menyen.
Siden du skal bruke dokumentasjonen omfattende, du ønsker kanskje å lære noen snarveier for å finne det du leter etter i dokumentasjonen. Som jeg nevnte i forrige avsnitt, gir leseren dokumentasjon enkel tilgang til dokumentasjon. Du får raskt tilgang til dokumentasjon, trykker du Shift + Command + 0 i Xcode 5.
Mens du skriver kode i Xcode kode editor, kan det fort bli tungvint å bytte frem og tilbake mellom koden redaktør og leserdokumentasjon hver gang du trenger å slå opp en klasse eller metode.
Det er to løsninger for effektivt å surfe på dokumentasjon. Når du plasserer markøren på en klasse eller metode navn i Xcode kode editor, Quick Help Inspektør i høyre sidebar viser en oppsummering av den respektive klassen eller metoden. Sammendraget inneholder flere nyttige linker som tar deg til nettleseren dokumentasjon.
Fordi jeg vanligvis skjule høyre sidebar når jeg jobber i koden editor, jeg bruke en alternativ metode for å vise dokumentasjonen av en klasse eller metode. Når du trykker på Tilvalg-tasten og hold den over en klasse eller metode navn, er de pekere endres til et spørsmålstegn og klassen eller metoden navn uthevet. Ved å klikke på en klasse eller metode navn med spørsmålstegn, kommer et nytt vindu opp som inneholder det samme sammendraget som Hurtighjelp Inspector. Ved å klikke på en av koblingene i vinduet tar deg til nettleseren dokumentasjon. Dette er en rask og enkel måte å bytte mellom koden redaktør og leserdokumentasjon, spesielt når du arbeider med to skjermer.
Konklusjon
Du skal nå ha en god forståelse av iOS SDK og de ulike lagene i iOS arkitektur. De to sentrale rammene av en iOS-applikasjon, UIKit og Foundation, er fokus for de to neste avdrag av denne serien.
Ikke bare er disse rammene uunnværlig for alle iOS-programmet, de inneholder dusinvis av klasser som du vil finne deg selv bruker ofte ved utvikling av innfødte iOS-applikasjoner.