IOS 5 Arkitektur Og SDK Rammeverk

Forrige Innholdsfortegnelse Neste
historien om iOS Bli Med I Utviklingsprogrammet For Apple iOS 5

Lær SwiftUI Og ta iOS Utvikling Til Neste Nivå
SwiftUI Essentials – iOS 14 Edition book er nå tilgjengelig I Print ($39.99) og eBook ($29.99) utgaver. Lær mer…

Kjøp Print  Forhåndsvisning Bok

Når Vi utvikler apper for iPad, Tillater Ikke Apple oss direkte tilgang til noe av denne maskinvaren. Faktisk foregår all maskinvareinteraksjon utelukkende gjennom en rekke forskjellige lag av programvare som fungerer som mellommenn mellom applikasjonskoden og enhetens maskinvare. Disse lagene utgjør det som kalles et operativsystem. I tilfelle av iPad er dette operativsystemet kjent som iOS.

for å få en bedre forståelse av iPad utviklingsmiljø, dette kapittelet vil se i detalj på de ulike lagene som utgjør iOS 5 operativsystem og rammer som tillater oss, som utviklere, å skrive iPad-programmer.

Innhold

iPhone OS blir iOS

Før utgivelsen av iPad i 2010, operativsystemet som kjører på iPhone ble generelt referert til som iPhone OS. Gitt at operativsystemet som brukes til iPad, er i hovedsak det samme som på iPhone, gjorde det ikke mye fornuftig å nevne det iPad OS. I stedet bestemte Apple Seg for å vedta et mer generisk og ikke-enhetsspesifikt navn for operativsystemet. Gitt Apples predileksjon for navn prefixed med bokstaven ‘ jeg ‘ (iTunes, iBookstore, iMac etc) var det logiske valget selvfølgelig iOS. Dessverre er iOS også Navnet Som Brukes Av Cisco for operativsystemet på sine rutere (Apple synes det også har en forkjærlighet for å ignorere varemerker). Når du utfører et internett-søk etter iOS, vær derfor forberedt på å se et stort antall resultater For Ciscos iOS som ikke har noe å gjøre med Apples iOS.

En Oversikt over iOS 5-Arkitekturen

som tidligere nevnt består iOS av en rekke forskjellige programvarelag, som hver gir programmeringsrammer for utvikling av applikasjoner som kjører på toppen av den underliggende maskinvaren.

disse operativsystemlagene kan presenteres skjematisk som illustrert I Figur 4-1:

arkitekturen til iOS 5

Figur 4-1

noen diagrammer som er utformet for å grafisk skildre iOS-programvarestakken, viser en ekstra boks plassert over Cocoa Touch-laget for å indikere programmene som kjører på enheten. I diagrammet ovenfor har vi ikke gjort det, siden dette vil tyde på at det eneste grensesnittet som er tilgjengelig for appen, Er Cocoa Touch. I praksis kan en app direkte ringe ned noen av lagene i stabelen for å utføre oppgaver på den fysiske enheten.

når det er sagt, gir hvert operativsystemlag imidlertid et økende abstraksjonsnivå vekk fra kompleksiteten ved å jobbe med maskinvaren. Som iOS-utvikler bør du derfor alltid se etter løsninger på programmeringsmålene dine i rammene som ligger i iOS-lagene på høyere nivå før du tar til å skrive kode som når ned til lagene på lavere nivå. Generelt, jo høyere lag du programmerer til, desto mindre innsats og færre linjer med kode må du skrive for å nå målet ditt. Og som enhver veteranprogrammerer vil fortelle deg, jo mindre kode du må skrive, desto mindre mulighet har du til å introdusere feil.

Nå som vi har identifisert de ulike lagene som utgjør iOS 5, kan vi nå se nærmere på tjenestene som tilbys av hvert lag og de tilsvarende rammene som gjør disse tjenestene tilgjengelige for oss som applikasjonsutviklere.

Cocoa Touch Layer

