Precedente | Sommario | Avanti |
La Storia di iOS | Entrare in Apple iOS 5 Developer Program |
Imparare SwiftUI e prendere di Sviluppo iOS per il Livello Successivo
SwiftUI Essentials – iOS 14 Edizione del libro è ora disponibile per la Stampa (39,99 dollari) e eBook ($29.99) edizioni. Per saperne di più…
Quando sviluppiamo app per iPad, Apple non ci consente l’accesso diretto a nessuno di questi hardware. Infatti, tutta l’interazione hardware avviene esclusivamente attraverso una serie di diversi strati di software che fungono da intermediari tra il codice dell’applicazione e l’hardware del dispositivo. Questi strati costituiscono ciò che è noto come un sistema operativo. Nel caso dell’iPad, questo sistema operativo è noto come iOS.
Al fine di ottenere una migliore comprensione dell’ambiente di sviluppo iPad, questo capitolo esaminerà in dettaglio i diversi livelli che compongono il sistema operativo iOS 5 e i framework che ci permettono, come sviluppatori, di scrivere applicazioni iPad.
- iPhone OS diventa iOS
- Una panoramica dell’architettura iOS 5
- Il livello Cocoa Touch
- Uikit Framework (UIKit.framework)
- Map Kit Framework (MapKit.framework)
- Servizio di notifica push
- Message UI Framework (MessageUI.framework)
- Quadro dell’interfaccia utente della rubrica (AddressUI.quadro)
- Quadro Kit di gioco (GameKit.framework)
- Quadro iAd (iAd.framework)
- Event Kit UI Framework
- Quadro Conti (Conti.framework)
- Cinguettio Quadro (Cinguettio.framework)
- Il livello multimediale iOS
- Core Video Framework (CoreVideo.framework)
- Core Text Framework (CoreText.framework)
- Immagine I/O Quadro (ImageIO.framework)
- Struttura della libreria delle risorse (AssetsLibrary.framework)
- Core Graphics Framework (CoreGraphics.framework)
- Core Image Framework (CoreImage.framework)
- Struttura del nucleo di quarzo (Quarzcore.framework)
- Struttura OpenGL ES (OpenGLES.framework)
- Quadro GLKit (GLKit.framework)
- Quadro NewsstandKit (NewsstandKit.framework)
- Supporto audio iOS
- AV Fondazione quadro (AVFoundation.framework)
- Core Audio Frameworks (CoreAudio.quadro, AudioToolbox.quadro e AudioUnit.framework)
- Open Audio Library (OpenAL)
- Quadro Lettore multimediale (MediaPlayer.framework)
- Core Midi Framework (CoreMIDI.framework)
- Il livello dei servizi core iOS
- Quadro della rubrica (AddressBook.framework)
- CFNetwork Framework (CFNetwork.framework)
- Core Data Framework (CoreData.framework)
- Quadro di base della Fondazione (CoreFoundation.framework)
- Core Media Framework (CoreMedia.framework)
- Quadro di telefonia di base (CoreTelephony.framework)
- Framework EventKit (EventKit.framework)
- Quadro della Fondazione (Fondazione.framework)
- Core Location Framework (CoreLocation.framework)
- Mobile Core Services Framework (MobileCoreServices.framework)
- Negozio Kit Quadro (StoreKit.framework)
- Libreria SQLite
- Framework di configurazione del sistema (SystemConfiguration.framework)
- Quadro Sguardo rapido (QuickLook.framework)
- Il livello iOS Core OS
- Accelerare Quadro (Accelerare.framework)
- Quadro accessorio esterno (ExternalAccessory.framework)
- Quadro di sicurezza (Sicurezza.framework)
- Sistema (LibSystem)
iPhone OS diventa iOS
Prima del rilascio del iPad nel 2010, il sistema operativo in esecuzione su iPhone è generalmente indicato come iPhone OS. Dato che il sistema operativo utilizzato per l’iPad è essenzialmente lo stesso di quello su iPhone non aveva molto senso chiamarlo iPad OS. Invece, Apple ha deciso di adottare un nome più generico e non specifico del dispositivo per il sistema operativo. Data la predilezione di Apple per i nomi preceduti dalla lettera ‘ i ‘ (iTunes, iBookstore, iMac ecc.) la scelta logica è stata, ovviamente, iOS. Purtroppo, iOS è anche il nome utilizzato da Cisco per il sistema operativo sui suoi router (Apple, a quanto pare, ha anche una predilezione per ignorare i marchi). Quando si esegue una ricerca su Internet per iOS, quindi, essere pronti a vedere un gran numero di risultati per iOS di Cisco che non hanno assolutamente nulla a che fare con iOS di Apple.
Una panoramica dell’architettura iOS 5
Come accennato in precedenza, iOS è costituito da una serie di diversi livelli software, ognuno dei quali fornisce framework di programmazione per lo sviluppo di applicazioni che girano sopra l’hardware sottostante.
Questi livelli del sistema operativo possono essere presentati schematicamente come illustrato in Figura 4-1:
Figura 4-1
Alcuni diagrammi progettati per rappresentare graficamente lo stack software iOS mostrano una casella aggiuntiva posizionata sopra il livello Cocoa Touch per indicare le applicazioni in esecuzione sul dispositivo. Nel diagramma sopra non l’abbiamo fatto poiché ciò suggerirebbe che l’unica interfaccia disponibile per l’app è Cocoa Touch. In pratica, un’app può richiamare direttamente uno qualsiasi dei livelli dello stack per eseguire attività sul dispositivo fisico.
Detto questo, tuttavia, ogni livello del sistema operativo fornisce un livello crescente di astrazione lontano dalla complessità di lavorare con l’hardware. Come sviluppatore iOS dovresti, quindi, cercare sempre soluzioni ai tuoi obiettivi di programmazione nei framework situati nei livelli iOS di livello superiore prima di ricorrere alla scrittura di codice che raggiunge i livelli di livello inferiore. In generale, più alto è il livello di livello a cui si programma, minore è lo sforzo e meno righe di codice che si dovrà scrivere per raggiungere il proprio obiettivo. E come ogni programmatore veterano ti dirà, meno codice devi scrivere meno opportunità hai di introdurre bug.
Ora che abbiamo identificato i vari livelli che compongono iOS 5, possiamo ora guardare più in dettaglio i servizi forniti da ciascun livello e i framework corrispondenti che rendono tali servizi disponibili per noi come sviluppatori di applicazioni.
Il livello Cocoa Touch
Il livello Cocoa Touch si trova nella parte superiore dello stack iOS e contiene i framework più comunemente utilizzati dagli sviluppatori di applicazioni iPad. Cocoa Touch è scritto principalmente in Objective-C, si basa sullo standard Mac OS X Cocoa API (come si trova su computer desktop e laptop Apple) ed è stato esteso e modificato per soddisfare le esigenze dell’hardware iPad.
Il Cocoa Touch layer fornisce i seguenti framework per lo sviluppo di app per iPad:
Uikit Framework (UIKit.framework)
Il framework UIKit è un’interfaccia di programmazione basata su Objective-C ampia e ricca di funzionalità. È, senza dubbio, il quadro con cui trascorrerai la maggior parte del tuo tempo a lavorare. Interi libri potrebbero, e probabilmente lo faranno, essere scritti solo sul framework UIKit. Alcune delle caratteristiche chiave di UIKit sono le seguenti:
- Creazione e gestione dell’interfaccia utente (campi di testo, pulsanti, etichette, colori, font, ecc.)
- Gestione del ciclo di vita dell’applicazione
- Gestione degli eventi dell’applicazione (ad es. schermo di tocco di interazione con l’utente)
- Multitasking
- la Stampa Wireless
- protezione dei Dati tramite crittografia
- Tagliare, copiare, e incolla
- Web e il contenuto del testo di presentazione e di gestione
- Inter-integrazione delle applicazioni
- notifiche Push in collaborazione con il Servizio di Notifiche Push
- notifiche Locali (un meccanismo per cui un’applicazione in esecuzione in background può ottenere l’attenzione dell’utente)
- Accessibilità
- Accelerometro, la batteria, il sensore di prossimità, fotocamera e le foto della libreria di interazione
- Touch screen, riconoscimento dei gesti,
- condivisione di File (la capacità di fare applicazione i file memorizzati sul dispositivo tramite iTunes)
- Blue tooth base di peer to peer di connettività tra i dispositivi
- Connessione a display esterni
gestione
per ottenere un tatto per la ricchezza di questo quadro è la pena di spendere un po ‘ di tempo di navigazione di Apple UIKit materiale di riferimento che è disponibile online all’:
http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UIKit_Framework/index.html
Map Kit Framework (MapKit.framework)
Se hai trascorso del tempo apprezzabile con un iPad, è probabile che tu abbia bisogno di utilizzare l’applicazione Maps più di una volta, per ottenere una mappa di un’area specifica o per generare indicazioni stradali per raggiungere la destinazione prevista. Il framework Map Kit fornisce un’interfaccia di programmazione che consente di creare funzionalità basate su mappe nelle proprie applicazioni. Ciò consente, tra le altre cose, di visualizzare mappe scorrevoli per qualsiasi posizione, visualizzare la mappa corrispondente alla posizione geografica corrente del dispositivo e annotare la mappa in una varietà di modi.
Servizio di notifica push
Il servizio di notifica push consente alle applicazioni di notificare agli utenti un evento anche quando l’applicazione non è attualmente in esecuzione sul dispositivo. Dall’introduzione di questo servizio è stato più comunemente utilizzato dalle applicazioni basate su notizie. In genere, quando ci sono ultime notizie, il servizio genererà un messaggio sul dispositivo con il titolo delle notizie e fornirà all’utente la possibilità di caricare l’app di notizie corrispondente per leggere maggiori dettagli. Questo avviso è in genere accompagnato da un avviso audio e vibrazione del dispositivo. Questa funzione dovrebbe essere usata con parsimonia per evitare di infastidire l’utente con frequenti interruzioni.
Message UI Framework (MessageUI.framework)
Il framework Message UI fornisce tutto il necessario per consentire agli utenti di comporre e inviare messaggi e-mail dall’interno dell’applicazione. In effetti, il framework fornisce anche gli elementi dell’interfaccia utente attraverso i quali l’utente inserisce le informazioni di indirizzamento e-mail e il contenuto del messaggio. In alternativa, queste informazioni possono essere predefinite all’interno dell’applicazione e quindi visualizzate per consentire all’utente di modificare e approvare prima dell’invio.
Quadro dell’interfaccia utente della rubrica (AddressUI.quadro)
Dato che una funzione chiave del iPad è come un dispositivo di comunicazione e assistente digitale non dovrebbe venire come troppo di una sorpresa che un intero quadro è dedicato all’integrazione dei dati della rubrica nelle proprie applicazioni. Lo scopo principale del framework è quello di consentire di accedere, visualizzare, modificare e inserire le informazioni di contatto dalla rubrica dell’iPad dall’interno della propria applicazione.
Quadro Kit di gioco (GameKit.framework)
Il framework Game Kit fornisce connettività peer-to-peer e comunicazione vocale tra più dispositivi e utenti consentendo a coloro che eseguono la stessa app di interagire. Quando questa funzionalità è stata introdotta per la prima volta, è stato anticipato da Apple che sarebbe stata utilizzata principalmente nei giochi multi-player (da qui la scelta del nome), ma le possibili applicazioni per questa funzionalità si estendono chiaramente ben oltre lo sviluppo dei giochi.
Quadro iAd (iAd.framework)
Lo scopo del Framework iAd è quello di consentire agli sviluppatori di includere banner pubblicitari all’interno delle loro applicazioni. Tutti gli annunci sono serviti dal servizio di annunci di Apple.
Event Kit UI Framework
Event Kit UI framework è stato introdotto in iOS 4 ed è fornito per consentire l’accesso e la modifica degli eventi del calendario da un’applicazione.
Quadro Conti (Conti.framework)
iOS 5 introduce il concetto di account di sistema. Questi essenzialmente consentono di memorizzare le informazioni dell’account per altri servizi sul dispositivo iOS e di accedervi dal codice dell’applicazione. Attualmente gli account di sistema sono limitati agli account Twitter, anche se altri servizi come Facebook appariranno probabilmente nelle future versioni di iOS. Lo scopo del Framework Accounts è quello di fornire un’API che consenta alle applicazioni di accedere e gestire questi account di sistema.
Cinguettio Quadro (Cinguettio.framework)
Il framework Twitter consente di aggiungere l’integrazione di Twitter alle applicazioni. Il framework opera in congiunzione con il Framework Account per ottenere l’accesso alle informazioni dell’account Twitter dell’utente.
Il livello multimediale iOS
Il ruolo del livello multimediale è quello di fornire a iOS funzionalità audio, video, animazione e grafica. Come con gli altri livelli che compongono lo stack iOS, il livello multimediale comprende una serie di framework che possono essere utilizzati durante lo sviluppo di app per iPad. In questa sezione vedremo ognuno a turno.
Core Video Framework (CoreVideo.framework)
Il Core Video Framework fornisce il supporto di buffering per il Core Media framework. Sebbene questo possa essere utilizzato dagli sviluppatori di applicazioni, in genere non è necessario utilizzare questo framework.
Core Text Framework (CoreText.framework)
Il framework Core Text di iOS è un’API basata su C progettata per facilitare la gestione dei requisiti avanzati di layout del testo e rendering dei font.
Immagine I/O Quadro (ImageIO.framework)
Il framework I/O immagine, il cui scopo è facilitare l’importazione e l’esportazione di dati di immagine e metadati di immagine, è stato introdotto in iOS 4. Il framework supporta una vasta gamma di formati di immagine tra cui PNG, JPEG, TIFF e GIF.
Struttura della libreria delle risorse (AssetsLibrary.framework)
La libreria Assets fornisce un meccanismo per localizzare e recuperare file video e foto presenti sul dispositivo iPad. Oltre ad accedere a immagini e video esistenti, questo framework consente anche di salvare nuove foto e video nell’album fotografico del dispositivo standard.
Core Graphics Framework (CoreGraphics.framework)
Il framework grafico Core iOS (altrimenti noto come Quartz 2D API) fornisce un leggero motore di rendering bidimensionale. Le caratteristiche di questo framework includono la creazione e la presentazione di documenti PDF, il disegno basato su vettori, i livelli trasparenti, il disegno basato su percorsi, il rendering anti-alias, la manipolazione e la gestione del colore, il rendering delle immagini e i gradienti. Coloro che hanno familiarità con l’API Quartz 2D in esecuzione su macOS X saranno lieti di apprendere che l’implementazione di questa API è la stessa su iOS.
Core Image Framework (CoreImage.framework)
Un nuovo framework introdotto con iOS 5 che fornisce una serie di funzionalità di filtraggio e manipolazione di video e immagini per gli sviluppatori di applicazioni.
Struttura del nucleo di quarzo (Quarzcore.framework)
Lo scopo del framework Quartz Core è quello di fornire funzionalità di animazione sull’iPad. Fornisce le basi per la maggior parte degli effetti visivi e delle animazioni utilizzati dal framework UIKit e fornisce un’interfaccia di programmazione basata su Objective-C per la creazione di animazioni specializzate all’interno delle app iPad.
Struttura OpenGL ES (OpenGLES.framework)
Per molti anni lo standard industriale per il disegno grafico 2D e 3D ad alte prestazioni è stato OpenGL. Originariamente sviluppato dalla ormai defunta Silicon Graphics, Inc (SGI) nel corso del 1990 sotto forma di GL, la versione aperta di questa tecnologia (OpenGL) è ora sotto la cura di un consorzio senza scopo di lucro che comprende un certo numero di importanti aziende tra cui Apple, Inc., Intel, Motorola e ARM Holdings.
OpenGL for Embedded Systems (ES) è una versione leggera della specifica OpenGL completa progettata specificamente per dispositivi più piccoli come l’iPad.
iOS 3 o versioni successive supporta sia OpenGL ES 1.1 che 2.0 su alcuni modelli di iPhone (come iPhone 3GS e iPhone 4). Le versioni precedenti di iOS e modelli di dispositivi precedenti supportano solo OpenGL ES versione 1.1.
Quadro GLKit (GLKit.framework)
Il framework GLKit è un’API basata su Objective-C progettata per facilitare il compito di creare applicazioni basate su OpenGL ES.
Quadro NewsstandKit (NewsstandKit.framework)
L’applicazione Edicola è una nuova funzionalità di iOS 5 ed è inteso come una posizione centrale per gli utenti di accedere a giornali e riviste. Il framework NewsstandKit consente lo sviluppo di applicazioni che utilizzano questo nuovo servizio.
Supporto audio iOS
iOS è in grado di supportare audio in formati AAC, Apple Lossless (ALAC), A-law, IMA/ADPCM, PCM lineare, µ-law, DVI/Intel IMA ADPCM, Microsoft GSM 6.10 e AES3-2003 attraverso il supporto fornito dai seguenti framework.
AV Fondazione quadro (AVFoundation.framework)
Un framework basato su Objective-C progettato per consentire la riproduzione, la registrazione e la gestione di contenuti audio.
Core Audio Frameworks (CoreAudio.quadro, AudioToolbox.quadro e AudioUnit.framework)
I framework che comprendono Core Audio per iOS definiscono i tipi audio supportati, la riproduzione e la registrazione di file e flussi audio e forniscono anche l’accesso alle unità di elaborazione audio integrate del dispositivo.
Open Audio Library (OpenAL)
OpenAL è una tecnologia multipiattaforma utilizzata per fornire effetti audio 3D di alta qualità (noti anche come audio posizionale). Audio posizionale può essere utilizzato in una varietà di applicazioni anche se è in genere utilizzato per fornire effetti sonori nei giochi.
Quadro Lettore multimediale (MediaPlayer.framework)
Il framework iOS Media Player è in grado di riprodurre video .mov, .mp4, .m4v, e .formati 3gp a una varietà di standard di compressione, risoluzioni e frame rate.
Core Midi Framework (CoreMIDI.framework)
Introdotto in iOS 4, il Core MIDI framework fornisce un’API per le applicazioni di interagire con dispositivi compatibili MIDI come sintetizzatori e tastiere tramite il connettore dock dell’iPad.
Il livello dei servizi core iOS
Il livello dei servizi core iOS fornisce gran parte delle basi su cui sono costruiti i livelli precedentemente referenziati ed è costituito dai seguenti framework.
Quadro della rubrica (AddressBook.framework)
Il framework della rubrica fornisce l’accesso programmatico al database dei contatti della rubrica dell’iPad, consentendo alle applicazioni di recuperare e modificare le voci dei contatti.
CFNetwork Framework (CFNetwork.framework)
Il framework CFNetwork fornisce un’interfaccia basata su C allo stack di protocollo di rete TCP/IP e un accesso a basso livello ai socket BSD. Ciò consente di scrivere il codice dell’applicazione che funziona con HTTP, FTP e Domain Name server e di stabilire connessioni sicure e crittografate utilizzando Secure Sockets Layer (SSL) o Transport Layer Security (TLS).
Core Data Framework (CoreData.framework)
Questo framework è fornito per facilitare la creazione di modellazione e archiviazione dei dati in applicazioni basate su Model-View-Controller (MVC). L’utilizzo di Core Data framework riduce significativamente la quantità di codice che deve essere scritto per eseguire attività comuni quando si lavora con dati strutturati all’interno di un’applicazione.
Quadro di base della Fondazione (CoreFoundation.framework)
Il framework Core Foundation è un framework basato su C che fornisce funzionalità di base come tipi di dati, manipolazione di stringhe, gestione dei dati di blocchi grezzi, manipolazione di URL, thread e loop di esecuzione, data e ora, manipolazione XML di base e comunicazione di porte e socket. Ulteriori funzionalità XML oltre a quelle incluse in questo framework sono fornite tramite la libreria libXML2. Sebbene questa sia un’interfaccia basata su C, la maggior parte delle funzionalità del framework Foundation Core sono disponibili anche con i wrapper Objective-C tramite il Framework Foundation.
Core Media Framework (CoreMedia.framework)
Il Core Media framework è la base di livello inferiore su cui è costruito il livello AV Foundation. Mentre la maggior parte delle attività audio e video può, e in effetti dovrebbe, essere eseguita utilizzando il framework AV Foundation di livello superiore, l’accesso è previsto anche per le situazioni in cui è richiesto un controllo di livello inferiore dallo sviluppatore di applicazioni iOS.
Quadro di telefonia di base (CoreTelephony.framework)
Il framework di telefonia Core iOS è fornito per consentire alle applicazioni di interrogare il dispositivo per informazioni sull’attuale fornitore di servizi di telefonia cellulare e per ricevere notifiche di eventi correlati alla telefonia.
Framework EventKit (EventKit.framework)
Un’API progettata per fornire alle applicazioni l’accesso al calendario e agli allarmi sul dispositivo.
Quadro della Fondazione (Fondazione.framework)
Il framework Foundation è il framework Objective-C standard che sarà familiare a coloro che hanno programmato in Objective-C su altre piattaforme (molto probabilmente Mac OS X). Essenzialmente, questo consiste in wrapper Objective-C attorno a gran parte del framework di base basato su C.
Core Location Framework (CoreLocation.framework)
Il Core Location framework consente di ottenere l’attuale posizione geografica del dispositivo (latitudine, longitudine e altitudine) e le letture della bussola da con le proprie applicazioni. Il metodo utilizzato dal dispositivo per fornire le coordinate dipenderà dai dati disponibili al momento della richiesta delle informazioni e dal supporto hardware fornito dal particolare modello di iPad su cui è in esecuzione l’app (GPS e bussola sono presenti solo sui modelli recenti). Questo sarà basato su letture GPS, dati di rete Wi-Fi o triangolazione della torre cellulare (o una combinazione dei tre).
Mobile Core Services Framework (MobileCoreServices.framework)
iOS Mobile Core Services framework fornisce le basi per il meccanismo Uniform Type Identifiers (UTI) di Apple, un sistema per specificare e identificare i tipi di dati. Una vasta gamma di identificatori predefiniti sono stati definiti da Apple tra cui tali tipi di dati diversi come testo, RTF, HTML, JavaScript, PowerPoint .file ppt, immagini di PhotoShop e file MP3.
Negozio Kit Quadro (StoreKit.framework)
Lo scopo del framework Store Kit è quello di facilitare le transazioni commerciali tra l’applicazione e l’Apple App Store. Prima della versione 3.0 di iOS, era possibile addebitare a un cliente un’app solo nel momento in cui l’ha acquistata dall’App Store. iOS 3.0 ha introdotto il concetto di “acquisto in app” per cui all’utente può essere data la possibilità di effettuare pagamenti aggiuntivi dall’interno dell’applicazione. Ciò potrebbe, ad esempio, comportare l’implementazione di un modello di abbonamento per un’applicazione, l’acquisto di funzionalità aggiuntive o persino l’acquisto di un’auto più veloce da guidare in un gioco di corse.
Libreria SQLite
Consente di creare e manipolare un database leggero basato su SQL dall’applicazione iPad.
Framework di configurazione del sistema (SystemConfiguration.framework)
Il framework di configurazione del sistema consente alle applicazioni di accedere alle impostazioni di configurazione di rete del dispositivo per stabilire informazioni sulla “raggiungibilità” del dispositivo (ad esempio se la connettività Wi-Fi o cellulare è attiva e se e come il traffico può essere indirizzato a un server).
Quadro Sguardo rapido (QuickLook.framework)
Il framework Quick Look fornisce un utile meccanismo per visualizzare le anteprime dei contenuti dei tipi di file caricati sul dispositivo (in genere tramite una connessione Internet o di rete) per i quali l’applicazione non fornisce già supporto. I tipi di formati di file supportati da questo framework includono iWork, Microsoft Office Document, Rich Text Format, Adobe PDF, file immagine, public.file di testo e separati da virgole (CSV).
Il livello iOS Core OS
Il livello Core OS occupa la posizione inferiore dello stack iOS e, come tale, si trova direttamente sopra l’hardware del dispositivo. Il livello fornisce una varietà di servizi, tra cui la rete di basso livello, l’accesso agli accessori esterni e i soliti servizi fondamentali del sistema operativo come la gestione della memoria, la gestione del file system e le discussioni.
Accelerare Quadro (Accelerare.framework)
Il framework Accelerate fornisce un’API basata su C ottimizzata per l’esecuzione di compiti e calcoli complessi e numerici, vettoriali, di elaborazione del segnale digitale (DSP) e di elaborazione delle immagini.
Quadro accessorio esterno (ExternalAccessory.framework)
Offre la possibilità di interrogare e comunicare con accessori esterni collegati fisicamente all’iPad tramite il connettore dock a 30 pin o in modalità wireless tramite Bluetooth.
Quadro di sicurezza (Sicurezza.framework)
Il framework di sicurezza iOS fornisce tutte le interfacce di sicurezza che ci si aspetterebbe di trovare su un dispositivo in grado di connettersi a reti esterne, inclusi certificati, chiavi pubbliche e private, criteri di fiducia, portachiavi, crittografia, digest e HMAC (Message Authentication Code) basato su Hash.
Sistema (LibSystem)
Come abbiamo accennato in precedenza, iOS è costruito su una base simile a UNIX. Il componente di sistema del livello del sistema operativo principale fornisce più o meno la stessa funzionalità di qualsiasi altro sistema operativo simile a UNIX. Questo livello include il kernel del sistema operativo (basato sul kernel Mach sviluppato dalla Carnegie Mellon University) e i driver di periferica. Il kernel è il fondamento su cui è costruita l’intera piattaforma iOS e fornisce l’interfaccia di basso livello all’hardware sottostante. Tra le altre cose, il kernel è responsabile dell’allocazione della memoria, della gestione del ciclo di vita del processo, dell’input/output, della comunicazione tra processi, della gestione dei thread, della rete di basso livello, dell’accesso al file system e della gestione dei thread.
Come sviluppatore di app, l’accesso alle interfacce di sistema è limitato per motivi di sicurezza e stabilità. Le interfacce disponibili sono contenute in una libreria basata su C chiamata LibSystem. Come con tutti gli altri livelli dello stack iOS, queste interfacce dovrebbero essere utilizzate solo quando si è assolutamente certi che non c’è modo di raggiungere lo stesso obiettivo utilizzando un framework situato in un livello iOS più alto.
Imparare SwiftUI e prendere il vostro sviluppo iOS al livello successivo
SwiftUI Essentials-iOS 14 Edition libro è ora disponibile in stampa ($39.99) e eBook (editions 29.99) edizioni. Per saperne di più…
Precedente | Sommario | Avanti |
La Storia di iOS | Entrare in Apple iOS 5 Developer Program |