Create il vostro Infinite Scrolling Game per iPhone con Swift e SpriteKit

In questo articolo vedremo con sviluppare un videogioco a scorrimento per iPhone utilizzando Swift e SpriteKit (il framework per videogiochi 2D incluso in iOS).

Ogni passo viene spiegato nel dettaglio, tuttavia una qualche esperienza di programmazione (non necessariamente Swift e iOS) vi aiuterà a capire meglio. Non è necessaria alcuna esperienza nello sviluppo di videogiochi, anzi questo progetto potrebbe benissimo essere il vostro primo esperimento. Una volta terminato vi invito a modificarlo secondo le vostre idee in modo da farlo diventare il vostro prodotto.

Il gioco è molto semplice, abbiamo un Koala che deve saltare i piatti di formaggio che gli vengono incontro. Ogni volta che il giocatore tocca lo schermo dell’iPhone il Koala salta. Se il Koala viene colpito dal piatto di formaggio il gioco termina e viene mostrato un testo atto a sminuire l’autostima del giocatore. Il tutto avviene in una foresta di notte naturalmente.

Infinite Scrolling (more…)

Approfondisci

12093197346_6b667a5a32_b

Creare un Dao per i dati utente con Swift

In un articolo precedente abbiamo visto che NSUserDefaults è la soluzione perfetta per il salvataggio dei dati dell’utente della vostra app. Tuttavia accedere a NSUserDefaults direttamente da vari punti della vostra app vi carica della responsabilità che le letture e le scritture siano effettivamente consistenti. Ad esempio basta scrivere erroneamente il nome della key associata al valore che state gestendo per produrre degli scenari non coerenti.

Può sembrare un errore facile da evitare ma quando l’app diventa complessa con varie coppie chiave valore che vengono salvate in diversi punti del codice, è facile commettere un errore. E purtroppo si tratta di un’ inconsistenza che il compilatore non può controllare essendo le chiavi delle stringhe.

Una prima soluzione potrebbe sembrare quella di creare delle costanti  (di tipo String) per accedere ai metodi di NSUserDefaults passando sempre una costante invece di digitare liberamente la chiave. Tuttavia stiamo esponendo al codice dell’intera app dei dettagli che sarebbe meglio racchiudere in un oggetto unico. (more…)

Approfondisci

Luminetic Land

Salvare i dati su iOS con Swift e NSUserDefaults

iOS offre una soluzione molto semplice per la persistenza dei dati primitivi o di oggetti conformi al protocollo NSCoding: NSUserDefaults.

Ecco alcuni esempi di dati che dovreste salvare con NSUserDefaults:

  1. Il punteggio raggiunto in un videogioco.
  2. L’elenco dei livello completati in un videogioco.
  3. Le preferenze dell’utente relative ai filtri per un app che ricerca appartamenti.
  4. Gli articoli che l’utente ha aggiunto in un app per la lista della spesa.

(more…)

Approfondisci

Breaking Bad Heisenberg

Come evitare La Piramide Della Sventura con Swift 1.2

Uno dei concetti alla base di Swift è quello degli Optional, cioè la possibilità di poter determinare (già durante la compilazione) se una certa variabile potrà in seguito assumere un valore nullo.

In un linguaggio di programmazione che non supporta gli Optional (come Objective-C) accade che una variabile di tipo primitivo (int, BOOL, double, …) sarà sempre popolata (verrà inizializzata da ARC con 0 se non lo farà lo sviluppatore).

D’altro canto in Objective-C una variabile che referenzia un oggetto potrà sempre assumere valori di tipo nil.

In Swift quando dichiariamo una variabile possiamo indicare se potrà assumere valori nulli (indipendentemente dal fatto che la variabile contenga un tipo primitivo, una struttura, un enum o referenzi un’oggetto).

La prima riga qui di seguito dichiara una variabile di tipo String e potenzialmente nulla.

Mentre la seguente istruzione forza la variabile walterWhiteAlias a referenziare sempre una String.

(more…)

Approfondisci

Mele

Array in Swift

Un Array in Swift è una lista ordinata di valori dello stesso tipo. Lo stesso valore può apparire diverse volte in posizioni distinte.

In Swift possiamo creare un Array con una sintassi molto essenziale:

