Esploriamo la struttura delle applicazioni in macOS e iOS! #2

Bentornati nella seconda parte del precedente articolo di questa serie: se non l’avete letto potete farlo cliccando su questo link! In questa parte finale termineremo il discorso sulla struttura delle app.
applicazioni

Info.plist

Il file Info.plist, si trova nella directory Contents/ delle app e contiene i metadati del bundle. A cosa serve e perchè è così importante?

È un file molto importante, poiché fornisce al sistema le informazioni per determinare le dipendenze necessarie al corretto funzionamento dell’app e altre  varie proprietà. Il formato di questo documento può essere di tre tipi:

  • XML: sono documenti facilmente leggibili e identificabili dalla firma XML. Tutti gli elementi dell’elenco delle proprietà sono contenuti in un elemento <plist>, che a sua volta definisce un dizionario (<dict>) – un dizionario che ha due campi, nel quale viene fatta un’associazione tra chiave/valore. Questo0 formato comune è molto comunque per gestire le proprietà su macOS.
  • Binary: conosciuti come bplist, sono file compilati; risultano poco leggibili, ma molto più ottimizzati per il sistema operativo, in quanto non richiedono nessun parsing XML e sono molto più comuni in iOS che su macOS
  • JSON: utlizzano  la notazione JavaScript Object Notation, la struttura è chiave/valore e i dati sono memorizzati in un formato che è sia facile da leggere, sia da analizzare anche se comunque non è comune come XML o Binary.

Tutti e tre questi formati sono ovviamente supportati in modo nativo e la scelta su quale tipo di file utilizzare è totalmente personale. Naturalmente è molto più semplice leggere un file XML o JSON piuttosto che un binario ma, comunque, esiste un tool chiamato plutil che consente una rapida conversione tra i diversi tipi di formato.

Ogni applicazione dovrebbe avere un file Info.plist in modo che il sistema possa leggerlo e funzionare in base ai valori ad esso contenuti. Quando infatti viene creato un nuovo progetto in XCode. viene fornito di default un file Info.plist con impostazioni predefinite che possono essere successivamente personalizzate.

Resources

La directory Resources  contiene tutti i file necessari al corretto funzionamento dell’applicazione. Queste risorse in genere consistono in elementi come immagini, icone, suoni, file, file di stringhe, file di configurazione e file di dati. Questo è uno dei grandi vantaggi del formato bundle perchè a differenza di altri sistemi operativi, nei quali le risorse devono essere compilate nell’eseguibili, i bundle consentono alle risorse di restare separate; questo rende l’eseguibile molto più leggero e anche gli aggiornamento possono essere eseguiti in maniera selettiva.

Storyboard

Lo storyboard è la rappresentazione grafica dell’interfaccia utente di un’applicazione iOS/macOS, che mostra la schermata espansa di un’app e le connessioni tra le varie viste. Uno storyboard è composto da una sequenza di scene, ognuna delle quali rappresenta un controller della vista; le scene sono collegate da oggetti chiamati segue, che rappresentano la transizione tra due visteapplicazioni

lproj

Una cartella .lproj contiene i file di localizzazione per le app in macOS/iOS, in genere i file dello storyboard (oppure i .nib) per un determinato linguaggio insieme a file di stringhe e immagini. Esistono tante cartelle .lproj quante sono le lingue che sono supportate dall’applicazione: ogni lingua quindi la sua personale cartella lproj.

Icone

Abbastanza intuitivo, ogni app contiene una o più icone. Solitamente non è mai una sola poichè ogni modalità di funzionamento implica un metodo di visualizzazione delle icone diverso. Basta pensare a cosa accade mentre apriamo il multitasking, su un iPhone: oltre la schermata dell’app aperta è presente anche l’icona dell’app,  con delle dimensioni molto ridotte. Tutto questo ci porta a dire che esistono varie versioni della stessa icona, caratterizzate da una specifica dimensione.

CodeResources

L’ultimo file importante che un’applicazione contiene è CodeResources, che è un collegamento simbolico a _CodeSignature/CodeResources. Questo file è un elenco di proprietà che contiene un elenco di tutti gli altri file all’interno del bundle. Il file CodeResources aiuta a capire se un’applicazione è intatta o danneggiata, oltre a prevenire modifiche accidentali o la corruzione delle risorse del bundle.

Anche per questo articolo è tutto! Per eventuali domande, curiosità o feedback potete lasciare un commento qui in basso, a presto!

HotAcquista iPhone 15 su Amazon!
Approfondimenti