back to top

Panoramica sull’architettura di iOS – Guida Sviluppo App iOS

Prima di iniziare a trattare lo sviluppo vero e proprio di applicazioni per sistemi iOS, è opportuno fare una breve introduzione delle caratteristiche e della struttura di questa piattaforma. Iniziamo con il dire che la struttura del sistema è di tipo stratificato e possiamo dunque immaginarla come una serie di strati, uno sopra l’altro, che implementeranno determinate funzioni. Dunque ogni strato sarà delegato a gestire ed implementare determinate funzionalità e in sostanza lo strato superiore beneficia dei servizi offerti dallo strato inferiore senza però saperne la logica implementativa.

Detto questo andiamo a vedere la struttura del sistema mostrato nello schema sottostante:

schema della stratificazione del sistema iOS

Analizziamo i vari strati partendo dal basso:

Core OS

E’ lo strato che lavora più a basso livello e possiamo dire che è il cuore del sistema operativo. Infatti in questo strato sono gestiti i files system,vengono implementate le funzioni per la sicurezza del dispositivo, vegono gestiti i certificati e molto altro. Uno dei compiti principali di questo strato è quello di gestione della potenza, ovvero di gestire in maniera più efficae possibile l’energia messa a disposizione dalla batteria del dispositivo, senza sprechi. Per intenderci, quando per esempio dal vostro iPhone disabilitate la wireless, automaticamente il sistema andrà a richiamare una routine che, di fatto, si occuperà di spengere la scheda di rete wireless del dispositivo. Nei dispositivi come iPhone e iPod Touch dove la quantità di energia erogata è molto limitata risulta di vitale importanza una gestione ottimale.

Core Service

Questo strato implementa le utility di sistema come la gestione del networking, la lista dei contatti e le preferenze di sistema inserite dall’utente. Inoltre se utilizziamo, nelle nostre applicazioni, un database SQLite quest’ultimo lavorerà proprio a questo livello e dunque l’accesso e le interrogazioni che verranno fatte al database saranno gestite proprio da questo strato.

Media

Rappresenta lo strato che contiene tutte le funzionalità e le librerie per la gestione di video, audio, animazioni e tanto altro.

In questo strato, infatti, sono ubicate le librerie OpenAL per la gestione e la manipolazione di flussi audio e le famose librerie OpenGL ES per produrre grafica 2D con animazioni anche molto complesse. Queste ultime sono le sorelle minori delle librerie OpenGL che permettano anche di produrre grafica 3D di altissimo livello. Le OpenGL ES sono state strutturate per essere utilizzate in sistemi embedded come, appunto, i dispositivi telefonici ed il suffisso ES rappresenta, appunto, l’acronimo di Embedded System.

L’utilizzo di queste librerie richiede una certa esperienza e delle conoscenze basilari non banali, dato che tutte le animazioni devono essere create utilizzando codice sorgente. Oltre alle librerie sopra riportate sono presenti in questo strato tutte le routine che permetto al sistema di visualizzare immagini in formato jpeg, png, tiff e per la lettura di file PDF.

Cocoa Touch

E’ lo strato che lavora più ad alto livello. Si occupa della gestione e del riconoscimento del touch e del multi-touch dell’utente ed è in grado di interpretare, in maniera corretta, le gesture compiute dall’utente. Per gesture si intendono quei movimenti come per esempio lo zoom-in, lo zoom-out o la rotazione delle foto. Quando questo strato interpreta uno di questi movimenti, richiamerà una routine di gestione specifica per quel movimento.

Oltre a gestire il touch dell’utente, questo strato si occupa di gestire funzionalità come l’accelerometro ed il giroscopio riuscendo dunque a capire in che modo è orientato il dispositivo rispetto ad un asse orizzontale.

Si occupa inoltre della gestione della gerarchia delle view (vedremo più avanti che cosa sono, per il momento definiamole come le schermate visibili sullo schermo), della fotocamera del dispositivo, e delle alert.

Se si vuole approfondire l’argomento e avere una panoramica dello sviluppo software in ambiente Mac si consiglia la lettura della guida Cocoa fundamentals guide reperibile nella documentazione offerta dalla Apple.

Pubblicità

In questa guida...