Cocoa Touch layer sitter øverst i iOS-stakken og inneholder rammene som oftest brukes av iPad-applikasjonsutviklere. Cocoa Touch er primært skrevet I Objective-C, er basert på standard Mac OS X Cocoa API (som finnes På Apple stasjonære og bærbare datamaskiner) og har blitt utvidet og modifisert for å møte behovene til iPad maskinvare.

Cocoa Touch laget gir følgende rammer for iPad app utvikling:

UIKit Rammeverk (UIKit.rammeverk)

UIKit framework er et stort Og funksjonsrikt Objektiv-C – basert programmeringsgrensesnitt. Det er uten tvil rammen som du vil tilbringe mesteparten av tiden din på. Hele bøker kan, og sannsynligvis vil, bli skrevet om UIKit-rammen alene. Noen av hovedtrekkene Til UIKit er som følger:

  • Opprettelse Og administrasjon av brukergrensesnitt (tekstfelt, knapper, etiketter, farger, skrifttyper osv.)
  • administrasjon av programlivssyklus
  • håndtering Av Programhendelser (f. eks. berøringsskjerm brukerinteraksjon)
  • Multitasking
  • Trådløs Utskrift
  • databeskyttelse via kryptering
  • Klipp ut, kopier og lim inn funksjonalitet
  • presentasjon og administrasjon Av web-og tekstinnhold
  • datahåndtering
  • inter-application integration
  • push notification i forbindelse med push notification service
  • Lokale Varsler (En Mekanisme Der Et Program Som Kjører I Bakgrunnen Kan Få Brukerens Oppmerksomhet)
  • tilgjengelighet
  • akselerometer, batteri, nærhetssensor, kamera og bildebibliotek interaksjon
  • berøringsskjerm gest anerkjennelse
  • Fildeling (muligheten til å gjøre programfiler som er lagret på enheten tilgjengelig via iTunes)
  • Blå tann basert peer to peer-tilkobling mellom enheter
  • Tilkobling til eksterne skjermer

for å få en følelse for rikdom av dette rammeverket er det verdt å bruke litt tid på å bla Apples uikit referansemateriale som er tilgjengelig online på:

http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UIKit_Framework/index.html

Kart Kit Rammeverk (MapKit.framework)

hvis du har brukt noen nevneverdig tid med en iPad så sjansene er du har behov for å bruke Kart-programmet mer enn en gang, enten for å få et kart over et bestemt område eller for å generere veibeskrivelser for å få deg til det tiltenkte målet. Map Kit framework gir et programmeringsgrensesnitt som lar deg bygge kartbaserte evner i dine egne applikasjoner. Dette gjør at du blant annet kan vise rullbare kart for ethvert sted, vise kartet som svarer til enhetens nåværende geografiske plassering og annotere kartet på en rekke måter.

Push Notification Service

Push Notification Service lar programmer varsle brukere om en hendelse selv når programmet ikke kjører på enheten. Siden introduksjonen av denne tjenesten har den oftest blitt brukt av nyhetsbaserte applikasjoner. Vanligvis når det er breaking news tjenesten vil generere en melding på enheten med nyhetsoverskrift og gi brukeren muligheten til å laste den tilsvarende nyheter app for å lese flere detaljer. Dette varselet er vanligvis ledsaget av en lyd varsel og vibrasjon av enheten. Denne funksjonen bør brukes sparsomt for å unngå å irritere brukeren med hyppige avbrudd.

Melding UI Rammeverk (MessageUI.framework)

Message UI framework inneholder alt du trenger for å tillate brukere å skrive og sende e-postmeldinger fra programmet. Faktisk gir rammen selv brukergrensesnittelementene som brukeren går inn i e-postadresseringsinformasjonen og meldingsinnholdet. Alternativt kan denne informasjonen være forhåndsdefinert i programmet og deretter vises for brukeren å redigere og godkjenne før sending.

Adressebok UI Rammeverk(AddressUI.framework)

Gitt at en viktig funksjon av iPad er som en kommunikasjonsenhet og digital assistent det bør ikke komme så mye av en overraskelse at en hel rammeverk er dedikert til integrering av adresseboken data i dine egne applikasjoner. Hovedformålet med rammeverket er å gjøre det mulig for deg å få tilgang til, vise, redigere og legge inn kontaktinformasjon fra iPad adressebok fra din egen søknad.

