Se lo sviluppo di applicazioni iPhone, per voi, è qualcosa di più di una semplice passione o curiosità e avete intenzione di diffondere il più possibile le vostre applicazioni, dovrete scontrarvi, prima o poi, con le ormai numerose diverse configurazioni “device/sistema operativo installato” esistenti. Infatti, se non volete perdere potenziali clienti, dovrete rendere compatibile le vostre creazioni con tutte le combinazioni possibili e immaginabili di iPhone/iPod. Pensate ad esempio un iPod Touch 3G con ancora iPhone OS 3.x, o iPhone 4 con iOS 4 o ancora iPhone 3G con iOS 4 e così via. Alcune funzionalità, come ben saprete esistono solo per un dispositivo piuttosto che per un altro (vedi fotocamera) o ancora per una versione di iPhone OS piuttosto che un’altra (vedi multitasking). Insomma, per ottimizzare al meglio i vostri programmi iPhone dovrete intercettare, quando necessario, alcune informazioni circa il device che sta eseguendo la vostra applicazione e programmare alcune funzionalità in modo diverso per ogni versione o combinazione esistente.
Ok, è sicuramente lavoro in più per noi programmatori, ma se non vogliamo perdere clienti e/o ottenere feedback negativi, dovremmo farcene una ragione e studiare bene tutto con calma.
Oggi vedremo come sfruttare UIDevice per ottenere modello del device, nome, sistema operativo installato e versione. Partiamo subito con questo semplice tutorial.
Apriamo Xcode e creiamo un nuovo progetto. Dall’elenco dei template disponibili selezioniamo “View-based Application” e proseguiamo. Diamo un nome al nostro progetto, ad esempio “myDevice”, scegliamo una posizione in cui salvare (sulla scrivania andrà benissimo) e proseguiamo. Apriamo il file “myDeviceViewController.h” e dichiariamo 4 UILabel che useremo per mostrare i dati rilevati:
#import
@interface myDeviceViewController : UIViewController {
IBOutlet UILabel *lblModel;
IBOutlet UILabel *lblName;
IBOutlet UILabel *lblSystemName;
IBOutlet UILabel *lblSystemVersion;
}
@property (nonatomic, retain) IBOutlet UILabel *lblModel;
@property (nonatomic, retain) IBOutlet UILabel *lblName;
@property (nonatomic, retain) IBOutlet UILabel *lblSystemName;
@property (nonatomic, retain) IBOutlet UILabel *lblSystemVersion;
@end
Niente di complicato insomma, 4 semplici UILabel che grazie a IBOutlet troveremo pronte in Interface Builder per essere collegate ai rispettivi oggetti disegnati graficamente.
Salviamo e facciamo doppio-click sul file “myDeviceViewController.xib”, si aprirà quindi Interface Builder che useremo per disegnare la nostra semplicissima interfaccia grafica. Ci occorreranno semplicemente 8 UILabel. Cercate quindi UILabel in Library -> Objects e trascinatene 8 nella View. Quattro le useremo come etichette per indicare cosa verrà visualizzato in quella adiacente. Dovreste ottenere un risultato simile a quello mostrato in figura:

Non ci resta che collegare questi oggetti ai rispettivi dichiarati poco fa nel file di interfaccia .h. Per farlo clicchiamo su “File’s Owner” e spostiamoci sul “Connections Inspector”, colleghiamo quindi i 4 “lbl” con le UILabel appena trascinate. Finiti i collegamenti salviamo e chiudiamo Interface Builder.
A questo punto ci tocca implementare il codice vero e proprio che ci permetterà di mostrare a video (nelle UILabel) i dati del dispositivo che sta eseguendo la nostra applicazione iPhone. Aprite il file “myDeviceViewController.m”, aggiungete i rispettivi @synthesize subito dopo l’istruzione “@implementation myDeviceViewController”
@synthesize lblModel, lblName, lblSystemName, lblSystemVersion;
Scommentate quindi il metodo “viewDidLoad” e modificatelo come segue:
- (void)viewDidLoad {
[super viewDidLoad];
lblModel.text = [[UIDevice currentDevice] model];
lblName.text = [[UIDevice currentDevice] name];
lblSystemName.text = [[UIDevice currentDevice] systemName];
lblSystemVersion.text = [[UIDevice currentDevice] systemVersion];
}
Come vedete è tutto molto semplice e non facciamo altro che andare a settare la proprietà “text” delle UILabel con il rispettivo valore prelevato tramite [[UIDevice currentDevice] nomeValoreCheCiInteressa];
Questo semplice tutorial si conclude qui, a questo punto sapete come intercettare informazioni sul device in uso, non vi resta che perfezionare le vostre applicazioni e renderle compatibili per tutte le combinazioni di device/sistema esistenti.












4 Responses to “T#064 – Rilevare le informazioni sul device in uso (modello, nome, sistema, versione)”
20 Luglio 2010
alessandroCome al solito.. Grazie! 🙂
20 Luglio 2010
faste se si volesse visualizzare delle alertview all’avvio dell’app solo per alcuni dispositivi??
20 Luglio 2010
El JobsoCurioso questo tutorial… Sarebbe bello provarlo su un vero iPhone…
25 Giugno 2011
MaveDevGrazie mille anche per questo tutorial, provato sul mio iPhone e devo dire utilissimo per creare software compatibile con le versioni installate dell’OS.