Apple ha rilasciato sul blog di Swift, il suo nuovo linguaggio di programmazione, un tutorial per creare un applicazione per iDevice con iOs 8 in pochi minuti.
L’app consente di applicare in modo random un filtro su un immagine preimpostata. Questo tutorial mostra anche alcune delle principali differenze tra Swift e Objective-C.
Una di queste è la mancanza del file .h, tutto il codice è solo sui file .swift; non è necessario dichiarare il tipo delle variabili nonostante swift sia un linguaggio fortemente tipato (come il C o il Java) quando si crea una variabile questa diventa del tipo adatto e non può più cambiare.
L’IDE assiste lo sviluppatore con automazioni presenti per altri linguaggi come il Java dove invocata una classe l’IDE suggerisce, con la possibilità di autocompletamento, i metodi della classe stessa.
Vediamo nel dettaglio il tutorial:
- Per prima cosa si crea un nuovo progetto Xcode e si seleziona il linguaggio Swift al posto di Objective-C;
- Si inserisce l’immagine all’interno del progetto;
- Utilizzando La storyboard si inserisce un imageview e ne si imposta l’immagine contenuta in maniera statica;
- Si imposta l’Auto Layout in modo da poter sempre visualizzare bene l’immagine anche su dispositivi diversi;
- Si incorpora l’intero View Controller all’interno di un Navigation Controller in modo da poter avere una barra di navigazione dove impostare un nome ed una barra inferiore dove inserire un UIBarButton;
- Ora si inizia a ascrivere un po’ di codice, ma veramente poco usando l’assistant teniamo premuto il tasto “ctrl” e clickiamo con il tasto sinistro del mouse sull’immageview trascinando il cursore del mouse fino al codice mostrato dall’assistant, creiamo così un IBOutlet;
- facciamo in modo analogo con il barbutton creando però un IBAction “applyFilter”;
- a questo punto inseriamo il seguente codice all’interno di applyFilter;
1
2
3
4
5
let inputImage = CIImage(image: photoImageView.image)
let randomColor = [kCIInputAngleKey: (Double(arc4random_uniform(314))/100)]
let filteredImage = inputImage.imageByApplyingFilter("CIHueAdjust", withInputParameters: randomColor)
let renderedImage = context.createCGImage(filteredImage, fromRect: filteredImage.extent())
photoImageView.image = UIImage(CGImage: renderedImage)
Lanciamo e vedremo l’app con la nostra foto il titolo sopra e il bottone sotto, premendo sul bottone applicheremo dei filtri colorati in maniera random.