Spill Kit Rammeverk (GameKit.framework)

Game Kit-rammeverket gir peer-to-peer-tilkobling og talekommunikasjon mellom flere enheter og brukere, slik at de som kjører samme app, kan samhandle. Når denne funksjonen først ble introdusert, var Det forventet Av Apple at Den primært ville bli brukt i multi-player spill (dermed valg av navn), men de mulige applikasjonene for denne funksjonen strekker seg klart langt utover spillutvikling.

Iad Rammeverk (iAd.framework)

formålet med Iad Framework er å tillate utviklere å inkludere bannerannonsering i sine applikasjoner. Alle annonser serveres Av Apples egen annonsetjeneste.

Event Kit UI Framework

Event Kit UI framework ble introdusert i iOS 4 og er gitt for å tillate kalenderhendelser som skal åpnes og redigeres fra et program.

Kontoer Rammeverk (Kontoer.rammeverk)

iOS 5 introduserer begrepet systemkontoer. Disse tillater i hovedsak kontoinformasjonen for andre tjenester som skal lagres på iOS-enheten og nås fra applikasjonskoden. For tiden er systemkontoer begrenset Til Twitter-kontoer, selv om andre tjenester Som Facebook vil trolig vises i fremtidige iOS-utgivelser. Formålet Med Accounts Framework er å gi EN API som tillater applikasjoner å få tilgang til og administrere disse systemkontoene.

Twitter Rammeverk (Twitter.framework)

Twitter Framework lar Twitter integrasjon for å bli lagt til programmer. Rammeverket opererer sammen Med Accounts Framework for å få tilgang til brukerens Twitter-kontoinformasjon.

iOS Media Layer

Medielagets rolle er å gi iOS lyd -, video -, animasjon-og grafikkfunksjoner. Som med de andre lagene som består av iOS-stakken, Består Medielaget av en rekke rammer som kan benyttes når man utvikler iPad-apper. I denne delen vil vi se på hver enkelt i sin tur.

Kjerne Video Rammeverk (CoreVideo.framework)

Core Video Framework gir bufferstøtte for Core Media framework. Selv om dette kan benyttes av programutviklere er det vanligvis ikke nødvendig å bruke dette rammeverket.

Kjerne Tekst Rammeverk (CoreText.framework)

iOS Core Text framework er en c-basert API designet for å lette håndteringen av avanserte tekst layout og skrift rendering krav.

Bilde I/O Rammeverk (ImageIO.framework)

Image I/O framework, hvis formål er å lette import og eksport av bildedata og bildemetadata, ble introdusert i iOS 4. Rammen støtter et bredt spekter av bildeformater, inkludert PNG, JPEG, TIFF og GIF.

Ressurser Bibliotek Rammeverk (AssetsLibrary.framework)

Aktivabiblioteket gir en mekanisme for å finne og hente video-og bildefiler som ligger på iPad-enheten. I tillegg til å få tilgang til eksisterende bilder og videoer, gjør dette rammeverket også nye bilder og videoer som skal lagres i standard enhet fotoalbum.

Kjerne Grafikk Rammeverk (CoreGraphics.framework)

iOS Core Graphics Framework (ellers kjent som Quartz 2D API) gir en lett todimensjonal gjengivelsesmotor. Funksjoner i dette rammeverket inkluderer PDF-dokumentopprettelse og presentasjon, vektorbasert tegning, gjennomsiktige lag, banebasert tegning, anti-aliased rendering, fargemanipulering og administrasjon, bildegjengivelse og gradienter. De som er kjent Med Quartz 2D API som kjører På MacOS X, vil gjerne vite at implementeringen av DENNE API-EN er den samme på iOS.

Kjerne Bilde Rammeverk (CoreImage.rammeverk)

et nytt rammeverk introdusert med iOS 5 som gir et sett med video-og bildefiltrering og manipulasjonsfunksjoner for applikasjonsutviklere.

Kvarts Kjerne Rammeverk (QuartzCore.framework)

