Alma Mater Studiorum · Università di Bologna
FACOLTÀ DI SCIENZE MATEMATICHE, FISICHE E NATURALICorso di Laurea Magistrale in Informatica - curriculum b: tecnologie informatiche
BOARDGAME: DAL CARTONE AL MULTIPLAYER
CON DEVICE MOBILI
Tesi di Laurea in Sistemi distribuiti
Relatore: Presentata da:Chiar.mo Prof. Marica MaraniAlessandro Amoroso
I Sessione Anno Accademico 2011-2012
1
2
A tutta la mia famiglia, al mio ragazzo, ai miei amici,
ed in particolare alla mamma e al nonno
che mi hanno dato, da lassù,
la forza di arrivare a questo traguardo.
3
4
Indice generale1 INTRODUZIONE .........................................................................................................92 QUADRO DI RIFERIMENTO ...................................................................................15
2.1Ubiquitous computing ...........................................................................................152.1.1Problematiche relative....................................................................................16
2.2Device mobili.........................................................................................................172.2.1Web mobile....................................................................................................172.2.2I tablet e l'iPad................................................................................................192.2.3Smartphone e l'iPhone....................................................................................212.2.4I sistemi operativi per gli smartphone............................................................222.2.5Caratteristiche principali di IOS e iPhone SDK.............................................26
2.2.5.1Struttura Architetturale di IOS................................................................272.2.5.2Livelli Architetturali ..............................................................................27
2.2.6iPhone SDK....................................................................................................352.2.7iPhone e iPad..................................................................................................36
2.2.7.1iphone.....................................................................................................362.2.7.2Ipad.........................................................................................................39
2.2.8Distribuzione digitale.....................................................................................402.2.9App Store ......................................................................................................412.2.10Le applicazioni per smartphone...................................................................432.2.11Applicazioni simili già esistenti ..................................................................452.2.12Game center.................................................................................................46
2.3L'ambiente ludico...................................................................................................482.3.1L'aspetto informatico nel mondo ludico.........................................................51
2.3.1.1Giochi in rete..........................................................................................513 SVILUPPO DELL'APPLICAZIONE ..........................................................................55
3.1Requisiti.................................................................................................................553.2La scelta dell'applicazione.....................................................................................55
3.2.1Regole del gioco.............................................................................................563.2.2Software e linguaggio utilizzato.....................................................................59
3.2.2.1Objective-C.............................................................................................593.2.2.2Xcode......................................................................................................673.2.2.3Interface Builder.....................................................................................693.2.2.4Simulatore...............................................................................................70
3.3Quadro generale del design della rete....................................................................703.3.1Tre tipi di rete in iOS......................................................................................703.3.2Altri tipi di rete meno comuni........................................................................73
3.4Affidabilità dei dati................................................................................................733.4.1Attributi più importanti dei pacchetti.............................................................743.4.2Smartphone e Sicurezza ................................................................................743.4.3Invio dei dati in Game kit...............................................................................77
3.4.3.1Cosa inviare............................................................................................773.4.3.2Game Center basato su turni...................................................................78
3.5L'intelligenza artificiale dei giocatori del dispositivo mobile................................783.6La versione per iPhone...........................................................................................79
3.6.1Gioca..............................................................................................................833.6.2Gioca vs rete...................................................................................................873.6.3Punteggi..........................................................................................................92
5
3.6.4Istruzioni........................................................................................................933.6.5Sito web..........................................................................................................943.6.6Credits............................................................................................................95
3.7La versione per iPad...............................................................................................953.7.1Gioca..............................................................................................................973.7.2Gioca vs rete...................................................................................................993.7.3Punteggi..........................................................................................................993.7.4Istruzioni......................................................................................................1003.7.5Sito web........................................................................................................1013.7.6Credits..........................................................................................................102
3.8Test.......................................................................................................................1023.9Inserimento dell'applicazione su AppStore..........................................................103
4 SVILUPPI FUTURI ..................................................................................................1055 CONCLUSIONI ........................................................................................................1076 BIBLIOGRAFIA .......................................................................................................1097 RINGRAZIAMENTI .................................................................................................113
6
Indice delle illustrazioniIllustrazione 1: livelli architetturali di IOS......................................................................28Illustrazione 2: iPhone.....................................................................................................36Illustrazione 3: iPad.........................................................................................................39Illustrazione 4: categoria "Giochi" dell'AppStore...........................................................45Illustrazione 5: categoria "Giochi da tavolo" dell'AppStore............................................46Illustrazione 6: Contenuto della scatola di spirits!:.........................................................57Illustrazione 7: ambiente di sviluppo Xcode...................................................................68Illustrazione 8: interface builder......................................................................................69Illustrazione 9: simulatore iphone...................................................................................70Illustrazione 10: rappresentazione di una rete P2P usando 6 device iOS........................71Illustrazione 11: rete client to host...................................................................................72Illustrazione 12: rete ring.................................................................................................72Illustrazione 13: intelligenza artificiale...........................................................................79Illustrazione 14: l'interfaccia che appare mentre si carica l'applicazione........................80Illustrazione 15: l'icona di spirits all'interno del dispositivo...........................................80Illustrazione 16: menù iniziale di Spirits!........................................................................81Illustrazione 17: messaggio di connessione dell'utente al Game Center ........................81Illustrazione 18: messaggio che appare nel caso non si sia loggati nel Game Center.....82Illustrazione 19: messaggio che appare nell'inserimento dello user e password per l'accesso al Game Center.................................................................................................82Illustrazione 20: messaggio di errore dell'inserimento della password...........................82Illustrazione 21: pulsante illuminato...............................................................................83Illustrazione 22: interfaccia per la scelta del numero dei giocatori in locale..................83Illustrazione 23: partita a 2 giocatori...............................................................................84Illustrazione 24: partita a 3 giocatori...............................................................................84Illustrazione 25: partita a 4 giocatori con l'animazione della carta del giocatore alla nostra destra.....................................................................................................................85Illustrazione 26: partita a 5 giocatori con il messaggio che indica il primo giocatore scelto a random................................................................................................................85Illustrazione 27: partita a 6 giocatori e l'animazione della carta che viene giocata dal giocatore alla nostra sinistra............................................................................................85Illustrazione 28: schermata per giocare in rete................................................................87Illustrazione 29: creazione di una nuova partita..............................................................88Illustrazione 30: elenco delle partite in corso..................................................................88Illustrazione 31: elenco amici che si possono invitare....................................................89Illustrazione 32: messaggio da inviare agli amici...........................................................89Illustrazione 33: partita a 6 giocatori in rete, il turno è dell'utente e si proseguirà in senso orario................................................................................................................................90Illustrazione 34: partita a 3 giocatori in rete, il turno è del giocatore alla nostra destra e si proseguirà in senso antiorario......................................................................................90Illustrazione 35: elenco delle varie tabelle dei punteggi ................................................92Illustrazione 36: elenco dei punteggi di una tabella........................................................92Illustrazione 37: elenco delle tabelle relative (direttamente nel Game Center)...............93Illustrazione 38: istruzioni all'interno del gioco..............................................................93Illustrazione 39: un'altra schermata delle istruzioni del gioco........................................94Illustrazione 40: sito web del boardgame........................................................................94Illustrazione 41: credits...................................................................................................95
7
Illustrazione 42: menù iniziale dal simulatore dell'iPad..................................................96Illustrazione 43: scelta del numero dei giocatori.............................................................97Illustrazione 44: partita a 6 giocatori, turno del giocatore alla nostra destra...................98Illustrazione 45: il giocatore diturno ha perso questa mano e gli verrà assegnato un fantasmino.......................................................................................................................98Illustrazione 46: partia a 6 giocatori in corso, giocatore di turno mysandboxuser1test. .99Illustrazione 47: elenco punteggi del game center dall'iPad..........................................100Illustrazione 48: una delle schermate delle istruzioni sull'iPad.....................................101Illustrazione 49: sito web...............................................................................................101Illustrazione 50: schermata dei credits su iPad..............................................................102
8
1 INTRODUZIONE
1 INTRODUZIONEL'informatica e in continua evoluzione, una tecnologia che sembra
essere innovativa puo rivelarsi ben presto obsoleta. Osservando
l'andamento del mercato tecnologico degli ultimi anni si è notato
come le persone stiano orientando il loro interesse verso il mondo dei
dispositivi mobili: telefoni cellulari, lettori mp3 e computer portatili
che consentono agli utilizzatori di comunicare, ascoltare musica e
navigare in internet ovunque si trovino.
Anche l'evoluzione del marketing procede verso tale direzione;
inizialmente il mondo mobile era un po' trascurato e di importanza
secondaria, mentre oggi si è affermato come una delle fonti principali
di successo e di ricavo per le aziende che operano in questo settore.
Nei giorni in cui i social network spopolano, la tecnologia mobile e
essenziale per l'utente che desidera interagire in qualunque momento
e in qualunque posto.
Quando si parla di tecnologia e dispositivi di ultima generazione, una
delle prime aziende che viene in mente e l'Apple. Come indicato
anche da un recente studio dell'autorevole rivista di economia e
finanza Forbes [1] grazie a prodotti come iPhone ed iPod, e il marchio
piu famoso al mondo. Questo anche perchè l'ambiente Apple e
sempre stato circondato da un alone di mistero per le tecnologie
utilizzate e per le scelte progettuali.
Per dimostrare questo infatti e sempre piu frequente, per la gente
comune, confondere la categoria di un dispositivo portatile con il
nome che questa azienda ha dato alla sua periferica: ad esempio
quante volte si sente parlare di iPod anche se il lettore mp3 in
questione e di un'altra marca?
Un altro evento che sta rivoluzionando l'informatica è l'abbandono
dell'acquisizione di materiale multimediale e software per via
tradizionale a favore degli app store presenti su internet.
9
1 INTRODUZIONE
In questo l'Apple e considerata il precursore con il lancio dell'iTunes
Music Store prima e dell'App Store poi, due negozi on-line che con il
passare del tempo sono diventati miniere d'oro, grazie anche alla
progressiva diminuzione dei prezzi ed all'aumento del materiale
disponibile, dato che è permesso a chiunque di pubblicare e vendere
applicazioni.
Il mondo mobile in generale, quindi, è in continua e frenetica
evoluzione. Hardware e software si rincorrono a vicenda con nuove
funzionalità e applicazioni sempre più aggiornate.
Le piu recenti evoluzioni delle reti senza fili e della telefonia mobile,
unite ad un veloce e continuo cambiamento nelle abitudini degli
utenti al consumo di materiali in formati digitali, hanno portato a una
sempre piu massiccia diffusione di dispositivi mobili con capacita di
connessione veloce alla rete Internet. La cosiddetta “mobile
revolution” [2] e arrivata e lo testimonia la massiccia diffusione di
dispositivi mobili. Telefoni cellulari di ultima generazione, PDA
(Personal Digital Assistant), lettori multimediali, console di videogiochi
portatili sono presenti in tutte le famiglie. E interessante osservare
che nessuna fascia di eta e immune da questo fenomeno (che e
spinto dai piu giovani). Il mercato tecnologico ha colto questa
tendenza e la sta assecondando con la proposta continua di nuovi
dispositivi in grado di accedere, tramite connessione wireless, alla
rete Internet, per scopi lavorativi, per studio o piu semplicemente per
intrattenimento, quindi anche per un’utenza e per un uso non
necessariamente di tipo professionale.
La European Interactive Advertising Association (EIAA) nel 2010 [3] ha
reso noti i risultati di una ricerca sul consumo dei media da parte
degli utenti europei, dalla quale emerge che la mobilita digitale si sta
diffondendo a vista d'occhio
• Gli europei passano piu tempo su internet con dispositivi mobili
(6,4 ore alla settimana) rispetto alla lettura di quotidiani (4,8
10
1 INTRODUZIONE
ore) e riviste (4,1 ore);
• Attualmente in Europa sono 121 milioni gli utenti della banda
larga wireless, ne consegue una maggiore mobilita per gli utenti
internet;
• 71 milioni di cittadini europei utilizzano internet sul proprio
dispositivo mobile ogni settimana, con una media di circa un'ora
al giorno.
L’Italia e il secondo paese europeo per utilizzo di internet da
dispositivi mobili, con 7,9 ore trascorse ogni settimana. C'è anche da
notare che è in crescita la diffusione della banda larga (19,9 milioni di
utenti) e della banda larga wireless (10,4 milioni di utenti). L’Italia,
infine, e il quinto paese europeo per diffusione di telefoni cellulari con
accesso a Internet e PDA, con una percentuale del 57%. L'ultimo dato
curioso da riportare è che la generazione più giovane, “early
adopter”, ha influenzato la crescita dell’uso di internet su dispositivi
mobili, con 23% di eta compresa tra 16 e 24 anni e il 21% tra i 25 e
34 anni, trascorrendo rispettivamente 7,2 e 6,6 ore alla settimana su
internet e questa tendenza sembra in continuo aumento.
Tutti questi dispositivi di ultima generazione hanno un sistema
operativo che solitamente deriva da quelli utilizzati per i notebook,
reso più veloce, leggero ed intuitivo privandolo di tutte le funzionalità
superflue. Inoltre offrono quasi tutti una connessione ad internet sia
utilizzando il Wi-Fi integrato che il 3G abbonandosi ad un piano
tariffario di una compagnia telefonica consentono l'installazione di
diverse applicazioni sviluppate dal produttore dello stesso
smartphone o da terze parti, che possono essere scaricate
gratuitamente o pagando una piccola cifra.
L’idea di questo progetto di tesi è stata quella di creare
un’applicazione per dispositivi mobili che ci portasse verso un
incontro del passato con il presente/futuro implementando un gioco
11
1 INTRODUZIONE
da tavolo.
Tra i tanti device mobili disponibili ho scelto di realizzare la tesi in
ambiente Apple sia per la grande distribuzione che dispositivi come
iPhone e iPad stanno avendo all’interno del mercato sia come
interesse personale dettato dalla curiosità per questo brand.
Apple permette, registrandosi come sviluppatore, di vendere
direttamente attraverso l’App Store le proprie applicazioni ai
possessori dei device mobili. In questo modo è possibile che un’idea
geniale riesca ad ottenere un buon successo anche senza investirvi
grandi somme di denaro.
Apple ha poi reso disponibile il game kit creato per realizzare al
meglio giochi in rete, creando una nuova partita o unendosi ad una
già esistente creata da altri utenti.
Ipotizziamo che un gran numero di persone posseggano un dispositivo
Apple e che abbiano installato l’applicazione. Questa può essere
utilizzata in contemporanea per la creazione di gioco con l'automatch
oppure attraverso una notifica di invito in quanto il gioco viene
effettuato a turni e si possono avere anche più partite
contemporaneamente. Il gioco potrà essere ovviamente visualizzato
nel corso dei turni degli altri giocatori e ogni mossa viene visualizzata
all'interno del nostro display che viene considerato tavolo di gioco.
L'applicazione deve avere molte informazioni sullo stato del gioco,
queste saranno create ed inviate da chi genera la partita e gestite
indirettamente dagli utenti che le potranno visualizzare.
Va ricordato che lo scopo principale di questa tesi è quello di studiare,
progettare ed implementare un’alternativa nuova e originale di un
gioco da tavolo, senza dover aprire la scatola, sistemare il materiale,
leggere le istruzioni ma soltando utilizzando il proprio iPhone.
L'applicazione è stata realizzata grazie all'ambiente di sviluppo,
messo a disposizione gratuitamente da Apple Xcode. Insieme a
12
1 INTRODUZIONE
quest'ultimo ho utilizzato dei framework esterni per la gestione dei
punteggi e del match.
Per capire meglio tutti i diversi passaggi eseguiti per realizzare questo
documento di tesi, nelle pagine che seguono viene descritto il quadro
attuale di riferimento del mondo della tecnologia mobile.
Verrà esposto lo stato attuale dei dispositivi mobili ed in particolare
degli smartphone, dei loro sistemi operativi e della distribuzione
digitale di software con un occhio particolare ad Apple, descrivendo
poi alcune applicazioni già esistenti sul mercato che hanno
caratteristiche simili o in comune a quella descritta in questo
documento, per far meglio capire quali sono gli aspetti più apprezzati
dagli utenti e dal mercato.
Sarà infine presentato il progetto delineandone i requisiti, la struttura,
le metodologie adottate per portarlo a compimento ed il suo
funzionamento.
Inoltre verrà presentata una sezione di test contenente le prove
effettuate per studiare l’implementazione del progetto e capire se
apportare ulteriori modifiche.
La tesi termina con un resoconto del lavoro svolto per arrivare alle
conclusioni che sono state tratte oltre ai possibili sviluppi futuri
dell’applicazione.
13
14
2 QUADRO DI RIFERIMENTO
2 QUADRO DI RIFERIMENTOIn questo capitolo vengono presentate le metodologie generali ed il
quadro di riferimento del contesto in cui andrò a sviluppare
quest'applicazione. Per poter tracciare una panoramica generale si è
deciso di iniziare con una descrizione dei dispositivi attualmente in
circolazione e dei sistemi operativi in essi contenuti che permettono al
software di essere utilizzato.
La prima sezione è stata dedicata all'”ubiquitous computing” [4], la
definizione di questo meccanismo e alle problematiche che ne
comporta.
La seconda sezione parla dei device mobili e li descrive in base alle
loro tipologie e caratteristiche.
Una sezione è stata dedicata anche alla distribuzione digitale di
software poichè sta riscontrando un successo sempre maggiore nella
vendita delle applicazioni in particolare per dispositivi mobili.
Si passa alla descrizione di alcune applicazioni già esistenti sul
mercato che, per alcune loro caratteristiche, appartengono alle
tipologie che forniscono servizi simili a quella che ho realizzato ed
aiutano a comprendere meglio quali sono le scelte degli utenti al
momento di decidere di utilizzare un’applicazione rispetto ad un’altra.
L'ultima parte invece descrive il mondo ludico e la relazione che può
avere con l'informatica.
2.1 Ubiquitous computing
L’evoluzione costante di questi strumenti mobili sta rendendo
ovunque sempre piu accessibile l’uso di servizi al di fuori della propria
abitazione. La possibilita di avere strumenti informatici ha permesso
15
2 QUADRO DI RIFERIMENTO
l’inizio del cosiddetto “ubiquitous computing” – termine che enfatizza
il supporto informatico senza limiti di spazio o ambiente.
2.1.1 Problematiche relative
• Interaction design: nel momento in cui un servizio viene fornito
da strumenti che sono poco visibili o poco invasivi è necessario
trovare il modo migliore di interagire con le persone, usando
approcci diversi dal software piu tipico.
• Sensing and context: come possiamo accorgerci del mondo
circostante e del contesto in cui siamo immersi.
• Essential infrastructure: le infrastrutture necessarie ad un
servizio che tende a diffondersi ovunque devono essere robuste
e, ancora piu importante, facilmente estendibili, sia in spazio
che in tipologia. E fondamentale ragionare in termini di
infrastrutture fault tolerant (tolleranti ai guasti), sempre
disponibili.
• Discovery: ricerca di servizi e di modalita di gestione delle
informazioni disomogenee che arrivano dal contesto.
• Programming approaches: i software, i modelli di analisi e
progettazione, nonche le tecniche di sviluppo devono essere
rivisti con in mente l’obiettivo della pervasivita e mobilita.
• Privacy, Trust, and Security: norme per garantire che le
informazioni personali rimangano riservate, e che quelle
ricevute dal sistema siano sempre credibili ed affidabili.
La realizzazione di un'applicazione per un device mobile deve quindi
tenere conto di tutte queste problematiche.
16
2 QUADRO DI RIFERIMENTO
2.2 Device mobili
Le soluzioni mobili non devono avere vincoli di tempo e di spazio; per
far sì che questo sia possibile e necessario il supporto di alcuni
strumenti, denominati “Device mobile” [5] [6] che consentono uno
svolgimento del lavoro in modo autonomo.
Questi strumenti devono quindi garantire un corretto accesso ai dati,
con la possibilita di consultarli e di modificarli attraverso lo sviluppo di
applicazioni presenti all’interno dei device stessi. Inoltre devono
possedere anche caratteristiche fisiche e strutturali che permettano
un facile trasporto ed impiego da parte dell'utente, in termini di
dimensioni, peso e rapidita d’accesso ai dati. Gli strumenti piu
utilizzati per questo compito sono:
• Netbook: particolari computer portatili di dimensioni medie
destinati soprattutto alla navigazione in Internet , alla video-
scrittura, all’analisi e elaborazione dei dati.
• Tablet: dispositivo portatile che grazie alla presenza di uno o piu
digitalizzatori permette all'utente di interfacciarsi con il sistema
direttamente sullo schermo mediante le dita.
• Smartphone: dispositivo portatile che abbina le funzionalita di
un telefono cellulare e quelle di gestione di dati personali.
2.2.1 Web mobile
Solitamente i sistemi Informativi tradizionali sono pensati per
organizzazioni dai confini chiusi. Le informazioni e gli strumenti sono
resi disponibili esclusivamente a coloro che appartengono
all’organizzazione e rigorosamente presso il posto e durante l’orario di
lavoro. Le possibilita di accesso in situazioni differenti o da parte di
altre persone (partner, clienti, fornitori, consulenti) sono spesso
limitate e a volte vengono considerate complesse da realizzare e
17
2 QUADRO DI RIFERIMENTO
gestire.
Si sta diffondendo un diverso modo di concepire il proprio ruolo
professionale, che si concretizza e trova la sua espressione in gruppi
di persone e figure di business anche molto differenti tra loro,
accomunate dal fatto di operare come “Mobile Worker”. Fanno parte
di questa categoria tutte quelle figure che operano in mobilita, come
ad esempio responsabili di vendite e promozioni o di manutenzione e
assistenza al cliente,...
L’esigenza di avere tutti questi nuovi strumenti si puo considerare
correlata al fatto che aumenta sempre piu la necessita di lavorare
liberi da vincoli fisici. La figura del lavoratore infatti sta velocemente
evolvendo, passando da un soggetto statico e costretto ad operare in
uno spazio circoscritto, ad un altro che ha la necessita di muoversi
continuamente, dovendo svolgere il suo compito in ogni luogo ed in
qualsiasi momento.
Fino a poco tempo fa l'accesso al Web era possibile tramite i servizi
ed i collegamenti di rete fissa, oggi invece sta diventando accessibile
anche da vari dispositivi portatili e wireless. Il passaggio dalla rete
fissa alla telefonia mobile che consenti quindi di accedere ovunque al
Web e stato accelerato nel 2007 dall'aumento continuo della vendita
di smartphone multi-touch piu grandi, e piu recentemente dal 2010
con l'emergere di multi-touch tablet.
Si e sottolineato quanto la possibilita di accedere a internet ovunque
sia collegata a determinati dispositivi, ossia gli smartphone, telefoni
intelligenti che abbinano le funzionalita di un cellulare alla gestione di
dati personali, inoltre permettono l'installazione di ulteriori programmi
applicativi per nuove funzionalita. Le applicazioni possono essere
sviluppate dal produttore dello smartphone, dallo stesso utilizzatore,
o da terze parti. Parecchie sono quindi le funzionalita e le
caratteristiche degli smartphone tra cui l'accesso a internet, alle E-
mail, la pianificazione delle attivita, alla fotocamera, alla rubrica e alla
18
2 QUADRO DI RIFERIMENTO
gestione dei contatti personali. Su alcuni modelli sono disponibili
anche la navigazione satellitare con GPS e la compatibilita con i piu
comuni formati di file.
Lo smartphone e un dispositivo che quindi ha cambiato e cambiera le
abitudini dei consumatori operanti in molti settori e che ha
definitivamente portato internet nella vita quotidiana di milioni di
persone. La possibilita di essere sempre connessi e le maggiori
dimensioni del display del telefono hanno aperto nuove prospettive di
servizio per l'utente finale e opportunita di business.
2.2.2 I tablet e l'iPad
Nell’ambito del business si sta molto sviluppando l’utilizzo dei tablet
[26]. Esso e una sorta di computer portatile che, grazie alla presenza
di uno o piu digitalizzatori, permette all'utente di interfacciarsi con il
sistema direttamente sullo schermo mediante le dita. Il tablet e di
fatto un normale Personal Computer portatile con capacita di input
superiori ed è uno strumento molto diffuso soprattutto in ambito
aziendale.
Anche per i tablet il leader indiscusso resta Apple, la quale possiede
una quota di mercato che si aggira attorno al 70%, ottenuta grazie
all’ingegnoso sviluppo dell’iPad.
L’iPad Apple e un dispositivo che possiede ampie funzionalita ma non
rappresenta pero un sostituto del notebook, nonostante si affianchi a
questo. Esso e utilizzabile ovunque ci sia la necessita di un dispositivo
portatile, garantendo una buona connettivita e una lunga durata della
batteria che permette di visualizzare i documenti nonche i compiti
d'ufficio come e-mail, navigazione web e ridotte funzioni di
elaborazione testi. L’iPad ha due grandi punti di forza:
• rende possibile l’utilizzo dei media digitali
• facilita la condivisione di contenuti
19
2 QUADRO DI RIFERIMENTO
A differenza di un notebook tradizionale, il formato tablet non crea
una barriera "tecnologica" tra i partecipanti, e l'autorotazione dello
schermo favorisce una condivisione delle informazioni in modo
semplice ed efficace. Molte sono le applicazioni e le funzioni
attribuibili all’iPad:
• applicazioni consumer: esso supporta la trasmissione di dati
complessi e arricchisce i contenuti attraverso informazioni ed
intrattenimento con possibilita di utilizzo sia a casa che in
viaggio;
• e-book: questo dispositivo mobile consente anche di scaricare
libri in formato digitale, permettendo agli editori di passare dalla
carta al formato elettronico includendo contenuti aggiuntivi e
definibili dall'utente.
• manipolazione dei documenti: a differenza degli smartphone, le
dimensioni dello schermo dell’iPad, in unione con le funzionalita
multitouch, rendono possibile l'editing dei documenti
consentendo anche l'immissione dei dati sul dispositivo.
Molti sono i soggetti che potranno sfruttare i benefici derivanti da
questo particolare strumento, tra cui gli architetti e gli agenti
immobiliari i quali possono condividere i piani del settore, gli
specialisti di finanza i quali possono tenersi continuamente aggiornati
in materia, i venditori che possono sfruttare lo strumento effettuando
presentazioni interattive, ma anche per tutti coloro che operano nel
campo sanitario e dei trasporti. L’iPad ha suscitato inoltre interesse
nel settore privato per la facilita con cui e possibile scaricare sul
dispositivo una serie innumerevole di contenuti attraverso l’App Store
di Apple, i quali permettono di aumentare il fascino e l'utilità di questo
dispositivo. L’iPad nasce quindi per un mercato di tipo consumer, ma
sta trovando largo impiego anche in ambito professionale.
20
2 QUADRO DI RIFERIMENTO
2.2.3 Smartphone e l'iPhone
Considerando quanto detto precedentemente, il tablet e risultato
essere un dispositivo Mobile particolarmente presente all’interno della
realta aziendale, con lo scopo di fornire un valido supporto per le
attivita di business. Sempre in ambito di device mobile, molto
utilizzati sono anche gli Smartphone, sia in ambito di business ma
soprattutto in quello privato.
Uno smartphone è un dispositivo mobile che offre abilità di
computazione e connettività molto maggiori se confrontato con un
telefono cellulare di ultima generazione. Infatti, nonostante i telefoni
cellulari più moderni riescano ad utilizzare applicazioni basate su una
piattaforma come può essere Java ME, uno smartphone si avvale di un
sistema operativo completo che fornisce una piattaforma per
sviluppatori di applicazioni di terze-parti. In questo modo gli utenti di
uno smartphone possono utilizzare, anche contemporaneamente, più
applicazioni create appositamente per l’hardware di quel dispositivo.
Questi smartphone, oggi molto diffusi, utilizzano sistemi operativi che
permettono l’installazione di diverse applicazioni le quali possono
essere personalizzate a seconda degli utenti. La caratteristica piu
interessante degli smartphone e data proprio dalla possibilita di
installarvi ulteriori programmi applicativi, che aggiungono nuove
funzionalita. Molti sono i sistemi operativi che permettono
l’installazione dei queste applicazioni, tra questi i piu importanti e
conosciuti sono:
• Android,
• Apple iOS,
• BlackBerry (RIM),
• Symbian OS (che sta scomparendo),
• Windows Mobile,
21
2 QUADRO DI RIFERIMENTO
Uno smartphone pertanto ampia le funzioni di un telefono cellulare.
Per quanto riguarda la connettività per le comunicazioni con altri
dispositivi questi apparecchi utilizzano tecnologie come Bluetooth e
Wi-Fi.
La crescita della domanda per dispositivi mobili avanzati ha fatto sì
che essi utilizzino processori sempre più potenti con capacità di
memoria sempre maggiore e schermi ad alta risoluzione con capacità
multitouch per permetterne un impiego anche in ambito ludico, come
nella nostra applicazione.
Secondo diversi rapporti, negli ultimi anni gli smartphone stanno
sperimentando tassi di adozione sempre maggiori. Ad esempio la
Berg Insight [7] ha riportato nel marzo 2011 il dato che mostra come
la spedizione globale di smartphone da un anno all'altro è
incrementata del 74%.
La crescente importanza dei dispositivi mobili ha messo in moto una
forte competizione tra alcuni giganti del software come Google,
Microsoft e Apple, insieme alle industrie leader nel settore mobile
come Nokia, Research In Motion (RIM) e Palm per cercare di catturare
subito la fetta di mercato più ampia. Sono nati così diversi sistemi
operativi che si evolvono di pari passo con i dispositivi su cui vengono
installati.
2.2.4 I sistemi operativi per gli smartphone
I sistemi operativi per gli smartphone non sono interoperabili, ossia
una volta che un utente decide il sistema operativo per il device in
acquisto, cambiare diventa quasi impossibile. Sono invece
interoperabili molte delle applicazioni che si possono installare
all'interno dei device.
Da non tralasciare e il forte trend di crescita relativo a questi telefoni,
22
2 QUADRO DI RIFERIMENTO
infatti il mercato degli smartphone e attualmente in aumento, si
prevede che molti dei telefoni “standard” attuali verranno sostituiti
dagli smartphone nei prossimi anni.
Sommando queste due proiezioni, relative all’utilizzo attuale e a
quello futuro delle tecnologie correlate agli smartphone, si evince che
un sistema operativo che si inserisce in questo contesto ha speranze
per il futuro di diventare il sistema operativo dominante, essendo poi
distribuito come standard per la maggior parte degli smartphone. Di
seguito farò un elenco dei sistemi operativi più conosciuti per
smartphone:
• Android: a livello tecnico, la piattaforma open source Android e
costituita da uno stack, ovvero un set di sottosistemi software,
basato sul kernel Linux e che e composto da applicazioni Java
che vengono eseguite su uno speciale framework, basato
anch'esso su Java e orientato agli oggetti, a sua volta eseguito
su un nucleo costituito da librerie Java eseguite tramite la
macchina virtuale Dalvik, specifica per dispositivi mobili, dotata
di compilatore just-in-time (JIT). Il sistema operativo Android e
composto in tutto da 12 milioni di righe di codice che
comprendono 3 milioni di righe di XML, 2,8 milioni di righe di C,
2,1 milioni di righe di Java e 1,75 milioni di righe di C++.
• BlackBerry: research In Motion (RIM) e la societa dietro la linea
innovativa e premiata dei prodotti BlackBerry. Molti sono i
vantaggi correlati all’utilizzo di un BlackBerry con sistema
operativo RIM, la caratteristica principale di questi apparecchi e
la gestione delle email da dispositivo portatile. Le email
vengono consegnate sul palmare da appositi server attraverso
un servizio di push email, ovvero in modo analogo ai normali
SMS sui telefoni cellulari, praticamente in tempo reale senza
che il cliente debba avviare la ricerca dei nuovi messaggi. In
alcuni casi e possibile sfruttare anche la sincronizzazione
23
2 QUADRO DI RIFERIMENTO
wireless degli elementi PIM (Personal information management,
in pratica rubrica e calendario). Altre caratteristiche dei
BlackBerry includono la compressione e la cifratura dei
pacchetti dati scambiati attraverso la rete, nonche il supporto
per applicazioni in Java di terze parti. Molti modelli, come i
Curve ed i Bold, sono dotati di tastiera full QWERTY con un tasto
dedicato ad ogni lettera dell'alfabeto, mentre altri, come i Pearl,
hanno una tastiera ridotta ed utilizzano un sistema di scrittura
facilitata simile al T9, ma con due lettere per tasto anziche tre
come nella maggior parte dei telefoni, e non disposte in ordine
alfabetico. Per la navigazione nei menu, i modelli piu vecchi
erano dotati di una rotellina che permetteva lo scorrimento in
due direzioni; successivamente il sistema si incentrato su di una
pallina che permetteva lo scorrimento nelle quattro direzioni,
sostituita poi da un piccolo trackpad ottico; esistono inoltre
alcuni modelli dotati di touch screen.
• Symbian OS: Symbian OS è un sistema operativo aperto
adottato come standard dalle principali aziende mondiali,
produttrici di dispositivi per la telefonia mobile. In particolare il
Sony Ericsson e i Nokia. Il sistema operativo Symbian include un
robusto multi-tasking, un supporto integrato per la telefonia, dei
protocolli di comunicazione, la gestione dei dati, un supporto
avanzato per la grafica, delle funzionalità di interfaccia grafica
di basso livello e numerose applicazioni di base. Symbian
dispone anche di funzionalità di multi-threading e di protezione
della memoria. Grande importanza è data all'utilizzo della
memoria, la quale è protetta da tecniche specifiche di Symbian
che determinano la rarità degli errori dovuti a una cattiva
gestione della stessa (memory leak). Altre tecniche simili
permettono un'efficiente gestione dello spazio su disco.
Uno dei vantaggi migliori che però Symbian OS offre ai suoi
24
2 QUADRO DI RIFERIMENTO
utilizzatori è quello di poter modificare direttamente dal
telefono i documenti di Word, Excel, PowerPoint, Outlook
Express e PDF. Comunque da qualche mese Nokia ha
abbandonato Symbian OS per passare a Windows Phone 8 che è
il primo OS mobile di Microsoft basato sul kernel di Windows NT.
Oltre alla possibilità di supportare processori multi-core,
l’aggiornamento del kernel legacy CE permette agli utenti di
Windows di ottenere la stessa esperienza su PC, tablet e
smartphone. Windows Phone 8 non sarà disponibile come
upgrade per i vecchi smartphone con sistema operativo
Windows Phone 7. Per ottenere il nuovo sistema operativo sarà
necessario acquistare un nuovo dispositivo.
Microsoft ha sostanzialmente tagliato fuori gli attuali dispositivi
Windows Phone 7.5, rendendo di fatto obsolete le versioni
esistenti del suo principale partner nella produzione di
smartphone, ovvero la finlandese Nokia.
• Windows Mobile: il primo Windows Mobile venne rilasciato nel
2003 ed era una piattaforma molto diversa da quelle attuali,
che richiedeva programmi applicativi sviluppati in modo
specifico. Inoltre non supportava l'uso di touch screen, aveva
una risoluzione dello schermo minore, richiedeva sempre la
presenza di una classica tastiera telefonica e di comandi
disposti in modo da poter essere usati con una mano sola. Sta
nascendo in questi mesi windows mobile 8. Per prima cosa il
kernel utilizzato non sarà basato su Windows CE, bensì proprio
su Windows 8, così come la sicurezza, la grafica e il video. Tra le
novità principali si può vedere il supporto a 4 risoluzioni diverse,
ai processori multi-core e alle schede di memoria SD.
25
2 QUADRO DI RIFERIMENTO
2.2.5 Caratteristiche principali di IOS e iPhone SDK
IOS rappresenta la versione mobile del sistema desktop Mac OS X
appartenente alla ben nota azienda internazionale produttrice di
hardware-software, la Apple; è utilizzato in tutti i dispositivi mobili
della medesima marca (iPhone, iPod touch, iPad) e mette a
disposizione le tecnologie necessarie per implementare applicazioni
web e/o native, oltre che dare la possibilità agli utenti di usufruire di
un’innumerevole quantità di applicazioni gratuite o a pagamento
pronte per essere installate.
Da subito rivoluzionò il modo di pensare e utilizzare tali dispositivi,
dando inizio ad una vera e propria “corsa allo smartphone”.
Il suo successo è stato determinato dalla facilità d’uso e semplicità,
due dei maggiori punti di forza, che da sempre hanno reso possibile
un utilizzo immediato e rapido, anche grazie ad un’ottima fluidità del
sistema; inoltre i modi in cui si è stata ideata l’interfaccia grafica e si
sono gestite le interazioni con i componenti hardware per supportare
il touchscreen, hanno aumentato il grado di intuitività nei gesti
eseguiti in un utilizzo giornaliero. È opportuno ricordare che tali
caratteristiche generali non consentono un’alta personalizzazione e
manipolazione del dispositivo, limitando la libertà dell’utente finale.
Così facendo, tale piattaforma mobile risulta essere molto sicura e
robusta, rispecchiando una scelta progettuale nonchè una linea di
percorrenza dell’azienda produttrice ben precisa.
Per quanto riguarda gli aspetti architetturali si può notare una grande
affinità presente fra l’ambiente desktop e quello mobile, mettendo in
luce un buon grado di analisi e organizzazione, ma soprattutto
percependo la volontà dell’azienda produttrice di procedere, nel corso
degli anni, verso un’unificazione dei due ambienti, al fine di pervenire
ad una eterogenea gamma di dispositivi, dal punto di vista
dell’equipaggiamento hardware ed obiettivi specifici, nei quali è in
esecuzione il medesimo sistema software sovrastante.
26
2 QUADRO DI RIFERIMENTO
2.2.5.1 Struttura Architetturale di IOS
L’architettura di iOS è simile a quella basica in Mac OS X e come essa
è strutturata in una serie di quattro livelli di astrazione, ognuno dei
quali implementa funzionalità ben specifiche, per rendere semplice la
scrittura di applicazioni che funzionano in modo coerente su
dispositivi con differenti capacità hardware.
Nel livello più alto, il sistema operativo agisce come intermediario fra
l’hardware sottostante e l’interfaccia grafica, mentre le varie
applicazioni installate comunicano con i livelli sottostanti attraverso
un ben determinato set di interfacce, aumentando considerevolmente
la protezione delle applicazioni da eventuali modifiche hardware. Il
livello più basso del sistema ospita i servizi e le tecnologie
fondamentali da cui tutte le applicazioni dipendono.
La maggior parte delle interfacce di sistema sono rese disponibili in
pacchetti speciali chiamati framework. Un framework è un insieme di
librerie dinamiche di funzioni e risorse (header files, immagini etc.). In
aggiunta ai frameworks, Apple rende disponibili alcune tecnologie
nella forma di librerie dinamiche in formato standard; molte di esse
sono appartenenti al livello più basso del sistema operativo e
derivano da tecnologie Open Source, come naturale conseguenza del
fatto che iOS, similmente al corrispondente sistema desktop di casa
Apple, sia basato sulla piattaforma Unix.
2.2.5.2 Livelli Architetturali
Procedendo in un’analisi più accurata circa la composizione e la
coesione della stratificazione che va a formare l’architettura di iOS, si
possono individuare quattro differenti livelli di astrazione, come
mostrato in figura.
27
2 QUADRO DI RIFERIMENTO
Core OS : É lo strato che permette di lavorare a diretto contatto con
l’hardware sottostante ed è considerato il vero cuore del sistema
operativo; infatti in esso sono presenti gli elementi considerati
fondamentali, utilizzati poi dalle tecnologie di livelli sovrastanti.
◦ Accelerate Framework - contiene le interfacce utilizzate per
l’esecuzione di calcoli matematici. Tale strumento ha il
vantaggio di essere ottimizzato per tutte le configurazioni
hardware presenti in dispositivi basati su iOS.
◦ External Accessory Framework - offre supporto per la
comunicazione con la parte hardware di accessori o
componenti collegati a dispositivi basati su iOS.
◦ Security Framework - mette a disposizione interfacce
specifiche per gestire certificati, chiavi private o pubbliche e
la generazione di numeri crittografati pseudo-casuali; tutto
ciò in aggiunta alle caratteristiche di sicurezza già presenti,
in modo da garantire un livello di sicurezza personalizzato
per i dati delle applicazioni sviluppate.
◦ Livello di Sistema - comprende l’ambiente del kernel, i
drivers, e le interfacce Unix di basso livello. Esso non include,
28
Illustrazione 1: livelli architetturali di IOS
2 QUADRO DI RIFERIMENTO
come invece è nel caso di Mac OS X, un’interfaccia utente
caratteristica ma fornisce solamente gli strumenti e servizi
base relativi all’ambiente dedicato al kernel e dello spazio
utente, tipici dei sistemi Unix.
Core Services: Come suggerisce il nome assegnato, questo livello
contiene i servizi di sistema fondamentali, utilizzati da tutte le
applicazioni, spesso considerate utility. Le tecnologie chiave presenti
si possono riassumere nelle aree di interesse che comprendono la
programmazione concorrente, il commercio elettronico, la gestione e
memorizzazione dei dati all’interno di database e presentazione-
manipolazione delle informazione ricevute o trasmesse.
◦ Grand Central Dispatch (GCD) - introdotto nella versone 4.0
di iOS, rappresenta una tecnologia molto utilizzata per
gestire l’esecuzione delle varie attività (task) all’interno delle
singole applicazioni.
◦ Acquisti in–App - implementato tramite lo Store Kit
Framework, il quale mette a disposizione le infrastrutture
necessarie per i processi che coinvolgono le transazione
finanziarie utilizzate all’interno dell’iTunes Store. Esso offre la
possibilità di vendere contenuti e servizi all’interno delle
singole applicazioni, senza dover ricorrere obbligatoriamente
ad una gestione centralizzata dei contenuti commerciali.
◦ SQLite - costituita da una libreria dedicata, permette di
incorporare una versione “lite” del database SQL nelle
applicazioni, senza bisogno di porre in esecuzione
separatamente un database remoto all’interno di un
processo server.
◦ Supporto XML - tramite il Foundation Framework, mette aÉ
per riuscire a trattare il testo all’interno del linguaggio di
markup che rappresenta e descrive l’intera struttura di un
29
2 QUADRO DI RIFERIMENTO
documento.
Nelle tecnologie sopra descritte è spesso indispensabile l’utilizzo dei
frameworks presenti in questo livello, alcuni di essi sono riportati di
seguito.
◦ CFNetwork Framework - è costituito da un insieme di
interfacce in linguaggio C molto performanti, che utilizzano
paradigmi orientati agli oggetti per lavorare con svariati
protocolli di rete; la caratteristica di rilievo è rappresentata
dalla possibilità di ottenere un controllo dettagliato dei vari
stack di protocolli e rendere molto semplice il loro utilizzo
grazie alle astrazioni introdotte.
◦ Core Data Framework - costituisce una tecnologia per la
gestione del modello dei dati.
◦ Foundation Framework - insieme ad UIKit è uno dei
framework essenziali per la piattaforma mobile iOS. Esso si
preoccupa di definire il comportamento base degli oggetti
utilizzati ed introduce per essi delle convenzioni coerenti
quali la gestioni della memoria, il sistema di notifiche e il
supporto alla loro mutevolezza, persistenza e distribuzione.
Oltre a ciò, dà supporto per il sistema di localizzazione e
fornisce alcune misure per rendere maggiormente portabile il
sistema operativo stesso. Ad esso è strettamente legato il
Core Foundation Framework, costituito da un insieme di
interfacce basate sul linguaggio C, indirizzato alla gestione
dei dati e servizi in applicazioni iOS in modo più specifico
rispetto al Foundation Framework.
◦ Core Location Framework - permette di accedere alle
informazioni di localizzazione e posizionamento all’interno
delle applicazioni; in particolare fa uso della tecnologia GPS,
o delle onde Wi-Fi, per ottenere la longitudine e latitudine
30
2 QUADRO DI RIFERIMENTO
correnti.
◦ Core Media Framework - include in se gli strumenti e i tipi di
comunicazione audio/video di basso livello, utilizzati nel
livello architetturale sovrastante, per esempio dal AV
Foundation Framework; quest’ultimo è uno dei tanti
frameworks da utilizzare per riprodurre e creare mezzi di
comunicazione audio-visiva, anche in tempo reale.
◦ Quick Look Framework - fornisce un'interfaccia diretta per la
visualizzazione di un’anteprima dei files non supportati
direttamente.
◦ Store Kit Framework - offre supporto nella compravendita di
contenuti e servizi che avvengono all’interno delle singole
applicazioni.
Media: Rappresenta lo strato che contiene tutte le funzionalità e le
librerie per la gestione di video e audio. Mediante le tecnologie
presenti, si è orientati verso la creazione della migliore esperienza
multimediale raggiungibile su un dispositivo mobile. Necessario
inserire una nota per quanto riguarda una recente tecnologia
sviluppata chiamata AirPlay, la quale permette lo streaming audio
verso la Apple TV oppure verso altoparlanti AirPlay di terze parti. Il
supporto AirPlay è integrato in AV Foundation e Core Audio
Framework; questo implica che qualunque contenuto audio riprodotto
usando uno dei due framework sopra citati è automaticamente reso
idoneo per la distribuzione tramite AirPlay.
◦ AV Foundation Framework - utilizzato per la riproduzione e
manipolazione di contenuti audio; con esso è possibile avere
un ampio controllo su vari aspetti dei suoni riprodotti, come
la possibilità di registrare audio e gestire le informazioni sulle
sessioni sonore acquisite.
◦ Core Audio - offre supporto nativo per le operazioni
31
2 QUADRO DI RIFERIMENTO
sull’audio; in particolare supporta la manipolazione di audio a
qualità stereo, la generazione, registrazione e mix nonchè
riproduzione dell’audio risultante.
◦ Core Graphics, MIDI, Text, Video Frameworks - come tutti i
frameworks presenti in questo livello architetturale,
permettono di avere un ampio controllo e possibilità di
espressione nelle rispettive aree di interesse.
◦ OpenAL (AudioLibrary) Framework - rappresenta uno
standard inter-piattaforma per posizionare fonti audio in
modo tridimensionale, tenendo in considerazione i parametri
di disturbo che potrebbero influire. Viene utilizzato per
implementare giochi o altre applicazioni che richiedano un
audio posizionale in output, caratterizzate da alte prestazioni
e soprattutto con un audio di altissima qualità.
◦ OpenGL (Graphical Library) ES Framework - è una potente
libreria grafica, pensata per interfacciarsi direttamente con
l’hardware e fornire al singolo programma una serie di
primitive, più o meno essenziali, per lo sviluppo di
applicazioni nel campo del rendering 2D e 3D. Le primitive
considerate comprendono funzioni per la manipolazione dei
pixel, per la proiezione di poligoni in 3D e per la gestione del
movimento degli stessi, per la rappresentazione di luci etc.
◦ Quartz Core Framework - contiene le interfacce del Core
Animation, una tecnologia avanzata per l’animazione e
composizione, utilizzata come via per il rendering ottimizzato
al fine di implementare complesse animazioni ed effetti
visivi.
Cocoa Touch: Rappresenta lo strato più vicino all’applicazione utente
e i frameworks di questo livello supportano direttamente le
applicazioni basate su iOS. Esso si occupa della gestione del touch e
32
2 QUADRO DI RIFERIMENTO
multi-touch, interpretando i differenti gesti (gestures) compiuti
dall’utente finale mediante i gesture recognizers, oggetti collegati alle
view (a loro volta definite come schermate visibili sul video), utilizzati
per rilevare i tipi più comuni di gestures, come lo zoom-in o la
rotazione di elementi; non appena collegati si può stabilire quale
comportamento associare ad essa. Oltre alla gestione del touch,
molti dei frameworks del livello Cocoa Touch contengono specifiche
classi genericamente denominate View Controller, per poter
visualizzare interfacce standard di sistema. Tali componenti
rappresentano particolari tipi di controller molto utilizzati per
presentare e gestire un insieme di view; giocano un ruolo importante
nella progettazione ed implementazione di applicazioni iOS perchè
forniscono un’infrastruttura per gestire i contenuti correlati alle view e
coordinare la comparsa/scomparsa di queste ultime.
Un’ulteriore caratteristica di questo livello è data dal supporto a due
differenti modalità in cui utilizzare le notifiche, le quali danno la
possibilità di avvisare l’utente di nuove informazioni mediate un
segnale sonoro o visivo. Il primo prende il nome di Apple Push
Notification Center; utilizza un processo server per generare e
distribuire la notifica inviatagli dal client, mentre Il secondo, Notifiche
Locali, completa il meccanismo di notifiche sopra descritto dando la
possibilità, in fase di progettazione, di generarle in locale, senza fare
affidamento su un server esterno.
Infine, molto importante per gli argomenti correlati alle prestazioni di
sistema, è il pieno supporto dato al Multitasking anche ad alto livello
architetturale, per poter coordinare ed impostare azioni tipiche del
livello applicativo, come la ricezione di notifiche, il passaggio da uno
stato attivo ad uno passivo.
Come in tutti gli altri livelli in cui è strutturato iOS, anche in Cocoa
Touch si utilizzano innumerevoli frameworks per giungere agli
obbiettivi appena descritti, dei quali se ne riportano i più importanti.
33
2 QUADRO DI RIFERIMENTO
◦ Game Kit Framework - fornisce varie funzionalità separate,
principalmente implementabili nelle applicazioni di tipo
ludico; una di queste è la possibilità di attivare una
connettività con altri dispositivi basati su iOS di tipo peer–to–
peer tramite una connessione diretta (Bluetooth o wireless),
con la quale scambiarsi qualsiasi tipo di dato. Inoltre è
possibile usufruire di una comunicazione vocale, sempre
attraverso l’attivazione di una rete personale e diretta fra i
due interlocutori che utilizzano prodotti equipaggati con iOS.
Per garantire la massima integrazione con le applicazioni
ludiche, tale framework mette a disposizione uno strumento
chiamato Game Center, che presenta innumerevoli funzioni
tra cui la possibilità di essere in contatto con una lista di
amici quando si gioca, mantenere online una classifica e
risultati personali aggiornati, il supporto al multiplayer etc.
◦ Map Kit Framework - fornisce un’interfaccia per integrare le
mappe direttamente nella finestre e view delle applicazioni,
supportando anche l’inserimento di annotazioni, la
possibilita` di introdurre sovrapposizioni fra differenti
tipologie di mappe e la ricerca tramite un’operazione di
reverse–geolocation al fine di determinare le informazioni per
un determinato segnaposto, una volta note le coordinate
geografiche. È importante ricordare che si utilizza
largamente il servizio di Google per poter visualizzare mappe
dati.
◦ iAd Framework - consente all’applicazione di ottenere un
introito mediante la visualizzazione di annunci pubblicitari
nella forma di piccoli banner.
◦ UIKit Framework - come già accennato nel livello Core
Services, è uno dei due framework portanti nella struttura
architetturale di iOS; in questo caso il suo compito principale
34
2 QUADRO DI RIFERIMENTO
è mettere a disposizione tutte le classi atte alla costruzione e
gestione del’interfaccia utente nell’applicazione. Inoltre
incorpora il supporto per caratteristiche specifiche di alcuni
dispositivi, come l’accellerometro, la libreria fotografica
dell’utente, informazioni sullo stato della batteria, sui sensori
di prossimità etc.
2.2.6 iPhone SDK
Attualmente sono disponibili sul mercato vari modelli di iPhone e
sistemi operativi iOS, con caratteristiche e versioni diverse [8].
L'iPhone SDK è il kit per gli sviluppatori di software. Viene aggiornato
periodicamente, per cui esistono più release che presentano alcune
differenze nella stesura del codice. L'applicazione realizzata per
questa tesi è stata sviluppata con l'iPhone SDK versione 5.1.
35
2 QUADRO DI RIFERIMENTO
2.2.7 iPhone e iPad
2.2.7.1 iphone
Il 9 gennaio del 2007, alle 9.42 del mattino, il modo di vivere è
cambiato, qualcosa di speciale è stato presentato al mondo, ma
nessuno immaginava quanto avrebbe inciso nella vita quotidiana in
un tempo così breve. Il prodotto che conosciamo come iPhone, che
ancora molti considerano un gadget, si è rivelato uno strumento
rivoluzionario. Questo dispositivo ci consente un aggiornamento
continuo sulle ultime notizie, sui trend del mercato e ci mantiene
informati sul programma della giorno. Grazie all'iPhone, abbiamo
un'altra nfinità di cose che si possono fare, dove e quando si vuole. È
davvero “la vita in tasca”.
L'iPhone ha reso possibile una sorta di economia dedicata per la quale
non servono più brevetti o investimenti eccessivi per ottenere
36
Illustrazione 2: iPhone
2 QUADRO DI RIFERIMENTO
successo in tutto il mondo, basta avere un'idea e la motivazione per
realizzarla.
L’iPhone, insieme ad iPod ed iPad utilizza iOS (precedentemente
descritto).
Il processore dell’iPhone appartiene alla famiglia ARM ed il sistema
operativo è compilato per questa tipologia, a differenza di quello per
computer che è compilato per processori PowerPC e X86. Di
conseguenza non è possibile copiare semplicemente le applicazioni
da un PC ad un dispositivo mobile, ma queste devono essere riscritte
e ricompilate per poter funzionare correttamente. Il sistema operativo
occupa all’incirca 700 MB di spazio nella memoria flash del
dispositivo.
Dopo la commercializzazione iniziale del prodotto sono stati
riscontrati alcuni problemi di stabilità e sicurezza che sono stati risolti
con il primo aggiornamento rilasciato il primo agosto 2007.
L’11 luglio 2008 è stata rilasciata la versione 2.0 del sistema
operativo ed in contemporanea l’iPhone 3G è stato reso disponibile in
22 paesi. È stato così introdotto l’App Store, un negozio on-line
tramite il quale gli utenti possono scaricare gratuitamente o a
pagamento applicazioni per il dispositivo.
Il 7 giugno 2010, in contemporanea alla presentazione del nuovo
iPhone 4, è stata annunciata la quarta versione del sistema operativo,
iOS 4.0, pubblicata ufficialmente il 21 giugno.
Il 23 novembre 2010 è stata rilasciata la versione 4.2.1 che per la
prima volta ha portato tutte le funzioni di iOS 4 anche su iPad. [9]
L’ultima generazione di questo dispositivo è l’iPhone 4s. [11]
Nonostante la sua somiglianza con l’iPhone 4, tre caratteristiche lo
distinguono:
• Siri (assistente personale a riconoscimento vocale)
37
2 QUADRO DI RIFERIMENTO
• la nuova fotocamera da 8 megapixel
• il processore A5 di potenza notevolmente superiore.
L’iPhone 4S ha anche un design più sottile ma nessuna di queste
caratteristiche però è importante come Siri. Esistono altre modifiche
di minore importanza:
1. Miglioramenti dell’antenna: Uno di questi cambiamenti è che la
temuta “death grip” o “presa della morte” non c’è più
nell’iPhone 4S. Un difetto conosciuto che causava
un'attenuazione dei segnali wireless quando la mano che
tratteneva il dispositivo interferiva con l'antenna. La Apple ha
risolto il problema fornendo bumper gratuiti che non
impedivano la ricezione del segnale.
Il progetto migliorato dell’antenna significa anche una rete 3G
più veloce, una migliore qualità delle chiamate, e il Wi Fi veloce
come la luce.
2. Controlli: Sono stati leggermente spostati i controlli dell'iPhone
4S, come conseguenza molte delle custodie disegnate per far
entrare un iPhone 4 non vanno bene per l’iPhone 4S.
3. Motore della vibrazione più silenzioso
4. Miglioramenti dell’Audio: Lo speaker dell’iPhone 4S è
notevolmente più forte e di maggiore qualità di quello
dell’iPhone 4.
5. Bluetooth 4.0: L’iPhone 4S è il primo iPhone che supporta il
Bluetooth 4.0, un bluetooth che permette ai dispositivi di
sincronizzarsi con basso consumo di energia. Questa versione
supporta solo la trasmissione di dati come cardio-
frequenziometri, orologi e dispositivi di input come tastiere o
controller per giochi. Le applicazioni per la salute ed il fitness
relative a questo miglioramento sono teoricamente infinite.
38
2 QUADRO DI RIFERIMENTO
6. Video Mirroring: L’iPhone 4S è il primo iPhone che supporta il
mirroring con una Apple Tv via Airplay. Il video mirroring a una
TV Apple renderà molto più semplice condividere contenuti con
le persone sedute vicino.
L'evoluzione del mercato e la continua concorrenza obbliga gli
sviluppatori di questi dispositivi ad un continuo aggiornamento delle
applicazioni.
Per quanto riguarda l’applicazione descritta in questo documento, una
volta optato per l’ambiente Apple, si è scelto di svilupparla
inizialmente per il dispositivo iPhone. Successivamente considerato
che il display dell'iPad è molto più grande e più leggibile si è pensato
di rendere la stessa applicazione disponibile anche per iPad.
2.2.7.2 Ipad
39
Illustrazione 3: iPad
2 QUADRO DI RIFERIMENTO
La presentazione del nuovo dispositivo portatile della Apple, iPad, ha
generato in tutto il mondo voci e notizie su di esso e sul segmento di
mercato in cui si sarebbe potuto inserire. Questa pubblicita non ha
fatto altro che alimentare il suo successo.
Il 27 gennaio 2010 l'ex amministratore delegato dell'azienda Steve
Jobs ha introdotto il dispositivo come anello di congiungimento tra gli
smartphone e i notebook, ma che abbia allo stesso tempo
caratteristiche migliori di entrambe. Una delle critiche che da subito e
stata mossa all'iPad e il fatto di non essere portabile come il primo e,
al contempo, non avere le performance paragonabili a quelle del
secondo. Dal punto di vista opposto si capisce come sia piu portabile
di un notebook e piu performante di uno smartphone. Come Jobs ha
detto alla presentazione, e stato pensato per un uso abbastanza
specifico: navigare sul web, leggere le email, guardare foto, video e
film e leggere libri e riviste. Questo tablet non esclude utilizzi diversi,
infatti puo diventare un'ottima console portatile, o uno strumento di
produttivita grazie alla suite iWork.
Il giorno del suo lancio negli USA, il 4 aprile 2010, iPad ha venduto
300.000 unita ed in meno di un mese e riuscito a varcare la soglia del
milione, superando perfino il successo del lancio dell'iPhone che tre
anni prima impiego oltre 70 giorni per raggiungere lo stesso risultato.
2.2.8 Distribuzione digitale
Con distribuzione digitale si intende la consegna di contenuti senza
l’utilizzo di mezzi fisici, soltanto scaricandoli da internet direttamente
sul dispositivo dell’utente. Questo metodo di distribuzione, sempre più
utilizzato, bypassa i canali convenzionali. Le principali piattaforme di
distribuzione digitale che operano in questo campo sono l’App Store
della Apple per i dispositivi con il sistema operativo iOS, l’Android
Market di Google per quelli che hanno Android, Ovi Store per i
dispositivi nokia e Windows Phone Marketplace per quelli con
40
2 QUADRO DI RIFERIMENTO
Windows Phone 7. Questi servizi sono accessibili attraverso
un’applicazione pre-installata sul dispositivo che permette di scaricare
gratuitamente o a pagamento migliaia di applicazioni.
Il mercato digitale delle applicazioni mobili ha avuto un notevole
successo e, secondo una recente analisi, entro il 2015 raggiungerà
182,7 miliardi di download, in crescita dai 10,7 miliardi registrati nel
corso del 2010. [13]
Questo mercato si sta evolvendo soprattutto per quanto riguarda il
business, infatti le applicazioni gratuite solitamente sono limitate ma
consentono di fare acquisti direttamente all'interno delle stesse per
aumentarne le funzionalità.
In generale, con questo sistema di distribuzione, l’utente non avrà più
bisogno di girare per il web o per negozi alla ricerca di un software
che soddisfi i propri bisogni ma sarà sufficiente accedere al negozio
digitale, scorrere tra le categorie e scegliere l’applicazione più vicina
alle sue esigenze e alle sue tasche.
Di seguito verrà fatta una breve panoramica sull’attuale situazione
dell’App Store di Apple.
2.2.9 App Store
L’App Store è un servizio realizzato da Apple disponibile per iPhone,
iPod touch e iPad che permette agli utenti di scaricare e acquistare
applicazioni disponibili in iTunes Store. Le applicazioni possono essere
sia gratuite che a pagamento, e possono essere scaricate
direttamente dal dispositivo o su un computer.
L’App Store è stato aperto il 10 luglio 2008 tramite un aggiornamento
software di iTunes. Volendo fornire qualche dato su quello che è il
mercato relativo a questo servizio, il 10 luglio 2008, Steve Jobs ha
dichiarato che l’App Store conteneva 500 applicazioni di terze parti
per iPhone e iPod touch, e il 25% di queste erano gratis. L’11 luglio
41
2 QUADRO DI RIFERIMENTO
2008, l’App Store viene aperto permettendo agli utenti di acquistare
le applicazioni tramite il proprio dispositivo. Nella prima settimana
sono state scaricate 10 milioni di applicazioni. Il 16 gennaio 2009,
Apple ha annunciato sul proprio sito web di aver raggiunto il
traguardo di 500 milioni di applicazioni scaricate. A differenza delle
applicazioni pre-esistenti su iPhone, iPod touch e iPad, le applicazioni
scaricate dall’App Store possono essere rimosse. [14] Un utente può
entrare nello store tramite l’applicazione predisposta sul suo cellulare,
può quindi scorrere le app, vederne le caratteristiche e le recensioni
di altri utenti. Utilizzando l’account Apple a cui è associata la carta di
credito egli può acquistare l’applicazione che viene direttamente
scaricata ed installata sul proprio iPhone e quindi può essere subito
utilizzata. Il 20 ottobre del 2010 è stato annunciato il rilascio del Mac
App Store, del tutto uguale all’App Store per dispositivi mobili, ma
relativo ad applicazioni per il sistema operativo Mac OS X. Così, anche
chi non dispone di un dispositivo mobile, può utilizzare questo sistema
per ottenere software per il proprio computer direttamente da
internet. Secondo Apple questo sistema rappresenta il futuro per la
vendita e la distribuzione di qualsiasi tipo di prodotto che non abbia
bisogno di un supporto fisico.
L’applicazione descritta in questo documento di tesi è già disponibile
su App Store, in accordo con la casa produttrice del gioco in scatola.
Per rendere disponibile un'applicazione su App Store si richiede che
l’autore della stessa abbia un account da sviluppatore che viene
rilasciato sotto il pagamento di una quota annua.
Questo sistema di distribuzione e vendita permette a chiunque sia
uno sviluppatore di rendere disponibile in tempi rapidi la propria
applicazione per tutti gli utenti interessati senza altri intermediari.
Con questo tipo di distribuzione si crea una positiva concorrenza che
porta gli sviluppatori a realizzare applicazioni sempre più raffinate o
innovative.
42
2 QUADRO DI RIFERIMENTO
2.2.10 Le applicazioni per smartphone
Il decollo del Mobile Web e riscontrabile non solo in termini di
innovazioni tecnologiche, ma soprattutto nell’utilizzo quotidiano. Esso
infatti si sta inserendo prepotentemente nella vita delle persone,
cambiandola sensibilmente fino al punto di condizionarla.
Nasce, di conseguenza, la necessita di sviluppare nuove applicazioni,
che permettano di sostenere questo cambiamento radicale nelle
abitudini dei vari utenti. Sul mercato esistono innumerevoli
applicazioni e molte sono in fase di implementazione per adeguarsi al
nuovo modo che ha l'utente di vedere e di considerare il Web.
Molto interessante e l’articolo [15] “Mobile Stores & Applications
Stores” di Soichi Nakajima ( pubblicato nel novembre 2010), il quale
conferma che il mercato delle applicazioni crescera nel tempo
esponenzialmente, raggiungendo dei profitti di 6,9 miliardi di euro gia
nel 2013.
Il concetto di “store” per le applicazioni, insieme al sistema operativo
ed alle piattaforme su cui vengono eseguite, sono diventati i punti
cardine di discussione nel panorama attuale relativo al business
futuro. Molte sono le tipologie di attori coinvolti in questo ambito: i
produttori di dispositivi, i colossi di Internet, gli sviluppatori e gli
operatori telefonici i quali ricercano continuamente nuove strategie
per essere più competitivi, al fine di conservare una solida posizione
sul mercato ed incrementare le quote di utenti.
I tipi di applicazioni più comuni per i device mobili sono:
• social network: utilizzabili tramite browser del dispositivo mobile
che permette di segnalare la propria posizione e altre
informazioni alle persone del nostro network
• prenotazioni online: le applicazioni consentono prenotazione on-
43
2 QUADRO DI RIFERIMENTO
line degli hotel, dei voli, di soggiorni ... Per queste sono state
create delle particolari carte di fedelta per incentivarne
l'utilizzo.
• fashion, Glamour & Shopping Applications: Per alcuni dispositivi
e possibile essere sempre aggiornati sulle le nuove collezioni e
sui nuovi arrivi negli store di abbigliamento. Sara possibile
vedere il catalogo e comprare direttamente i capi preferiti. Oltre
ad avere la possibilita di avere un negozio sempre disponibile
da visionare, ci sono anche altre applicazioni che permettono
all’utente di guardare il mondo della moda attraverso gli occhi
dei migliori professionisti del settore. Fotografi, makeup artist,
stilisti e modelle di tutto il mondo condividono le loro idee sugli
ultimi trend della moda,..
• gestione spese: è possibile, attraverso applicazioni di facile
utilizzo, avere un personal manager virtuale per gestire le
proprie spese.
• giochi: è possibile utilizzare il dispositivo mobile come console
portatile per giocare in locale o in rete contro gli amici.
• film e tv: è possibile vedere i canali della tv direttamente
dall'iphone, vedere l'elenco delle programmazioni giornaliere e
conoscere le trame di film.
• applicazioni mediche: A seguito del boom degli smartphone, e
di conseguenza delle applicazioni, si stanno diffondendo
applicazioni sempre diverse e svariate, fra le quali anche alcune
di carattere medico. Come viene detto nell’articolo pubblicato
su www.pianetacellulare.it : [16] l’uso di uno strumento
portatile come uno smartphone facilita lo scambio di
informazioni fra specialisti di settore e pazienti. Un telefonino
infatti puo diventare un sistema efficace per comunicare e
inviare dati al proprio medico oppure per conoscere il proprio
44
2 QUADRO DI RIFERIMENTO
stato di salute. Nell’articolo pubblicato a seguito della ricerca,
Ralf-Jahns Gordon, capo della ricerca presso research2guidance,
sottolinea: "I nostri risultati indicano che la rivoluzione tanto
attesa, ottenibile tramite smartphone, in assistenza sanitaria
sta per accadere.".
2.2.11 Applicazioni simili già esistenti
Attualmente esistono tantissime applicazioni per smartphone
scaricabili dalle piattaforme di distribuzione digitale. Trattandosi di un
gioco, tra le molteplici attualmente in commercio, dobbiamo solo
considerare la categoria di giochi e nello specifico: “giochi da tavolo”.
Il mercato di questi prodotti è in continua ascesa per cui non è
possibile essere al corrente di tutte le applicazioni che vengono rese
disponibile nei vari store digitali.
Elenco alcuni boardgames presenti all'interno dell'App Store, come
esempio: “Ticket to ride” (gioco da tavolo francese di ambientazione
ferroviaria, consiste nel costruire una rete di stazioni, collegando le
città presenti sul tabellone secondo degli obiettivi forniti dalle carte),
“Dominion” (gioco di carte), … e altri più classici come: Uno, scopa,
briscola, monopoli, trivial pursuit, ecc...
Nell'App Store esiste una categoria che racchiude tutti i giochi,
all'interno della quale si trova quella che a noi interessa “Giochi da
45
Illustrazione 4: categoria "Giochi" dell'AppStore
2 QUADRO DI RIFERIMENTO
tavolo”.
Ogni gioco ha delle regole tutte sue e la caratteristica che accomuna
molti di questi è che esiste nel mondo reale, mentre su iphone viene
realizzata l'edizione digitale.
È anche possibile in molte applicazioni giocare in rete con altri
partecipanti attraverso dei server dedicati oppure attraverso quello
messo a disposizione dalla Apple.
2.2.12 Game center
Il sito web [17] dell'Apple Store che descrive il Game Center esplicita
quanto segue:
“Con Game Center il campo di gioco si apre a tutti i tuoi amici: anche
quelli che non conosci ancora. Manda gli inviti, poi dai inizio alla sfida.
Oppure mettiti in gioco contro gamer di tutto il pianeta. Occhio, però:
questi non sono amici, sono avversari. È la regola del gioco.”
Il Game Center, infatti, espande in modo esponenziale gli orizzonti del
gioco online. Per giocare basta un dispositivo mobile della Apple e
attraverso il tocco dell’applicazione del Game Center sulla schermata
Home, si accede con il proprio Apple ID. Dopo aver creato un nome
utente e aggiunto una foto al profilo questo sarà visibile dagli amici e
dalla community di gioco. Al Game Center si possono anche abbinare
più indirizzi e-mail, così tutti potranno trovare il profilo in questione.
Una volta che un utente si logga nel Game Center, esso rimane
46
Illustrazione 5: categoria "Giochi da tavolo" dell'AppStore
2 QUADRO DI RIFERIMENTO
sempre connesso e visibile dai suoi avversari, finché non decide di
scollegarsi.
Questo strumento consente di coinvolgere amici per partecipare alla
partita. All'interno del Game Center, si può invitare chi si vuole
usando nickname o indirizzi e-mail, o lasciare che sia lui a proporre
nuovi amici in base ai giochi che si posseggono e agli avversari che si
sono già affrontati. Gli amici appaiono nell’applicazione in un elenco:
basterà quindi toccare i loro nomi per vedere a cosa hanno giocato.
Esiste anche una sezione inerente agli inviti dove altri utenti potranno
richiedere l'amicizia.
Un'altra funzionalità del Game Center è la visualizzazione della
classifica ed il confronto dei vari risultati con gli altri. Le tabelle dei
risultati ci consentono di valutare come se la sta cavando l'utente.
Per creare una partita multiplayer esiste anche l’abbinamento
automatico che cerca per l'utente altri giocatori interessati: prima fra
gli amici, e poi fra avversari di tutto il mondo. Se si preferisce si
possono invitare alcuni amici e poi usare questa funzione per trovare
gli avversari che mancano per iniziare la partita.
Anche Nahavandipoor nel suo libro “Writing Game Center App in IOS”
[25] descrive il Game Center come una tecnologia Apple che
permette ai sviluppatori di giochi di integrare le tabelle dei punteggi,
gli achievements, e il supporto multiplayer nelle applicazioni IOS. È
molto importante perchè la Apple si prende cura dell'infrastruttura
server del Game Center per lo sviluppatore. Apple provvede infatti
framework (Gamekit) per integrare il Game Center all'interno delle
applicazioni.
47
2 QUADRO DI RIFERIMENTO
2.3 L'ambiente ludico
Un boardgame è un gioco che può richiedere una ben definita
superficie, che viene detta di solito plancia, sulla quale vengono
posizionati i pezzi che, in assenza di termini più specifici, si diranno
segnalini. Altri tipi di gioco possono essere costituiti solo da mazzi di
carte specificatamente realizzati.
I giochi da tavolo rappresentano un fenomeno piuttosto diffuso nei
paesi occidentali come momento di aggregazione, la loro importanza
nella vita sociale spesso è legata alle tradizioni nazionali. In Germania
e nei paesi di lingua tedesca, la cultura del gioco da tavolo è più
diffusa che in Italia. Non a caso proprio la Germania ospita il premio
Spiel des Jahres (gioco dell'anno), che è il più importante del mondo.
Questo genere di giochi è motivo di aggregazione anche in ambito
famigliare in particolare per quelli che si prestano a essere giocati a
tutte le età. Esistono anche giochi da tavolo le cui regole richiedono
un attento e approfondito ragionamento, anche per gli adulti, durante
le partite.
Fornire una classificazione soddisfacente e completa dei giochi da
tavolo non è cosa facile; alcune suddivisioni di fondo, tuttavia, sono
considerate abbastanza universalmente dalle comunità di giocatori, di
seguito ne presenterò alcune.
• Simulazioni e giochi astratti: i primi possono essere considerati
come simulazioni di aspetti della vita reale, favorendo la
finzione e l'immedesimazione (per esempio Cluedo, Scotlan
Yard). Altri alludono alla realtà solo vagamente, non hanno
un'ambientazione specifica, e vengono chiamati giochi astratti
(come gli scacchi e la dama).
• Determinismo, fortuna, e statistica: Un'altra suddivisione dei
giochi può essere fatta in funzione dell'elemento casuale, e
quindi della fortuna. I giochi a informazione completa (scacchi,
48
2 QUADRO DI RIFERIMENTO
dama, ecc) hanno una meccanica completamente
deterministica: in ogni momento, la situazione di gioco dipende
esclusivamente dalle scelte via via operate, e i giocatori hanno
tutte le informazioni necessarie per prevedere le conseguenze
di tali scelte, per cui si esalta l'abilità di chi compie le mosse. I
giochi legati solo alla fortuna non consentono di eseguire alcuna
scelta strategica. Si tratta normalmente di giochi per bambini,
come il gioco dell'oca. Gran parte dei giochi per adulti con
componente casuale si può classificare come gioco statistico. In
questo caso l'elemento casuale è presente ma la sua rilevanza
viene ridimensionata dalla legge dei grandi numeri1 e le
strategie sono dettate da considerazioni statistiche. L'elemento
casuale può essere ottenuto con mezzi diversi: il più frequente è
il dado, in altri casi esistono mazzi di carte particolari, ecc..
• Presenza della diplomazia: Un altro elemento importante in un
gioco da tavolo è la presenza o meno di elementi di diplomazia,
ovvero la possibilità dei giocatori di stringere alleanze, stabilire
accordi, e così via. Nei giochi con diplomazia vengono messe in
campo qualità personali come la capacità di persuasione e
mediazione.
Si possono ovviamente suddividere i giochi da tavolo anche in
funzione del numero minimo e massimo di partecipanti, del livello di
difficoltà delle regole, della durata delle partite; e così via.
Esistono altre categorie di giochi che si possono identificare
chiaramente:
• Giochi di percorso: Nei giochi di percorso, il tabellone
rappresenta un tragitto che deve essere compiuto dai giocatori,
e il vincitore è normalmente il giocatore che arriva per primo al
1 La legge dei grandi numeri descrive il comportamento della media di una
sequenza di n variabili casuali indipendenti e caratterizzati dalla stessa distribuzione
di probabilità. La media è un'approssimazione che migliora al crescere di n.
49
2 QUADRO DI RIFERIMENTO
traguardo (Gioco dell'oca,...).
• Giochi di posizionamento: Si tratta di una categoria di giochi
piuttosto diffusa in Germania, in cui la dinamica è incentrata sul
posizionamento di pedine sul tabellone, allo scopo di ottenere
determinati risultati, per esempio ottenere materie, o costruire
qualcosa; in alcuni casi, addirittura, il tabellone è il risultato
delle azioni di posizionamento, viene costruito giocando turno
dopo turno delle tessere che si uniscono l'una con l'altra.
• Giochi di carte: Alcuni giochi da tavolo non utilizzano un
tabellone, ma si giocano solo, o principalmente, facendo uso di
speciali carte. Non mi riferisco ai giochi di carte propriamente
detti (briscola, scopa,...) bensì a quei giochi che utilizzano mazzi
di carte appositamente progettati (Uno, Spirits!, Coloretto,..).
• Wargame: I wargame sono giochi da tavolo che simulano in
maniera accurata guerre e battaglie. In alcuni casi l'enfasi è
proprio sul realismo della simulazione, e questo implica regole
di difficile interpretazione, accettabili solo dai veri appassionati .
Vi sono comunque anche wargame che cercano un
compromesso fra il realismo e la giocabilità rendendo le
meccaniche di gioco di più facile interpretazione (uno dei più
semplici e conosciuti è Risiko).
• Giochi di miniature: I pezzi di questi giochi sono miniature
create con particolare realismo, elemento che pone questi al
confine con il modellismo. Di solito sono giochi di
combattimento.
• Giochi alla tedesca: Si tratta in genere di giochi caratterizzati da
elementi strategici, regole semplici e adatte al gioco in famiglia,
componentistica di buona qualità, e breve durata delle partite.
• Giochi all'americana: Quasi in contrapposizione alla precedente
categoria c'è il filone americano. Questi sono principalmente di
50
2 QUADRO DI RIFERIMENTO
simulazione storica, realtà industriale, fantascienza, ecc. Di
solito hanno una durata piuttosto elevata, da 2 ore in su,
regolamenti complessi e componentistica particolarmente ricca
e curata.
I boardgame sono stati utilizzati da sempre nella maggior parte delle
culture e delle società, probabilmente pre-esistenti addirittura alle
prime forme di scrittura. Numerosi siti archeologici, artefatti e
documenti forniscono importanti indizi circa la storia dei giochi da
tavolo:
• La tomba reale di Merknera contiene le raffigurazioni del gioco
egizio Senet, il più antico gioco da tavolo noto.
• La tomba reale di Ur conteneva vari giochi, fra cui il gioco reale
di Ur. Questi furono riportati alla luce da C. Leonard Woolley. La
maggior parte di questi giochi si trova oggi esposta al British
Museum di London.
2.3.1 L'aspetto informatico nel mondo ludico
2.3.1.1 Giochi in rete
Si puo identificare come gioco online qualsiasi gioco che necessiti di
un computer connesso alla rete per poter essere eseguito. Il mercato
fiorente di questa tipologia di giochi si sta rivelando un grande
business per le ditte sviluppatrici di videogiochi in considerazione
dell'elevato numero di giocatori occasionali e non.
Le tipologie di giochi online piu diffuse sono:
• Mmorpg (Massively Multiplayer Online Role Playing Games):
giochi di ruolo online. Di solito tendono a suddividersi in 3 grossi
gruppi:
◦ quelli dove è previsto un abbonamento a pagamento,
51
2 QUADRO DI RIFERIMENTO
◦ quelli dove si acquista il gioco,
◦ quelli completamente gratuiti ma con l'aggiunta di banner
pubblicitari nella schermata di gioco.
• Giochi Flash: Il formato Flash è fruibile da qualsiasi dispositivo,
computer, cellulari, smartphone, tablet, ad eccezione di iphone
e ipad, in quanto non lo supportano.
• Giochi d'Azzardo: giochi come il poker online.
La caratteristica di interattività di Internet unita alle nuove possibilità
offerte dai software permette di creare una moltitudine di aree
ludiche che possono essere condivise da tutti gli utenti della rete e
che possono essere considerate vere e proprie sale-giochi.
Per partecipare è sufficiente riempire un modulo con i dati anagrafici
specificando l’indirizzo di posta elettronica. Si avvia poi una procedura
di login nella quale si dovranno fornire username e password. Lo
username funge anche da pseudonimo (nickname) che rende gli
utenti univocamente identificabili da tutti i compagni di gioco.
L'insieme di nickname ed eventuali caratteristiche iconiche e
descrittive costituisce l’avatar.
L’importanza della componente ludica nella vita della rete non sta
solo nei tanti siti e servizi che vengono dedicati ai giochi in senso
proprio, ma anche nello spirito ludico che è presente in siti di natura
del tutto diversa e contribuisce ad animarli, a dare loro vita.
Ad esempio è facile notare lo spirito “di club” che anima molti siti
anche accademici dedicati, ad esempio, a temi di storia del cinema,
della letteratura, o di evoluzione delle tecnologie.
Lo sviluppo delle reti telematiche sembra quindi coincidere con la
nascita di comunità ludiche aperte, molto grandi, che comprendono
adolescenti e adulti, cosa che condiziona profondamente sia i modelli
di interazione sia la percezione sociale della tecnologia e dei suoi usi.
52
2 QUADRO DI RIFERIMENTO
Come dice in un suo articolo, Enrico Netti, [23]:”Play everywhere,
play everytime. Ovvero puntare online con il computer ma sempre
più con smartphone e tablet per finire con il televisore. Dal poker alle
roulette, dalle scommesse sportive al lotto con tutte le sue molteplici
varianti c'è l'imbarazzo della scelta per chi ritiene che nel gioco
niente è impossibile, soprattutto quando si inseguono vincite
milionarie. “
Fino a pochi anni fa eravamo abituati al gaming in rete su computer.
Un computer di buon livello e dotato di connessione a Internet è il
requisito necessario e sufficiente per poter giocare online. È meglio
possedere un sistema di buon livello in quanto le caratteristiche
richieste dai giochi sono diverse. I giochi sono infatti attività
decisamente onerose in termini di risorse del sistema, per cui si
consiglia un PC con un processore veloce, tanta memoria RAM e un
Hard Disk capiente. Non possono mancare, inoltre, una buona scheda
video 3D con supporto per le ultime librerie DirectX, magari
aggiornata alle più recenti tecnologie, e una scheda audio, meglio se
una buona scheda con capacità multicanale e supporto Surround.
Tutto questo riguarda il gioco in sé, poiché per giocare in rete è anche
necessaria una connessione ad Internet. La regola è semplice: più la
connessione è rapida e stabile, maggiore è la giocabilità. Un tempo, il
requisito minimo per poter partecipare ad una sessione di gioco
online, era un modem con Trasfer Rate di 56 kbps, ma al giorno d’oggi
questa velocità “minima” non è può sufficiente per assicurare una
fluidità di gioco quanto meno sufficiente. Questo è sì dipendente dalla
complessità del gioco, ma anche (e soprattutto) dal numero di utenti
che giocano contemporaneamente; calcolare i movimenti e le azioni
di 15 giocatori nella stessa schermata di gioco è sicuramente molto
più “oneroso” rispetto alla gestione di una partita a scacchi. È quindi
indispensabile una connessione a banda larga, più veloce possibile:
640 kbps è oggi il limite minimo per ottenere una discreta giocabilità,
ma sarebbe preferibile spingersi anche oltre, raggiungendo alcuni
53
2 QUADRO DI RIFERIMENTO
Mbps di transfer rate. Più che un concetto di "banda", al gamer
interessa che la latenza sia bassa, più vicina possibile allo zero
teorico: con questo termine (cui molti gamer si riferiscono parlando di
"lag") si identifica la velocità di reazione del server di destinazione
agli impulsi del giocatore. Tanto più è "reattiva" la connessione,
migliore e più realistico è il gioco: non per niente esistono
abbonamenti web fatti appositamente per i net gamer, che oltre ad
assicurare un quantitativo di banda più che sufficiente per tutte le
applicazioni ludiche, garantiscono anche latenza molto bassa,
prossima allo zero teorico.
54
3 SVILUPPO DELL'APPLICAZIONE
3 SVILUPPO DELL'APPLICAZIONEIn questo capitolo verranno descritti l'applicazione, i requisiti e la
struttura con alcuni screenshot del funzionamento.
Questo progetto che viene descritto, come già accennato
nell’introduzione al documento, consiste in un’applicazione per iPhone
che utilizza il Game kit fornito dalla Apple. L’idea è quella di un
software leggero ed intuitivo che possa essere di facile utilizzo.
3.1 Requisiti
Il sistema da realizzare deve consentire all’utente di:
• consultare le istruzioni e le regole del gioco
• visualizzare i credits
• visualizzare il sito web del boardgame
• visualizzare l'elenco dei punteggi a seconda del tipo di partita
• poter giocare contro il dispositivo mobile scegliendo il numero
dei giocatori (massimo 6)
• poter giocare contro altri utenti utilizzando il game center
• scegliendo gli amici
• creando la partita tramite l'auto-match
L'applicazione deve poter essere disponibile anche per iPad e tutti i
requisiti detti in precedenza devono poter essere soddisfatti.
3.2 La scelta dell'applicazione
La scelta del gioco è stata dettata dalla mia passione ludica.
I giochi in scatola mi affascinano da molti anni, infatti con gli amici
abbiamo fissato un incontro settimanale per giocare insieme. Ho
realizzato un sito web http://ostellomarani.altervista.org per
55
3 SVILUPPO DELL'APPLICAZIONE
organizzare questi incontri.
L'idea di realizzare un gioco in scatola per iPhone è stata dettata
proprio dalla volontà di far unire il passato al presente-futuro e la
curiosità di vederne gli sviluppi. Con questo non voglio, ovviamente
far sparire il gioco da tavola, ma semplicemente farlo conoscere in
un'altra ottica. Cosi facendo una persona che non pratica boardgame
potrebbe essere invogliato a comprarlo e provarlo a “faccia-faccia”
con amici e conoscenti.
La versione per dispositivi mobili dà la stessa possibilità ma la
estende ad un'infinità di nuovi utenti. Si può anche pensare, ad
esempio, a ragazzi che sono in vacanza e non hanno avuto la
possibilità di portare con loro il gioco in scatola. Sarà sufficiente
installarlo nel proprio iPhone e/o iPad per giocare in rete attraverso il
Game Center.
3.2.1 Regole del gioco
Il gioco scelto è “Spirits!” ideato da Reiner Knizia e distribuito dalla
Red Glove - Raven Distribution.
“Tutti conoscono la vecchia casa dei fantasmi: quel posto strano
vicino ai confini della città. Storie di spiriti e misteriose presenze
hanno tentato generazioni di ragazzini. E come ogni casa dei fantasmi
che si rispetti, è li per permettere al prossimo gruppo di prodi ragazzi
di passare una notte paurosa fra i suoi vecchi muri scricchiolanti...
Avete il fegato per affrontare gli spettrali abitanti del vecchio
maniero? Si dice in giro, che gli spiriti si spaventino fra loro almeno
quanto spaventano voi... Quindi se tenete uno specchio a portata di
mano, potreste riuscire a farla franca. Altrimenti potete solo sperare
di correre abbastanza velocemente da salvarvi la vita.”
56
3 SVILUPPO DELL'APPLICAZIONE
E' cosi che viene presentato il gioco.
Le carte vengono mescolate e ne vengono distribuite cinque ad ogni
giocatore. Il resto del mazzo è posto a faccia in giù per poter poi
pescare. Il giocatore che deve iniziare è scelto casualmente. Ogni
round viene giocato in una serie di prove coraggio, chiamate d'ora in
poi “Sfide”.
Nel proprio turno il giocatore di mano deve scegliere una sua carta e
giocarla (nel nostro caso trascinarla al centro del display). In questo
modo viene visualizzato il “fattore Paura” totale (somma dei numeri
delle carte di colore diverso giocate). Il gioco procede con il giocatore
successivo.
Da questo momento iniziano a comparire gli spiriti (carte giocate),
infatti il colore e il “fattore Paura” degli stessi determinano il nuovo
57
Illustrazione 6: Contenuto della scatola di spirits!:
• 54 carte fantasma in 6 colori (9 per colore, 3 da 1, 3 da 2, 3 da 3)
• fantasmini in plastica
3 SVILUPPO DELL'APPLICAZIONE
“fattore Paura” totale:
• nuovi spiriti: se lo spirito appena giocato ha un colore diverso
da quello in cima alla pila degli scarti allora il suo “fattore
Paura” dev'essere aggiunto al totale.
• specchi: se lo spirito che è stato giocato ha lo stesso colore
dello spirito in cima alla pila degli scarti, questo si è impaurito
con lo specchio! Il “fattore Paura” totale non cambia e l'ordine
di gioco si inverte.
Alla fine del proprio turno viene pescata una nuova carta dal mazzo
per rimpiazzare quella appena giocata. Se non ci sono più carte nel
mazzo si continua a giocare con quelle che si hanno a disposizione.
Il “fattore Paura” totale non può mai superare 7. Se non si è in grado
di giocare una carta che rispetti questa regola, si deve fuggire dagli
spiriti! Si prende quindi un fantasmino (penalità) e quindi si deve
cominciare la nuova sfida giocando una carta dalla propria mano,
creando così una nuova pila degli scarti.
Quando un giocatore si trova senza carte all'inizio del proprio turno, il
round finisce. Tutti i giocatori scartano ogni carta che ancora
posseggono: queste carte non hanno alcun effetto. Per ogni Sfida
persa durante la mano viene assegnato un fantasmino. Se il giocatore
non ha perso nessuna sfida allora gli verranno scartati fino a tre
fantasmi accumulati nei round precedenti.
Dopo il terzo round, il gioco finisce e si contano i fantasmini
accumulati: il giocatore che ne ha di meno, vince! In caso di pareggio,
vince chi dei giocatori a parimerito ha collezionato meno fantasmini
nel terzo round.
58
3 SVILUPPO DELL'APPLICAZIONE
3.2.2 Software e linguaggio utilizzato
3.2.2.1 Objective-C
Il linguaggio di programmazione che è necessario conoscere per la
realizzazione di applicazioni iOS è l'Objective-C che è un linguaggio
orientato agli oggetti e di fatto rappresenta un'estensione del
linguaggio C. Essendone un'estensione, l'Objective-C mantiene una
compatibilità totale con i costrutti utilizzati nel linguaggio C.
Objective C e un linguaggio di programmazione orientato agli oggetti
sviluppato alla meta degli anni ottanta presso la Stepstone
Corporation, la cui diffusione e principalmente legata al framework
OpenStep di NeXT ed al suo successore Cocoa, presente nei sistemi
operativi Mac OS X e iOS di Apple (quindi nei dispositivi portatili iPod
touch, iPhone, iPad ed applicazioni relative).
Come lo stesso nome suggerisce, questo linguaggio e un'estensione
ad oggetti del celeberrimo C: esso mantiene la completa compatibilita
con quest'ultimo, conservando tutte le caratteristiche ed
aggiungendone di nuove. Tra l'altro, anche a causa di questo,
Objective C non e dotato di forte tipizzazione (caratteristica che
invece esibiscono, ad esempio, sia C++ che Java).
C e un sottoinsieme stretto del linguaggio in questione: ne consegue
che e possibile compilare un qualsiasi programma scritto in C con un
compilatore Objective C. La gran parte della sintassi e derivata da
quella del predecessore, mentre quella relativa alle caratteristiche
object-oriented e stata creata per comunicare a scambio di messaggi.
Essendo un linguaggio orientato agli oggetti, l'Objective C fornisce
tutte quelle istruzioni che permettono di implementare e definire
oggetti, classi ed istanze.
Le classi:
In questo linguaggio di programmazione ogni oggetto deriva da una
classe base, denominata NSObject mentre le altre implementano un
59
3 SVILUPPO DELL'APPLICAZIONE
protocollo (una sorta di interfaccia Java) che le riconduce come
comportamento ad NSObject. Ne consegue che qualsiasi oggetto
deriva da questa classe.
La definizione di una classe in Objective C prevede due parti:
• interfaccia: e pubblica, viene codificata in un file che ha
estensione “.h” ed include tutte le dichiarazioni delle variabili di
istanza della classe, delle proprieta e delle firme dei metodi;
• implementazione: e privata, viene definita in un file con
estensione “.m" e contiene il codice di ogni metodo ed il
completamento delle proprieta dichiarate nell'interfaccia.
I due file devono essere collegati e questa operazione viene svolta nel
file di implementazione con l'istruzione #import, molto simile ad
#include presente nel linguaggio C: la differenza sta nel fatto che la
prima fa in modo che lo stesso file non sia mai incluso piu di una
volta.
L'interfaccia di una classe ha una sintassi standard: inizia sempre con
la parola chiave interface e termina con la parola chiave end.
Subito dopo interface seguono nell'ordine il nome della classe, i due
punti ed il nome della classe base, quella da cui l'oggetto deriva. Per
convenzione il nome delle classi viene scritto secondo lo standard
“CamelCase”, quindi le iniziali delle parole che compongono la classe
sono in maiuscolo.
All'interno delle parentesi graffe si definiscono le variabili di istanza
ed al di fuori, prima della parola chiave end, vengono inserite le
eventuali dichiarazioni dei metodi e delle proprieta (metodi
setter/getter).
Il file di implementazione inizia sempre con una riga di codice che
importa il file di interfaccia:
#import "Interfaccia.h"
60
3 SVILUPPO DELL'APPLICAZIONE
Come nel file d'interfaccia, anche in questo caso tutto il codice viene
scritto all'interno delle parole chiave implementation NomeClasse e
end.
Ogni metodo implementato inizia con la definizione scritta nel file di
interfaccia ed il suo corpo e delimitato da parentesi graffe.
I metodi:
In Objective C possono essere dichiarati due tipi di metodi: di istanza
o di classe. Il primo si riferisce ad una particolare istanza, il secondo
invece viene invocato direttamente dalla classe e va ad operare su
alcune proprieta generali.
Un esempio di “signature” ovvero il nome del metodo, viene scritta
cosi:
(-) void inserisciOggetto: (NSObject) unOggetto allaPosizione: (int) laPosizione;
Come prima cosa e presente l'identificativo del tipo di metodo:
• d'istanza: se un metodo inizia con un meno (-)
• di classe: se invece e preceduto da un simbolo (+)
Il “void” dell'esempio e il tipo di oggetto ritornato dal metodo. I nomi
dei parametri, invece, sono i termini con cui si fa riferimento ad essi
all'interno del metodo; seguendo l'esempio nel metodo
“inserisciOggetto:” sara presente una variabile “unOggetto”, non
definita all'interno, ma che costituisce proprio il parametro.
Se il metodo ne accetta piu d'uno e possibile inserire delle parole
arbitrarie che spiegano il significato dei parametri che le seguono.
Quindi la struttura generale di un metodo e cosi definita:
tipo_metodo (tipo_di_ritorno) nome_del_metodo: (tipo_parametro) nome_parametro;
Come detto in precedenza, il modello di programmazione
dell'Objective C e basato sullo scambio di messaggi tra oggetti: non si
61
3 SVILUPPO DELL'APPLICAZIONE
chiama un metodo, ma si invia un messaggio.
A differenza di molti linguaggi che utilizzano la “dot notation”
(oggetto.metodo) per la chiamata ad un metodo, Objective C utilizza
la sintassi:
[oggetto metodo];
Tale operazione e considerata non tanto come la chiamata ad una
“funzione”, quanto l'invio di un messaggio ad un'entita. In quest'ottica
e possibile reinterpretare la sintassi in questo modo:
[ricevente messaggio];
L'Objective C consente inoltre di nidificare piu chiamate.
In realta la classica notazione con il punto puo essere utilizzata per
accedere alle proprieta. Ad esempio, queste righe di codice:
int valore = [oggetto proprieta];[oggetto setProprieta:valore];
sono equivalenti a queste:
int valore = oggetto.proprieta; oggetto.proprieta = valore;
Le variabili di istanza:
Ogni oggetto ha un suo stato interno rappresentato dalle variabili di
istanza che per default non possono essere modificate ne lette da
oggetti esterni.
Le variabili di istanza possono essere dei tipi scalari del linguaggio C
(int, float, decimal ecc.) oppure altri oggetti, anche classi definite dal
programmatore.
La sintassi per la dichiarazione e uguale a quella usata in C:
tipo nomeVariabile;
Inoltre, allo stesso modo del linguaggio C, anche in Objective C tutti
gli oggetti sono riferiti tramite puntatori e quindi per definirli si
antepone al loro nome un asterisco (*).
62
3 SVILUPPO DELL'APPLICAZIONE
Per realizzare l'incapsulamento nei linguaggi orientati agli oggetti
sono stati introdotti i qualificatori, che determinano la visibilita delle
variabili definite all'interno delle classi.
I livelli di visibilita in Objective C sono 3:
• public : rende la variabile visibile da qualunque oggetto;
• private : rende la variabile utilizzabile solo all'interno dei metodi
della stessa classe;
• protected : alla variabile possono accedere solo i metodi della
stessa classe e quelli delle classi da essa derivati.
Le variabili di istanza per default sono protected, quindi accessibili
dalle sottoclassi; per indicare la visibilita e sufficiente far precedere la
dichiarazione della variabile dalla relativa parola chiave, anticipata a
sua volta da un carattere chiocciola.
Protocolli e delegati:
Un protocollo dichiara metodi che possono essere implementati da
ogni classe, ma non possono essere considerati come tali, infatti essi
definiscono semplicemente un'interfaccia che altri oggetti devono poi
sviluppare, anche senza dichiararlo esplicitamente.
Quando un oggetto od una classe implementano i metodi di un
protocollo, si dice che sono conformi a tale protocollo.
La dichiarazione di un protocollo e molto simile a quella di una classe:
@protocol Protocollo1 - (void) mioProtocollo;@end
Un delegato invece e un oggetto che agisce in coordinamento o per
conto di un altro: un'entita invia messaggi ad un altro oggetto
specificato come suo delegato per gestire l'evolversi dell'esecuzione.
I delegati sono molto utilizzati nella gestione delle interfacce grafiche
delle varie applicazioni: si crea un'istanza di un controller delegato a
63
3 SVILUPPO DELL'APPLICAZIONE
gestire una particolare vista, quindi con il compito ad esempio di
informare l'applicativo che durante l'esecuzione l'utente utilizzatore
ha generato un particolare evento.
Le proprieta:
L'uscita di Objective C 2.0, nel 2006, ha portato delle novita, la piu
importante delle quali, oltre alla garbage collection, e stata
l'introduzione delle proprieta, gia citate nel documento.
Mentre precedentemente le variabili d'istanza richiedevano metodi
espliciti di lettura e scrittura per essere utilizzate dal mondo esterno
(incapsulamento), detti getters e setters, con questa nuova
funzionalita e possibile procedere in modo diverso: la sintassi si
compone di due parti, una da inserire nel file di interfaccia l'altra da
scrivere nel file di implementazione.
Sara il compilatore poi a sostituire le dichiarazioni con i metodi
getters e setters secondo le indicazioni del programmatore.
Nel file di interfaccia le proprieta di una classe vanno dichiarate ad
esempio nel seguente modo:
@property (assign, readwrite) int nomeVariabile;
Nella parte tra parentesi tonde vanno inserite le informazioni
necessarie al compilatore per scrivere correttamente i metodi della
proprieta, ad esempio per garantire i permessi di lettura, scrittura od
entrambe.
Per completare la definizione dei parametri e necessario specificare
nel file di implementazione l'istruzione:
@synthesize nomeVariabile;
Se viene omessa questa parte nel file di implementazione, il
compilatore non genera automaticamente i metodi get e set.
Il costruttore:
64
3 SVILUPPO DELL'APPLICAZIONE
In Objective C il costruttore della classe e in realta composto dalla
chiamata di due diversi metodi annidati, dei quali il primo serve per
l'allocazione della memoria alla classe, ed il secondo per
l'inizializzazione delle variabili della stessa. L'istanza di una classe
generica avviene nel seguente modo:
Classe *istanza = [[Classe alloc] init];
Super e self:
Super e un riferimento alla super-classe dalla quale l'oggetto deriva
ed e indispensabile quando e necessario creare un metodo di
inizializzazione diverso da quello standard init o quando serve fare
“l'override” di un metodo della super-classe.
Oltre a super ogni metodo riceve un parametro implicito detto self,
che rappresenta un riferimento all'oggetto corrente.
L'oggetto self e utilizzato quando si vuole mandare un messaggio
(invocare un metodo) interno alla classe stessa oppure quando si
intende modificare il valore di una variabile di istanza.
Override ed overload:
In Objective C e possibile effettuare l'override di un metodo definito
nella super-classe, semplicemente creandone uno con lo stesso nome
e gli stessi parametri: all'interno di questo metodo e possibile riferirsi
a quello della super-classe attraverso l'oggetto super.
Non e possibile invece effettuare l'overload dei metodi, ma e
consentito agire in questo modo:
-(id) init;-(id) init:(tipo1) variabile1 andAltraVariabile:(tipo2) variabile2;
Anche se questi due metodi sembrano uguali, in realta non lo sono: il
primo ha un selettore (init:), il secondo ne ha un altro (init:
andAltraVariabile:).
Qualora la classe implementi piu metodi per l'inizializzazione, occorre
sempre effettuare l'override di quello senza parametri, per evitare
65
3 SVILUPPO DELL'APPLICAZIONE
che l'utente possa creare la nostra classe in modo anomalo
utilizzando il metodo init della super-classe. Quando viene effettuato
l'override di tale metodo e possibile anche richiamare uno dei metodi
init piu specifico, passando dei valori di default.
L'oggetto ID:
Utilizzando questo linguaggio di programmazione non e possibile
dichiarare un oggetto come istanza di una interfaccia, ma si puo
utilizzare l'oggetto generico “id” di Objective C: a quest'ultimo puo
essere assegnata un'istanza di qualsiasi classe e su questo puo
essere richiamato un qualsiasi metodo (o inviato qualunque
messaggio). Il metodo chiamato viene determinato in fase di
esecuzione: se l'oggetto lo implementa non ci saranno problemi,
altrimenti il programma terminera inaspettatamente.
Le proprieta dell'oggetto universale id (assegnare all'oggetto qualsiasi
istanza e richiamare da esso un qualsiasi metodo) rende superfluo
l'utilizzo contemporaneo di interfacce o ereditarieta, l'unico rischio e
quello di perdere il controllo dei tipi del compilatore in quanto il tipo
verra controllato solo a “run-time”.
Gestione della memoria:
La gestione della memoria e di fondamentale importanza per
applicazioni dedicate a dispositivi mobili come iPad: e essenziale
cercare di evitare qualsiasi spreco di risorse, dato che in questo tipo
di periferiche sono limitate.
Ogni variabile, puntatore od oggetto di un programma scritto in
Objective C occupa memoria, e questa deve essere allocata in
quantita opportuna.
Il problema non si limita pero alla sola allocazione della memoria,
infatti e di fondamentale importanza liberarla non appena possibile,
affinche possa essere utilizzata per altri scopi.
Esiste un metodo che, come indicato dal nome (dealloc), serve a tale
66
3 SVILUPPO DELL'APPLICAZIONE
scopo: questo pero non deve mai essere invocato in modo diretto.
Infatti agendo in questo modo l'oggetto diventerebbe inutilizzabile,
anche nel caso in cui esso serva ancora durante l'esecuzione del
programma, ad esempio se e riferito da qualche altra entita.
Nasce l'esigenza quindi di avere un contatore che indichi al software
se l'oggetto e ancora utilizzato: tale valore deve essere posto ad uno
non appena questo viene allocato in memoria, dovra quindi essere
incrementato di uno ogni volta che un'altra entita ha interesse a
mantenerlo attivo, e diminuito di una unita invece quando un oggetto
ne ha esaurito l'utilizzo.
Il contatore viene mantenuto in una proprieta chiamata
“retainCount”, presente in ogni oggetto derivante dalla classe
NSObject: nel momento in cui “retainCount” assume il valore zero, il
metodo dealloc viene invocato in automatico e la memoria liberata.
Per diminuire il valore del contatore deve essere invocato nel codice il
metodo release.
3.2.2.2 Xcode
Xcode come descritto da Wikipedia [19] “Xcode è un ambiente di
sviluppo integrato sviluppato da Apple Inc. per agevolare lo sviluppo
di software per Mac OS X e iOS.”
67
3 SVILUPPO DELL'APPLICAZIONE
È fornito gratuitamente con il sistema operativo. Estende e rimpiazza
il precedente tool di sviluppo della Apple, Project Builder, che era
stato ereditato dalla NeXT.
Xcode lavora in congiunzione con Interface Builder (proveniente da
NeXT), un tool per realizzare interfacce grafiche.
Xcode include GCC, che è in grado di compilare codice C, C++,
Objective C/C++ e Java. Supporta ovviamente i framework Cocoa e
Carbon, oltre ad altri.
Una delle caratteristiche tecnologicamente più avanzate di Xcode è
che supporta la distribuzione in rete del lavoro di compilazione,
usando Bonjour e Xgrid è in grado di compilare un progetto su più
computer riducendone i tempi. E' in grado di compilare il codice
mentre viene scritto, in modo da ridurre ulteriormente il tempo di
elaborazione.
Dalla versione 3.1, Xcode è anche lo strumento per sviluppare le
applicazioni native per iPhone e iPod touch e dalla versione 3.2 è
possibile sviluppare applicazioni per iPad.
68
Illustrazione 7: ambiente di sviluppo Xcode
3 SVILUPPO DELL'APPLICAZIONE
3.2.2.3 Interface Builder
Interface Builder è un tool integrato all'interno di Xcode, che viene
usato per la realizzazione delle interfacce grafiche, generando file
“.xib”. L'utilizzo del tool è immediato: è sufficiente trascinare
all'interno di un'area (che rappresenta una vista dell'applicazione) gli
elementi grafici che si vogliono utilizzare (come bottoni, campi di
testo, immagini) per poi passare al loro posizionamento.
I difetti principali di Interface Builder sono due:
• il primo è quello di dover dichiarare l'oggetto via codice e poi
eseguire una vera e propria connessione tramite Interface
Builder,
• il secondo è quello di non generare automaticamente il codice
relativo all'aggetto utilizzato, nascondendo quindi allo
sviluppatore alcune informazioni fondamentali.
69
Illustrazione 8: interface builder
3 SVILUPPO DELL'APPLICAZIONE
3.2.2.4 Simulatore
L'ultimo strumento che ho utilizzato è il simulatore che consente di
eseguire l'applicazione realizzata direttamente sul Mac senza
necessariamente disporre dei dispositivi mobili iPhone, iPod Touch o
iPad. L'utilizzo del simulatore è utile per eseguire il codice in fase
iniziale, ma visto il desiderio di pubblicare l'applicazione su AppStore
è poi necessario condurre i test direttamente sul dispositivo fisico.
Questo perché il simulatore virtualizza il comportamento del
dispositivo abbastanza fedelmente, ma molte funzionalità come il GPS
o le Notifiche Push non sono presenti in esso.
3.3 Quadro generale del design della rete
Per quanto riguarda il gioco in rete c'è da fare una distinzione sui tipi
di rete possibili in iOS.
3.3.1 Tre tipi di rete in iOS
[21] Sebbene ci siano diversi tipi di rete disponibili, ce ne sono tre
principali che si possono implementare sui device:
70
Illustrazione 9: simulatore iphone
3 SVILUPPO DELL'APPLICAZIONE
• Peer to peer: Questa rete è la più comune sulla piattaforma iOS.
Ogni device è uguale agli altri e può comunicare con tutti. Peer
to peer è comunemente usata per la programmazione di giochi
con il Game Center. Uno svantaggio è l'utilizzo di troppi
messaggi e quindi la ridondanza. Infatti ogni peer ha bisogno di
informare ogni altro device. Per esempio una rete con 6 device
verrà visualizzata come nell'illustrazione 10. Ogni peer riceverà
5 messaggi in entrata e 5 in uscita.
• Client to host: In questa rete un device designato sarà usato
come host. Il device in questione sarà responsabile per l'invio
delle informazioni a tutti i client che sono connessi. I client non
potranno mai comunicare tra di loro, comunicheranno solo con
l'host. Il beneficio di questa rete è che un solo device dovrà
mantenere la sincronizzazione di ogni informazione. È un tipo di
rete abbastanza sicuro anche se non tanto usato con i device
iOS. Un altro beneficio è che un solo device si dovrà
preoccupare dello stato della rete e del comportamento di
quest'ultima. Questo tipo di rete semplifica gli eventi come: le
71
Illustrazione 10: rappresentazione di una rete P2P usando 6 device iOS
3 SVILUPPO DELL'APPLICAZIONE
connessioni, le disconnessioni, le trasmissioni di errore,...
Tuttavia l'host dovrebbe mantenere, per ogni device preso in
considerazione, molteplici informazioni da processare e quindi
potrebbe eseguire il tutto molto lentamente e utilizzare tanta
batteria.
• Ring: Questa rete non ha né host e né clients. Lavora
similarmente alla rete peer to peer ma un peer può solo
comunicare con uno designato e può solo ricevere da un'altro.
L'informazione gira all'interno della rete come un anello, da qui
il nome. Questo tipo di rete è molto comune nella piattaforma
iOS.
72
Illustrazione 11: rete client to host
Illustrazione 12: rete ring
3 SVILUPPO DELL'APPLICAZIONE
Nel progetto sviluppato il tipo di rete scelta è P2P in quanto ogni
dispositivo può comunicare con ogni altro. È stato scelto però di
comunicare solo con il dispositivo precedente e successivo in modo
tale da simulare il turno di gioco (orario o antiorario).
3.3.2 Altri tipi di rete meno comuni
Ci sono molti altri tipi di rete disponibili in informatica:
• Headless client: il client non ha dati all'interno ed è controllato
da un device host.
• Server dedicato: l'host in questo esempio non può partecipare
al gioco o all'attività ed è dedicato all'invio delle informazioni
dei peer.
• Mesh/partial: è una rete peer to peer nella quale ogni peer non
si deve preoccupare di quanti altri peer esistano.
• Rete ad albero: consiste in un albero di peers interconnessi tra
di loro e controllati da un punto centrale. Il punto centrale passa
le informazioni agli altri punti centrali che si occuperanno di
inoltrare il messaggio ai rami, cosi via...
• Rete ibrida: questo tipo di rete combina due o più tecnologie
spiegate in precedenza.
3.4 Affidabilità dei dati
Quando si invia un pacchetto è importante l'affidibilità che questo
arrivi. Nell'iOS si parla anche di priorità dei dati, ordine dei pacchetti e
il fattore dominante di retry (recupero delle informazioni mancanti).
73
3 SVILUPPO DELL'APPLICAZIONE
3.4.1 Attributi più importanti dei pacchetti
• Priorità: i pacchetti solitamente sono spediti e inseriti in una
coda del peer, non è detto che la ricezione avvenga nell'ordine
in cui i pacchetti vengono generati. La soluzione di questo tipo
di problema consiste nell'inserimento della priorità. Il peer
invierà i primi messaggi con una maggiore priorità rispetto ai
successivi.
• Ordinamento: l'ordine in cui vengono ricevuti i pacchetti è
cruciale. Prima di processare il messaggio è opportuno ordinare
i pacchetti.
• Fattore di retry: le reti sono per natura inaffidabili. Quindi c'è
bisogno di un sistema di supporto all'invio dei pacchetti:
◦ l'invio continuo e ridondante
◦ l'invio con verifica
3.4.2 Smartphone e Sicurezza
Parlando di affidabilità dei dati è giusto anche tenere in
considerazione la sicurezza degli smartphone. La promessa dei
dispositivi mobili e quella di avere sempre a portata di mano tutte le
informazioni ed i contatti personali che ci interessano attraverso
molteplici canali di comunicazione da poter usare in qualsiasi luogo,
appoggiandosi a reti audio e dati senza fili.
Gli smartphone diventano quindi la porta d’accesso ai propri dati
personali e, inevitabilmente, anche ai dati non strettamente
riguardanti il proprietario del telefono, ma i suoi amici e colleghi, i loro
contatti, messaggi, appuntamenti, ... La loro utilita ne fa di per sè
strumenti “sensibili” la cui sicurezza e importante ora, e lo sarà in
misura ancora maggiore in futuro, con l’aumento della loro
pervasivita e delle loro possibili funzioni, per le informazioni che
74
3 SVILUPPO DELL'APPLICAZIONE
contengono e per la loro funzione di portale di accesso a tutte le
informazioni personali e lavorative.
La relativa novita rappresentata da questi dispositivi e i servizi in
costante evoluzione che offrono, comportano che lo studio delle
problematiche a loro connesse e la valutazione dei mezzi appropriati
per la loro risoluzione sia un campo di studio attivo e vivace, non
esiste un modello di sicurezza completo e non e detto che un unico
modello sia possibile o desiderabile data la flessibilita propria del
mezzo e i molteplici scenari configurabili. Studenti, dirigenti di
aziende e il Presidente degli Stati Uniti sono tutti utenti di questa
stessa classe di dispositivi che esprimono esigenze molto diverse,
anche e soprattutto dal punto di vista della sicurezza.
Alcune assunzioni, policy e meccanismi comuni sono comunque
emersi nelle piattaforme commerciali proposte da aziende quali
Apple, Google, Microsoft e Research in Motion.
Il proprietario dello smartphone viene ad essere naturalmente
considerato l’“amministratore” del dispositivo, e spesso alcune policy
di sicurezza e relativi meccanismi che le implementano sono pensate
per limitare il proprietario stesso.
Una seconda policy di sicurezza e quella che il fornitore della
piattaforma in primis, ed eventuali partner strettamente collegati
(operatori telefonici), vengano considerati affidabili e si riservino di
conseguenza poteri e facolta in altri ambiti di esclusiva competenza
dell’amministratore, a volte al di la e al di sopra del proprietario del
dispositivo.
Policy condivise tra le varie piattaforme portano a meccanismi di
sicurezza simili, pur con molte differenze e peculiarita. Ad esempio un
uso consistente di ambienti virtuali per l’astrazione delle risorse e
meccanismi di sandboxing delle applicazioni.
75
3 SVILUPPO DELL'APPLICAZIONE
Confidenzialita, Integrita e Disponibilita
Per un'analisi veloce degli aspetti di sicurezza degli smartphone si è
cercato di tenere in considerazione alcuni concetti fondamentali di
sicurezza dei sistemi informatici.
Confidenzialita
Un sistema che garantisce la confidenzialita assicura che le
informazioni o le risorse in esso contenute siano protette dall’accesso
non autorizzato. Tale sistema, per garantire la confidenzialita, deve
essere protetto con meccanismi di controllo degli accessi che rendano
impossibile per un soggetto non autorizzato la conoscenza delle
informazioni o delle risorse.
Integrita
Garantire l’integrita di un sistema significa assicurare che dati o
risorse di tale sistema non vengano modificate in modo improprio o
privo di autorizzazione. L’integrita riguarda sia il contenuto stesso
delle informazioni, sia la loro origine. Violazioni di confidenzialita
compromettono esclusivamente la segretezza di dati o risorse,
mentre quelle di integrita ne pregiudicano anche la correttezza e di
conseguenza il grado di affidabilita.
Disponibilita
Questa proprietà si riferisce alla possibilita di utilizzare dati o risorse
quando desiderato. La disponibilita e un aspetto cruciale
dell’affidabilita ed e spesso necessario implementare meccanismi piu
o meno complessi per salvaguardare tale caratteristica.
76
3 SVILUPPO DELL'APPLICAZIONE
3.4.3 Invio dei dati in Game kit
L'invio dei dati con Game kit può avvenire in due modi:
• GKSendDataReliable
• GKSendDataUnreliable
Attributo GKSendDataReliable GKSendDataUnreliable
Priorità Il Game kit non tiene conto del tipo di priorità. I
pacchetti sono inviati nell'ordine in cui vengono
ricevuti dal sistema.
Ordine I pacchetti sono ricevuti
nell'ordine in cui sono
spediti.
I pacchetti vengono inviati
e non viene garantito
l'ordinamento.
Fattore retry Il pacchetto viene inviato
di nuovo fino a quando
non si riceve una conferma
di successo.
Il pacchetto inviato è
rimosso dalla coda. Non
c'è la notifica di ricezione.
3.4.3.1 Cosa inviare
La grandezza del pacchetto è relazionata alla velocità, stabilità e
scalabilità della rete. Quindi bisogna cercare di inviare solo lo stretto
necessario.
77
3 SVILUPPO DELL'APPLICAZIONE
3.4.3.2 Game Center basato su turni
Un'altra scelta che è stata fatta è quella dell'utilizzo della parte del
Game kit predisposta per il gioco a turni. Infatti si gioca solo durante il
proprio turno. La possibilità di fare specchio (con un'inversione del
giro) non modifica la tipologia di gioco a turni.
3.5 L'intelligenza artificiale dei giocatori del dispositivo mobile
Per i giocatori del dispositivo mobile si è cercato di creare
un'intelligenza artificiale il più reale possibile. La scelta di
implementazione è stata dettata dalla supervisione in varie partite
effettuate con amici.
Atteggiamenti simili da parte di alcuni giocatori sono stati riassunti in
questo schema.
78
3 SVILUPPO DELL'APPLICAZIONE
Attraverso questo studio, durato varie settimane, si è cercato di
realizzare prima un diagramma di flusso che è stato poi utilizzato,
dopo vari test con giocatori umani, per implementare l'intelligenza
artificiale.
3.6 La versione per iPhone
Dopo aver scaricato l'applicazione dall'App Store ed eseguito il
processo di installazione, essa compare sullo schermo del dispositivo
tra le altre applicazioni, come si può vedere nella figura 15.
79
Illustrazione 13: intelligenza artificiale
3 SVILUPPO DELL'APPLICAZIONE
Una volta toccata l’icona relativa, l’applicazione, di nome “Spirits”
viene avviata. A questo punto appare una schermata iniziale dove
viene spiegato come tenere il dispositivo (illustrazione 14).
80
Illustrazione 15: l'icona di spirits all'interno del dispositivo
Illustrazione 14: l'interfaccia che appare mentre si carica l'applicazione
3 SVILUPPO DELL'APPLICAZIONE
Caricata l'applicazione, l’utente si trova nella schermata principale in
cui viene fornito il menù iniziale.
In questa parte viene anche connesso il giocatore al Game Center
(illustrazione 17). Nel caso la connessione non sia presente, è
comunque possibile giocare in locale.
Se invece non si dispone di un account del Game Center l'interfaccia
mostrata ci permette di crearne uno nuovo in quel momento.
81
Illustrazione 16: menù iniziale di Spirits!
Illustrazione 17: messaggio di connessione dell'utente al Game Center
3 SVILUPPO DELL'APPLICAZIONE
82
Illustrazione 18: messaggio che appare nel caso non si sia loggati nel Game Center
Illustrazione 19: messaggio che appare nell'inserimento dello user e password per l'accesso al Game Center
Illustrazione 20: messaggio di errore dell'inserimento della password
3 SVILUPPO DELL'APPLICAZIONE
3.6.1 Gioca
Nel pulsante “Gioca” è inclusa tutta la parte in locale, nella quale
viene utilizzata l'intelligenza artificiale descritta precedentemente.
Dopo aver toccato il pulsante “Gioca” questo si illumina (come si può
vedere nell'illustrazione 21) e si visualizza un ulteriore display dove è
possibile scegliere il numero dei giocatori (illustrazione 22).
A seconda del numero dei giocatori scelto in precedenza si possono
avere diverse interfacce che ci consentono l'inizio del gioco
(illustrazioni dalle 23 alla 27).
83
Illustrazione 21: pulsante illuminato
Illustrazione 22: interfaccia per la scelta del numero dei giocatori in locale
3 SVILUPPO DELL'APPLICAZIONE
84
Illustrazione 23: partita a 2 giocatori
Illustrazione 24: partita a 3 giocatori
3 SVILUPPO DELL'APPLICAZIONE
Non appena visualizzata l'interfaccia selezionata, si può vedere chi è il
giocatore di turno attraverso un messaggio di notifica all'utente
(illustrazione 26). Se il turno è di uno degli altri giocatori si possono
85
Illustrazione 25: partita a 4 giocatori con l'animazione della carta del giocatore alla nostra destra
Illustrazione 26: partita a 5 giocatori con il messaggio che indica il primo giocatore scelto a random
Illustrazione 27: partita a 6 giocatori e l'animazione della carta che viene giocata dal giocatore alla nostra sinistra
3 SVILUPPO DELL'APPLICAZIONE
vedere le varie animazioni delle carte giocate (illustrazioni 25 e 27),
vengono anche visualizzati i nuovi valori di round e paura. Nel proprio
turno le carte che si hanno a disposizione e che si possono giocare
sono evidenziate di blu (illustrazioni 24 e 25). La carta scelta deve
essere trascinata verso il centro (di fianco al mazzo). In automatico
una carta dal mazzo rimpiazza la carta giocata. Il turno passa poi agli
altri giocatori in senso orario.
Se si è scelta una carta “specchio” si inverte il senso del turno ed il
fattore paura non cambia.
Quando uno dei giocatori, compreso l'utente, non può più rispondere
ad una sfida, allo stesso viene assegnata una penalità facendo
lampeggiare il fantasmino bianco e aumentando di uno il suo valore.
Viene poi data al giocatore la possibilità di iniziare una nuova sfida
inaugurando una nuova pila degli scarti.
Quando il giocatore di turno si trova senza carte a disposizione il
round finisce e si effettua il conteggio dei fantasmini del round
sommandoli a quelli precedentemente presi considerando il bonus (di
togliere tre fantasmini) per chi non ne ha presi in quel round.
Viene poi dato il turno a chi ha più fantasmini per procedere con il
round successivo.
La partita si svolge in tre round e al termine viene effettuato il
conteggio dei fantasmini, vengono visualizzati i risultati attraverso
una messaggio all'utente e, se è disponibile una connessione ad
internet, si salvano i risultati nel Game Center. Se per qualche motivo
la connessione non c'è, è stato predisposto un salvataggio successivo
per non perdere i punteggi appena realizzati.
A fine partita viene anche riportata la schermata del menù iniziale.
Nell'interfaccia del gioco è stato predisposto anche un pulsante in alto
a destra “termina” per poter terminare la partita in corso. Verrà però
visualizzato un messaggio dove si indica che se si procede con
86
3 SVILUPPO DELL'APPLICAZIONE
l'operazione i dati verranno cancellati.
3.6.2 Gioca vs rete
Nel pulsante “Gioca vs rete” è inclusa tutta la parte dove viene
utilizzato il Game Kit reso disponibile dalla Apple. Dopo aver scelto
questa parte dell'applicazione si può visualizzare un ulteriore
interfaccia come si vede dall'immagine seguente.
La schermata è composta quindi da due pulsanti:
• il tasto del Game Center che ci permette di giocare in rete
• il tasto “indietro” nel caso l'utente abbia sbagliato a scegliere e
può tornare al menù iniziale
La frase che si può visualizzare in fondo al display comunica di
premere il pulsante del Game Center per gestire le partite in corso e
crearne una nuova.
Premendo il pulsante del Game Center, infatti, possiamo visualizzare
due tipologie di schermate:
87
Illustrazione 28: schermata per giocare in rete
3 SVILUPPO DELL'APPLICAZIONE
• Se si hanno delle partite in corso, esse vengono visualizzate e
toccando la partita relativa si può accedere ad essa
(illustrazione 30).
• Se non si hanno delle partite in corso, viene visualizzata la
schermata relativa alla creazione di una nuova (illlustrazione
29).
Questa è disponibile anche toccando il “+” in alto a destra della
schermata del punto precedente.
In quest'ultima si possono selezionare i giocatori dalla lista degli
amici (illustrazione 31) a cui viene inviato un messaggio che
digiteremo nella schermata successiva (illustrazione 32).
88
Illustrazione 30: elenco delle partite in corso
Illustrazione 29: creazione di una nuova partita
3 SVILUPPO DELL'APPLICAZIONE
Se non ci sono abbastanza amici o si vuole creare una partita
contro altre persone nella rete, ci si può avvalere
dell'automatch che ci consente di
◦ creare una nuova partita
◦ aggregarci ad un'altra partita già creata da un altro giocatore
In entrambi i casi a seconda del numero di giocatori scelto si può
accedere alla partita.
89
Illustrazione 31: elenco amici che si possono invitare
Illustrazione 32: messaggio da inviare agli amici
3 SVILUPPO DELL'APPLICAZIONE
90
Illustrazione 33: partita a 6 giocatori in rete, il turno è dell'utente e si proseguirà in senso orario
Illustrazione 34: partita a 3 giocatori in rete, il turno è del giocatore alla nostra destra e si proseguirà in senso antiorario.
3 SVILUPPO DELL'APPLICAZIONE
Non appena visualizzata l'interfaccia selezionata si può vedere se è il
proprio turno o meno in base alla scritta del proprio alias (nome
utente) in giallo. Possiamo seguire il gioco vedendo il giocatore di
turno illuminato e le varie carte giocate attraverso delle animazioni.
Vengono anche visualizzati i valori di round e paura. Nel proprio turno
le carte che si hanno a disposizione e che si possono giocare vengono
evidenziate di blu. Appena scelta la carta basta trascinarla verso il
centro (di fianco al mazzo) per poter effettuare il proprio gioco.
Successivamente una carta dal mazzo viene usata per rimpiazzare la
carta appena scelta (attraverso un'animazione).
Se si è scelta una carta “specchio” si inverte il senso del turno ed il
fattore paura non cambia.
Quando uno dei giocatori, compreso l'utente, non può più rispondere
ad una sfida, allo stesso viene assegnata una penalità facendo
lampeggiare il fantasmino bianco e aumentando di uno il suo valore.
Viene poi data al giocatore la possibilità di iniziare una nuova sfida
inaugurando una nuova pila degli scarti.
Quando il giocatore di turno si trova senza carte a disposizione il
round finisce e si effettua il conteggio dei fantasmini del round
sommandoli a quelli precedentemente presi considerando il bonus (di
togliere tre fantasmini) per chi non ne ha presi in quel round.
Viene poi dato il turno a chi ha più fantasmini per procedere con il
round successivo.
La partita si svolge in tre round e al termine viene effettuato il
conteggio dei fantasmini, vengono visualizzati i risultati attraverso
una messaggio all'utente e, se è disponibile una connessione ad
internet, si salvano i risultati nel Game Center. Se per qualche motivo
la connessione non c'è, è stato predisposto un salvataggio successivo
per non perdere i punteggi appena realizzati.
91
3 SVILUPPO DELL'APPLICAZIONE
3.6.3 Punteggi
In questa parte sono rese visibili le varie tabelle dei punteggi presenti
nel Game Center (illustrazione 35) e a seconda della scelta si
visualizzano i risultati relativi (illustrazione 36).
92
Illustrazione 35: elenco delle varie tabelle dei punteggi
Illustrazione 36: elenco dei punteggi di una tabella
3 SVILUPPO DELL'APPLICAZIONE
3.6.4 Istruzioni
Dal pulsante “istruzioni” si possono visualizzare le regole del gioco e
le informazioni create per capire come interagire con il dispositivo. Da
ogni interfaccia è possibile andare alla precedente o alla successiva.
Nell'ultima schermata è anche possibile tornare al menù iniziale o
seguire altre istruzioni relative al gioco in rete.
93
Illustrazione 37: elenco delle tabelle relative (direttamente nel Game Center)
Illustrazione 38: istruzioni all'interno del gioco
3 SVILUPPO DELL'APPLICAZIONE
3.6.5 Sito web
In questa parte si può accedere al sito web dove è possibile
acquistare il boardgame.
94
Illustrazione 39: un'altra schermata delle istruzioni del gioco
Illustrazione 40: sito web del boardgame
3 SVILUPPO DELL'APPLICAZIONE
3.6.6 Credits
In quest'ultima parte vengono visualizzati i Credits.
3.7 La versione per iPad
L'adattamento per iPad non è stato molto complicato in quanto è
bastato adattare l'nterfaccia grafica ad uno schermo più grande.
Questo dispositivo è più idoneo a modifiche, aggiunte ed
implementazioni future, grazie alla maggiore dimensione dello
schermo. Ho pensato, ad esempio, alla creazione di una chat testuale,
oppure alla possibilità di giocare a più partite in rete
contemporaneamente.
Dopo aver scaricato l'applicazione dall'App Store, come già descritto
per l'iPhone, ed eseguito il processo di installazione, la stessa
compare sullo schermo dell'iPad. Una volta toccata l’icona relativa,
l’applicazione, di nome “Spirits!” viene avviata. A questo punto
compare il menù iniziale sul dispositivo, ovviamente adattato alle
95
Illustrazione 41: credits
3 SVILUPPO DELL'APPLICAZIONE
dimensioni dello schermo.
In questa parte viene anche connesso il giocatore al Game Center,
come avviene già per l'iPhone con tutti i controlli relativi a questa
parte già spiegati in precedenza.
96
Illustrazione 42: menù iniziale dal simulatore dell'iPad
3 SVILUPPO DELL'APPLICAZIONE
3.7.1 Gioca
Nel pulsante “Gioca” è inclusa tutta la parte in locale e si visualizza un
ulteriore display dove sarà possibile scegliere il numero dei giocatori.
Come anche per l'iPhone, a seconda del numero dei giocatori scelto in
precedenza si possono avere varie interfacce che ci permettono di
iniziare il gioco.
Seguiranno alcune schermate del gioco per dimostrare l'adattamento
all'iPad. L'implementazione infatti è la stessa con la sola aggiunta di
qualche controllo per la parte grafica.
97
Illustrazione 43: scelta del numero dei giocatori
3 SVILUPPO DELL'APPLICAZIONE
98
Illustrazione 44: partita a 6 giocatori, turno del giocatore alla nostra destra
Illustrazione 45: il giocatore diturno ha perso questa mano e gli verrà assegnato un fantasmino
3 SVILUPPO DELL'APPLICAZIONE
3.7.2 Gioca vs rete
Nel pulsante “Gioca vs rete” è inclusa tutta la parte dove si può
visualizzare un ulteriore interfaccia uguale a quella presente nel
paragrafo della versione per iPhone. Anche in questo caso non mi
dilungo in quanto l'implementazione è la stessa.
3.7.3 Punteggi
In questa parte sono rese disponibili le varie tabelle dei punteggi
presenti nel Game Center e a seconda della scelta si visualizzano i
risultati relativi, tutto come nella versione per iPhone.
99
Illustrazione 46: partia a 6 giocatori in corso, giocatore di turno mysandboxuser1test
3 SVILUPPO DELL'APPLICAZIONE
3.7.4 Istruzioni
Dal pulsante “Istruzioni” si possono visualizzare le regole del gioco e
le varie informazioni create per capire come interagire con il
dispositivo, infatti come si può vedere dall'immagine seguente il testo
è stato adattato.
100
Illustrazione 47: elenco punteggi del game center dall'iPad
3 SVILUPPO DELL'APPLICAZIONE
3.7.5 Sito web
In questa parte si può accedere al sito web dove è possibile
acquistare il gioco di carte.
101
Illustrazione 48: una delle schermate delle istruzioni sull'iPad
Illustrazione 49: sito web
3 SVILUPPO DELL'APPLICAZIONE
3.7.6 Credits
In quest'ultima parte vengono visualizzati i Credits.
3.8 Test
La fase di test è stata effettuata creando 6 account del Game Center
in modo tale da avere i 6 giocatori collegati in rete. Per creare un
account è necessario seguire alcuni passi:
1. Come prima cosa bisogna creare una nuova email da utilizzare
per l'iscrizione al Game Center
2. Con quell'indirizzo, direttamente dal dispositivo mobile o dal
simulatore, si registrano gli utenti utilizzati per testare il gioco.
102
Illustrazione 50: schermata dei credits su iPad
3 SVILUPPO DELL'APPLICAZIONE
3. Dopo aver seguito tutti i passi relativi alla registrazione si
devono accettare i termini di contratto e l'account viene creato.
Con questi account è stato facile provare l'applicazione. In primo
luogo è stata testata l'applicazione in locale direttamente da
simulatore e da iPhone. Per quanto riguarda invece l'applicazione del
gioco in rete è stato necessario installare l'applicazione sia su iPhone
che sul simulatore con due account diversi del gamecenter.
Per quanto riguarda le prove con il terzo giocatore si è utilizzato un
secondo iPhone disponibile per la prova, ma dal quarto giocatore si è
dovuto “loggare” di volta in volta il giocatore di turno (ognuno con un
account diverso) per permettere ad esso di giocare la propria mano e
controllare lo stato della partita.
Le prove, come già detto, sono state fatte da diverse persone e tutte
con esito positivo, per cui il gioco è stato infine caricato su Appstore.
3.9 Inserimento dell'applicazione su AppStore
Dopo tutti gli opportuni controlli e fasi di test effettuati da me e da
amici che posseggono uno dei due dispositivi (iPad o iPhone), si è
passato alla pubblicazione dell'applicazione online attraverso
l'appStore.
È sufficiente inviare l'applicazione su iTunes e poi attendere alcuni
giorni per verificare che sia stata pubblicata.
App Store, oltre a diventare un modello per tutti i maggiori produttori
di telefonia mobile, è il più fornito negozio virtuale di applicazioni per
un telefono cellulare (ovvero iPhone) e un riproduttore MP3 (iPod
touch) come riportato dall'articolo di Michele Baratelli di Pinch Media
[24].
In App Store sono ora disponibili più di 100mila applicazioni: una cifra
103
3 SVILUPPO DELL'APPLICAZIONE
enorme, forse anche esagerata. Un cifra, però, che risponde al dictat
di Apple che si può riassumere nelle parole “chiunque può vendere la
propria idea in App Store“.
Lo sviluppatore è libero di proporre il proprio lavoro che, se accettato,
sarà disponibile alla vendita al prezzo desiderato. Questa è
un’opportunità incredibile per offrire alle proprie applicazioni una
vetrina mondiale. Come dimostra una recente ricerca, i guadagni
comunque non sono significativi come il numero di applicazioni
presenti.
È Pinch Media a presentare un interessante resoconto sulla vicenda e
dichiara che:
• una App a pagamento ottiene, in media, 9300 download (71mila
per le “free Apps”)
• agli sviluppatori vanno in media 12100 dollari (al netto di Apple
diventano 8500 dollari)
Una media che però deve tenere conto di un altro dato, ovvero che
solo il 10% di tutte le App a pagamento è in grado di generare un
forte interesse da parte del pubblico e dunque l’acquisto.
Il prezzo, molte volte, non incide sulla percentuale di download. In
media, una App da 4,99 dollari vende di più di una proposta ai
canonici 0,99 dollari. Molto probabilmente il prezzo di 4,99, una via di
mezzo, è percepito come sinonimo di qualità ad un costo più che
accettabile.
104
4 SVILUPPI FUTURI
4 SVILUPPI FUTURIDurante la realizzazione di questa applicazione ho considerato la
possibilità di inserire più funzionalità all'interno del gioco.
L'inserimento, per esempio, di una chat vocale per iPhone, oppure
anche scritta per iPad. Questa funzionalità potrebbe essere molto utile
soprattutto se si gioca contro gli amici con i quali si vuole anche
dialogare.
Una caratteristica fondamentale del gioco da tavola è la
socializzazione. Come diceva Platone:
“Si può scoprire di più su una persona in un'ora di gioco, che in un
anno di conversazione.”
In futuro si possono inserire anche degli Achievement cioè dei
traguardi nel gioco, che dopo un periodo di utilizzo dell'applicazione, o
dopo un certo numero di vittorie, possono sbloccare delle immagini
nuove o dei suoni che invoglieranno l'utente a giocare ancora,
aumentando la longevità del prodotto.
Questo è un fattore molto importante, in particolare per il gioco da
tavolo tradizionale. Un gioco deve invogliare a fare una nuova partita,
a essere utilizzato spesso. Questo perchè un acquirente che investe
denaro in un prodotto, vuole utilizzarlo il più a lungo possibile.
Un ulteriore sviluppo futuro che ho intenzione di effettuare nelle
prossime versioni del gioco è quello di creare la possibilità agli utenti
nella stessa stanza di utilizzare il bluetooth e giocare in rete. Senza
bisogno di una connessione alla rete wireless.
105
4 SVILUPPI FUTURI
E' mia intenzione realizzare anche la versione in lingua inglese, per
poter avere a disposizione un maggior numero di utenti interessati al
download. Avere l'applicazione disponibile nella sola lingua italiana
renderebbe Spirits! un prodotto difficilmente “esportabile”.
Un'altra idea che si potrebbe prendere in considerazione non appena
terminata quest'applicazione è di renderla disponibile per tutti gli
smartphone e quindi per tutte le piattaforme.
Come già citato nella versione per iPad, si potrebbe anche utilizzare
meglio il display per permettere di giocare a più partite
contemporaneamente nella stessa interfaccia.
L'app store comunque mi aiuterà nella valutazione dell'applicazione in
quanto chi acquisterà potrà scrivere una recensione. In molti casi
sono proprio gli utenti finali che aiutano nel miglioramento
dell'applicativo e che ne decretano il successo con commenti positivi.
106
5 CONCLUSIONI
5 CONCLUSIONII dispositivi mobili presentano un’infrastruttura hardware–software
molto articolata, in cui sono presenti tutti gli elementi che si
riscontrano nei moderni computer desktop, ma non solo; infatti
raccolgono una certa quantità di sensori e punti di accesso
all’ambiente circostante, per integrare sempre più le esigenze del
singolo individuo nel mondo virtuale acquisendone anche
l'esperienza.
Nell’analisi appena conclusa si è affrontato il tema di progettazione e
sviluppo di un'applicazione per la piattaforma mobile Apple.
Ogni capitolo è stato strutturato come parte integrante di uno
specifico percorso, introdotto in una visione d’insieme delle
potenzialità dei device mobili ed in particolare dell'architettura di iOS.
La relazione ha inizio con l’analisi dei meccanismi ed aspetti
riguardanti la performance e stabilità applicativa che interessano i
frameworks più vicini all’apparato hardware; successivamente ne è
descritto lo sviluppo.
Inizialmente ho svolto un lavoro di ricerca sulle tecnologie ed i
software già esistenti sul mercato nel campo dei dispositivi mobili per
capire quale fosse la situazione attuale e come si potesse creare
qualcosa di originale e utile.
Sono stati poi inquadrati e valutati i tanti strumenti disponibili per
adempiere allo scopo e la scelta è caduta sull’ambiente di sviluppo
Apple. L’ambiente Apple è stato scelto combinando disponibilità dei
mezzi, curiosità e con un occhio all’andamento del mercato dei
dispositivi che hanno come sistema operativo iOS come iPhone ed
iPad. La realizzazione di quest’applicazione è stata una sfida
personale, in quanto era la mia prima esperienza di progettazione in
ambiente Apple. I risultati ottenuti sono stati soddisfacenti e i mezzi
utilizzati molto utili per la mia conoscenza personale. Inoltre
107
5 CONCLUSIONI
l’applicazione risponde alle caratteristiche di funzionalità che erano
state poste inizialmente, e può essere il punto di partenza per futuri
progetti.
Apple ha puntato sulla creazione di una piattaforma mobile che desse
continuità al precedente successo in campo desktop, utilizzando
quindi la medesima architettura a livelli, i quali sono a loro volta
suddivisi in frameworks, ognuno orientato alla gestione di un
particolare aspetto del sistema operativo. Facendo buon uso del
concetto di interfaccia, tali frameworks sono reciprocamente basati su
altri appartenenti a livelli sottostanti, garantendo un buon grado di
disaccoppiamento fra le funzionalità basilari e il contesto nel quale
vengono utilizzate versioni perfezionate. Tutto questo è stato possibile
mediante un’attenta analisi delle prospettive future, importante fase
progettuale e fattore determinante per un settore in costante crescita
come è quello informatico; il risultato di tali riflessioni è stato
applicato fin dalle prime versioni di Mac OS X, quando si è dato inizio
ad un imponente processo di “ristrutturazione”, gettando da subito le
basi della futura piattaforma iOS.
108
6 BIBLIOGRAFIA
6 BIBLIOGRAFIA
[1] Pietro Gugliotta , Forbes, pubblicata la classifica dei 50 Marchi più
famosi, prima la Apple, http://www.economiafinanza.net/forbes-
pubblicata-la-classifica-dei-50-marchi-piu-famosi-prima-la-apple/
[2] Mobile Learning per servizi orientati alla formazione, Christian
Bianco, Mauro Coccoli, Gianni Vercelli DIST, 2009, Universita degli
Studi di Genova
[3] Dati Rapporto Mediascope Europe (2010),
http://www.iabeurope.eu/
[4] Stefano DE LUCA (2006), Ubiquitous GIS in ubiquitous computing:
l’esperienza di Urbanet - Enterprise Digital Architects
[5] Gartner (2010), CEO Advisory: seize the iPad opportunity now
http://www.gartner.com/it/page.jsp?id=1462813
[6] Gartner (2011), iPad and beyond: the media tablet in business,
http://www.gartner.com/DisplayDocument?doc_cd=211735
[7] Berg (2011), Smartphone shipments grew 74% in 2010,
http://www.bgr.com/2011/03/10/berg-smartphone-shipments-grew-
74-in-2010/
[8] Bill Dudney, Chris Adamson (2009) Sviluppare applicazioni on
109
6 BIBLIOGRAFIA
iPhone sdk
[10] Wikipedia (2011) iPhone - http://it.wikipedia.org/wiki/Iphone
[12] Le nuove caratteristiche di iPhone 4S
http://www.pcrevenge.org/17129/le-nuove-caratteristiche-di-iphone-
4s/
[13] IDC Forecasts Nearly 183 Billion Annual Mobile App Downloads
by 2015: Monetization Challenges Driving Business Model Evolution,
(2011) http://www.idc.com/getdoc.jsp?containerId=prUS22917111
[14] Wikipedia (2011) App Store -
http://it.wikipedia.org/wiki/App_Store
[15] Soichi Nakajima (2010), Mobile Stores & Applications Stores”
[16] Maurizio Giaretta (2010), Applicazioni per la Salute: 500 milioni di
utenti entro il 2015
http://www.pianetacellulare.it/post/Applicazioni/13244_Applicazioni-
per-la-Salute-500-milioni-di-utenti-entro-il-2.php
[17]Game Center, sito della Apple
http://www.apple.com/it/iphone/built-in-apps/game-center.html
[18] Mobile.html http://mobile.html.it/guide/lezione/5378/objective-c-
xcode-interface-builder-e-simulatore/
110
6 BIBLIOGRAFIA
[19] Wikipedia - Xcode http://it.wikipedia.org/wiki/Xcode
[20] Wikipedia – Gioco da tavolo
http://it.wikipedia.org/wiki/Gioco_da_tavolo
[21] Kyle Richter (2011), Beginning IOS Game Center and Game Kit:
For IPhone, IPad and IPod Touch
[22] Paolo Baruffa -
http://www.dsi.unive.it/~marek/files/seminari/Paolo%20Baruffa/Il
%20Mercato%20Dei%20Giochi%20Online.pdf
[23] Enrico Netti (2012) – il sole 24 ore-
http://www.ilsole24ore.com/art/impresa-e-territori/2012-04-09/gioco-
invade-cellulari-170405.shtml?uuid=AbI15VLF
[24]Michele Baratelli (2009),
http://www.theapplelounge.com/commento/app-store-non-rende-
ricchi-sviluppatori/
[25] Vandad Nahavandipoor (2011), Writing Game Center Apps in IOS,
O REILLY
[26] Elena Sandei (2011),[ Analisi della rilevanza e dello stato di
adozione delle applicazioni e dei device mobili nelle imprese operanti
in Italia, https://www.politesi.polimi.it/bitstream/10589/28222/1/Tesi
111
6 BIBLIOGRAFIA
%20versione%20finale1.pdf
112
7 RINGRAZIAMENTI
7 RINGRAZIAMENTIDesidero innanzitutto ringraziare il Professor Amoroso, mio relatore
universitario, sempre molto disponibile e cordiale sia a lezione che
durante il periodo di preparazione e stesura di questa tesi.
Altrettanto grande il ringraziamento a Roberto Petrillo, titolare della
Raven, casa editrice che detiene i diritti di Spirits!, nonché amico e
persona con cui collaboro in diversi campi.
Ringrazio i miei famigliari che mi hanno sempre stimolato e
incoraggiato nel corso di questi anni di studi in particolare nei
momenti in cui, dopo tanti sacrifici, i risultati raggiunti non erano
quelli sperati.
Un particolare ringraziamento lo devo a mia mamma ed al nonno per
l'insegnamento di vita ricevuto. Pur sentendo tanto la loro mancanza
ancora mi danno gli stimoli giusti per affrontarla.
Ringrazio Claudio, che e presente in ogni momento e cerca sempre di
farmi vedere il lato positivo delle cose ed inoltre mi è stato di
particolare aiuto per le sue conoscenze informatiche e per la sua
passione per i giochi da tavolo di tipo tradizionale.
Infine voglio ringraziare tutti i miei amici che mi hanno sostenuto e
fatto rilassare nei momenti di bisogno.
Marica
113