Esaminiamo l’istruzione:

  1. var è la keyword per definire una variabile
  2. fruits è il nome della variabile
  3. [String] indica un Array di oggetti di tipo String
  4. infine () invoca il costruttore della struttura Array

(more…)

Approfondisci

What is Art?

Swift: Costanti, Inferred Types, Variabili e Optional Types

Costanti

Una costante è una referenza a un valore che può essere assegnata una sola volta e letta varia volte. Per creare una costante in Swift si usa la keyword let.

Con l’istruzione precedente abbiamo creato una costante il cui nome è aNumber, di tipo Int e avente valore 5.

Successivamente possiamo stampare il valore associato a aNumber:

Non è possibile assegnare un nuovo valore alla costante, la seguente istruzione darà errore:

(more…)

Approfondisci

Swift Logo

Swift: Hello World in 5 passi

Swift è il nuovo linguaggio di programmazione presentato da Apple lo scorso Giugno durante il WWDC 2014. Superata la fase estiva di beta Swift ha raggiunto la versione 1.0 (1.1 al momento) e da Settembre l’App Store accetta applicazioni scritte in Swift.

Si tratta di un linguaggio moderno concepito da Apple per il futuro dello sviluppo sulle sue piattaforme. Attualmente Objective-C è completamente supportato ma non è difficile immaginare che nei prossimi anni ricoprirà un ruolo sempre più marginale. Basta confrontare 2 blocchi di codice Swift e Objective-C (logicamente equivalenti) per rendersi di conto quanto il primo sia più potente,  essenziale e divertente.

Nei prossimi 5 passi vedremo come costruire un Hello World con Swift. (more…)

Approfondisci

Luminetic Land arriverà su App Store (Italia) il 6 Febbraio 2014

Luminetic Land in arrivo su App Store℠ (Italia) il 6 Febbraio 2014

Su App Store (Italia) arriva “Luminetic Land”: un puzzle game basato su luce, colori e fisica sviluppato indipendentemente in Italia per iPhone, iPad e iPod touch.

“Le stelle sono perdute e hanno bisogno del tuo aiuto… illuminale!
Tocca le calamite per muovere i tuoi Luminetic attraverso 100 puzzle unici e illuminare ogni stella con la giusta luce. Sovrapponi 2 fasci di luce per creare nuovi colori. Ma sii veloce perché il tuo tempo è limitato.”

In Luminetic Land tutto agisce secondo le leggi della fisica. Il gioco utilizza la tecnica del Ray Casting per generare dei fasci luminosi che reagiscono in modo dinamico. Vengono bloccati se incontrano un oggetto e cambiano colore quando si sovrappongono a un altro fascio di luce.
Su questo elemento è costruito il gameplay originale e l’esperienza visiva unica di Luminetic Land.

Caratteristiche

  • 25 livelli gratuiti
  • 75 livelli aggiuntivi tramite acquisti In-App
  • Usa calamite, rocce, casse di legno, bombe e tubi teletrasporto per risolvere i puzzle
  • Cubi di ghiaccio, nuovi tipi di calamite e bombe nei livelli aggiuntivi
  • Colonna sonora coinvolgente
  • Ogni singolo livello possiede il suo tabellone su Game Center
  • Il supporto a iCloud consente di sincronizzare automaticamente i progressi tra iPhone, iPad e iPod touch
  • 100% indie

Prezzo e supporto
Il gioco sarà disponibile gratuitamente (con la possibilità di giocare i primi 25 livelli) e conterrà degli annunci pubblicitari.
Acquistando il Premium Pack 1 (3,59€ soggetto a variazioni) la pubblicità verrà rimossa da tutto il gioco e saranno sbloccati 75 livelli aggiuntivi.
Luminetic Land richiede iOS 7 ed è compatibile con i seguenti dispositivi:

  • iPhone 5s, iPhone 5c, iPhone 5, iPhone 4s, iPhone 4
  • iPad Air, iPad con display Retina, iPad 2
  • iPad Mini con display Retina, iPad Mini
  • iPod touch (5th gen)

Trailer: www.youtube.com/watch?v=SvH0Kjk7b8s

Maggiori informazioni

 

Approfondisci