formålet Med Quartz Core framework er å gi animasjonsfunksjoner på iPad. Det gir grunnlaget for de fleste av de visuelle effekter og animasjon som brukes Av UIKit rammeverk og gir En Objective-C basert programmeringsgrensesnitt for etablering av spesialisert animasjon innen iPad apps.

opengl es rammeverk (OpenGLES.rammeverk)

i mange år har industristandarden For HØY ytelse 2d og 3d grafikk tegning Vært OpenGL. Opprinnelig utviklet Av Det nå nedlagte Silicon Graphics, Inc (SGI) på 1990-tallet i FORM AV GL, er den åpne versjonen av Denne teknologien (OpenGL) nå under omsorg av et non-profit konsortium bestående av En rekke store selskaper, inkludert Apple, Inc. Intel, Motorola Og ARM Holdings.

OpenGL For Embedded Systems (ES) Er en lett versjon Av Den fulle OpenGL-spesifikasjonen designet spesielt for mindre enheter som iPad.

iOS 3 eller nyere støtter Både OpenGL ES 1.1 OG 2.0 på enkelte iPhone-modeller (for eksempel iPhone 3gs og iPhone 4). Tidligere versjoner av iOS og eldre enhetsmodeller støtter Bare OpenGL ES versjon 1.1.

GLKit Rammeverk (GLKit.framework)

GLKit framework er En Objective-C – BASERT API designet for å lette oppgaven med å lage OpenGL ES-baserte applikasjoner.

Newsstandkit Rammeverk (NewsstandKit.framework)

Aviskiosk-programmet er en ny funksjon i iOS 5 og er ment som et sentralt sted for brukere å få tilgang til aviser og blader. NewsstandKit-rammeverket gir mulighet for utvikling av applikasjoner som bruker denne nye tjenesten.

iOS Lydstøtte

iOS er i stand til å støtte lyd i aac, Apple Lossless (Alac), a-law, IMA/ADPCM, lineær PCM, µ-law, DVI/Intel IMA ADPCM, Microsoft gsm 6.10 og Aes3-2003 formater gjennom støtte gitt av følgende rammer.

Av Fundament rammeverk (AVFoundation.rammeverk)

Et Objective-C – basert rammeverk designet for å tillate avspilling, opptak og styring av lydinnhold.

Kjerne Lyd Rammer(CoreAudio.rammeverk, AudioToolbox.rammeverk og AudioUnit.rammeverk)

rammene som utgjør Core Audio for iOS definerer støttede lydtyper, avspilling og opptak av lydfiler og strømmer, og gir også tilgang til enhetens innebygde lydbehandlingsenheter.

Open Audio Library (OpenAL)

OpenAL Er en kryssplattformsteknologi som brukes til å gi høykvalitets 3d-lydeffekter (også referert til som posisjonslyd). Posisjonell lyd kan brukes i en rekke applikasjoner, men brukes vanligvis til å gi lydeffekter i spill.

Media Player Rammeverk (MediaPlayer.framework)

iOS Media Player framework er i stand til å spille av video i .mov, .mp4, .m4v og .3gp-formater på en rekke komprimeringsstandarder, oppløsninger og bildefrekvenser.

Kjerne Midi Rammeverk (CoreMIDI.framework)

Introdusert i iOS 4, Core MIDI framework gir EN API for programmer til å samhandle MED MIDI-kompatible enheter som synthesizere og keyboard via iPad ‘ s dock-kontakt.

iOS Core Services Layer

iOS Core Services layer gir mye av grunnlaget som de tidligere refererte lagene er bygget på og består av følgende rammer.

Adressebok Rammeverk (Adressebok.framework)

Adressebokrammeverket gir programmatisk tilgang til kontaktdatabasen for iPad-Adresseboken, slik at applikasjoner kan hente og endre kontaktoppføringer.

CFNetwork-Rammeverk (CFNetwork.framework)

