Download Luminetic Land on the App Store
Breakout

Come sviluppare un gioco stile Breakout per iPhone

In questo tutorial imparerete a sviluppare un gioco stile Breakout per iPhone utilizzando SpriteKit (il framework per giochi 2D di iOS e OS X), Swift e il Physics Engine integrato in Sprite Kit. Nel filmato qui sotto vedete una registrazione del gioco che state per costruire.

Dopo aver scritto il progetto ho riscritto alcune componenti per 3 volte fino a renderlo il più chiaro e comprensibile possibile (spero di esserci riuscito). (more…)

Approfondisci

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