CFNetwork framework gir Et C-basert grensesnitt TIL TCP / IP – nettverksprotokollstakken og lavt nivå tilgang TIL BSD-kontakter. Dette gjør det mulig å skrive programkode som fungerer MED HTTP -, FTP-og Domenenavnservere og for å etablere sikre og krypterte tilkoblinger ved Hjelp Av Secure Sockets Layer (SSL) eller Transport Layer Security (Tls).

Kjernedataramme (CoreData.framework)

dette rammeverket er gitt for å lette etableringen av datamodellering og lagring I Model-View-Controller (Mvc) baserte applikasjoner. Bruk Av Core data framework reduserer mengden kode som må skrives for å utføre vanlige oppgaver når du arbeider med strukturerte data i et program.

Kjerne Fundament Rammeverk (CoreFoundation.rammeverk)

Core Foundation framework er Et C-basert Rammeverk som gir grunnleggende funksjonalitet som datatyper, strengmanipulering, råblokkdatahåndtering, URL-manipulering, tråder og løpsløkker, dato og klokkeslett, grunnleggende XML-manipulasjon og port-og socket-kommunikasjon. Ekstra XML evner utover de som følger med dette rammeverket er gitt via libXML2 bibliotek. Selv om dette Er Et C-basert grensesnitt, er de fleste av egenskapene Til Core Foundation framework også tilgjengelige Med Objective-C wrappers via Foundation Framework.

Kjerne Media Rammeverk (CoreMedia.framework)

Kjernen Media rammeverket er lavere nivå grunnlaget som AV Foundation laget er bygget. Mens de fleste lyd-og videooppgaver kan, og faktisk bør, utføres ved hjelp av higher level Av Foundation framework, er tilgang også gitt for situasjoner der lavere nivåkontroll kreves av iOS-applikasjonsutvikleren.

Kjerne Telefoni Rammeverk (CoreTelephony.framework)

iOS Core Telephony framework er gitt for å tillate applikasjoner å forhøre enheten for informasjon om den nåværende mobiltelefonleverandøren og motta varsel om telefonirelaterte hendelser.

EventKit-Rammeverk (EventKit.framework)

EN API designet for å gi applikasjoner tilgang til kalenderen og alarmer på enheten.

Fundament Rammeverk (Fundament.rammeverk)

Foundation framework er standard Objective-C rammeverk som vil være kjent for de som har programmert I Objective-C på andre plattformer (mest sannsynlig Mac OS X). I hovedsak består dette Av Objective-C wrappers rundt mye Av C-baserte Core Foundation Rammeverk.

Kjerne Plassering Rammeverk (CoreLocation.framework)

Core Location framework lar deg få den nåværende geografiske plasseringen av enheten (breddegrad, lengdegrad og høyde) og kompass målinger fra med dine egne applikasjoner. Metoden som brukes av enheten for å gi koordinater, avhenger av dataene som er tilgjengelige på det tidspunktet informasjonen blir bedt om, og maskinvarestøtten fra den aktuelle iPad-modellen som appen kjører PÅ (GPS og kompass er bare omtalt på nyere modeller). Dette vil enten være BASERT PÅ GPS-avlesninger, Wi-Fi-nettverksdata eller celletårn triangulering (eller en kombinasjon av de tre).

Rammeverk For Mobile Kjernetjenester (MobileCoreServices.framework)

iOS Mobile Core Services framework gir grunnlaget For Apples Uti-mekanisme (Uniform Type Identifiers), et system for å spesifisere og identifisere datatyper. Et stort utvalg av forhåndsdefinerte identifikatorer er definert Av Apple, inkludert så forskjellige datatyper som tekst, RTF, HTML, JavaScript, PowerPoint .Ppt-filer, PhotoShop-bilder og MP3-filer.

Lagre Sett Rammeverk (StoreKit.rammeverk)

Formålet Med Store Kit-rammeverket er å legge til rette for handelstransaksjoner mellom applikasjonen din og Apple App Store. Før versjon 3.0 av iOS var det bare mulig å belaste en kunde for en app da De kjøpte den fra App Store. iOS 3.0 introduserte begrepet «in app purchase» der brukeren kan få muligheten til å foreta ytterligere betalinger fra programmet. Dette kan for eksempel innebære å implementere en abonnementsmodell for et program, kjøpe ekstra funksjonalitet eller til og med kjøpe en raskere bil for deg å kjøre i et racingspill.

SQLite library

Tillater en lett, SQL basert database som skal opprettes og manipuleres fra din iPad søknad.

Systemkonfigurasjon (Systemkonfigurasjon.framework)

Systemkonfigurasjonsrammeverket gir applikasjoner tilgang til enhetens nettverkskonfigurasjonsinnstillinger for å etablere informasjon om enhetens «reachability» (for eksempel Om Wi-Fi eller celletilkobling er aktiv og om og hvordan trafikk kan rutes til en server).

Raskt Utseende Rammeverk (QuickLook.framework)

Quick Look framework gir en nyttig mekanisme for å vise forhåndsvisninger av innholdet i filtyper lastet inn på enheten (vanligvis via en internett-eller nettverkstilkobling) som programmet ikke allerede gir støtte. Filtyper som støttes av dette rammeverket inkluderer Iwork, Microsoft Office-dokument, Rikt Tekstformat, Adobe PDF, Bildefiler, offentlig.tekstfiler og kommaseparert (CSV).

iOS Core OS Layer

Core OS-Laget opptar bunnposisjonen til iOS-stakken og sitter derfor direkte på toppen av enhetens maskinvare. Laget tilbyr en rekke tjenester, inkludert lavt nettverk, tilgang til eksternt tilbehør og de vanlige grunnleggende operativsystemtjenestene som minnehåndtering, filsystemhåndtering og tråder.

Akselerere Rammeverk (Akselerere.framework)

Accelerate Framework gir en maskinvareoptimalisert C-basert API for å utføre komplekse og store tallmath, vektor, digital signal processing (DSP) og bildebehandlingsoppgaver og beregninger.

Eksternt Tilbehørsramme (ExternalAccessory.framework)

Gir muligheten til å forhøre og kommunisere med eksternt tilbehør som er fysisk koblet til iPad via 30-pinners dock-kontakt eller trådløst Via Bluetooth.

Sikkerhetsrammeverk (Sikkerhet.framework)

iOS Security framework gir alle sikkerhetsgrensesnittene du forventer å finne på en enhet som kan koble til eksterne nettverk, inkludert sertifikater, offentlige og private nøkler, klareringspolicyer, nøkkelringer, kryptering, fordøyinger og HASH-basert Meldingsgodkjenningskode (HMAC).

System (LibSystem)

som vi tidligere har nevnt, er iOS bygget PÅ ET UNIX – lignende fundament. Systemkomponenten I Core OS-Laget gir mye samme funksjonalitet som alle ANDRE UNIX-lignende operativsystemer. Dette laget inkluderer operativsystemkjernen (basert På mach-kjernen utviklet av Carnegie Mellon University) og enhetsdrivere. Kjernen er grunnlaget som hele iOS-plattformen er bygget på og gir lavt nivå grensesnitt til den underliggende maskinvaren. Kjernen er blant annet ansvarlig for minneallokering, prosesslivssyklusadministrasjon,input / output, interprosesskommunikasjon, trådstyring, lavt nivå nettverk, filsystemtilgang og trådstyring.

som apputvikler er tilgangen til systemgrensesnittene begrenset av sikkerhets-og stabilitetshensyn. De grensesnittene som er tilgjengelige for deg, finnes i Et C-basert bibliotek kalt LibSystem. Som med alle andre lag i iOS stabelen, disse grensesnittene bør bare brukes når du er helt sikker på det er ingen måte å oppnå samme mål ved hjelp av et rammeverk ligger i en høyere iOS lag.

Lær SwiftUI Og ta iOS Utvikling Til Neste Nivå
SwiftUI Essentials – iOS 14 Edition book er nå tilgjengelig I Print ($39.99) og eBook ($29.99) utgaver. Lær mer…

Kjøp Print  Forhåndsvisning Bok

Forrige Innholdsfortegnelse Neste
historien om iOS Bli Med I Utviklingsprogrammet For Apple iOS 5

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert.