From A to C(heck-in): iOS e Swift Lab - Todi Appy Days 2015

29
FROM A TO C(HECK-IN): IOS E SWIFT LAB Paolo Musolino Erik Peruzzi 26 Settembre 2015 - Todi AppyDays

Transcript of From A to C(heck-in): iOS e Swift Lab - Todi Appy Days 2015

Page 1: From A to C(heck-in): iOS e Swift Lab - Todi Appy Days 2015

FROM A TO C(HECK-IN): IOS E SWIFT LAB

Paolo MusolinoErik Peruzzi

26 Settembre 2015 - Todi AppyDays

Page 2: From A to C(heck-in): iOS e Swift Lab - Todi Appy Days 2015

Erik Peruzzi iOS Software Engineer

Officina 31 Twitter: @ErikPeruzzi

email: [email protected] medium: https://medium.com/

@officina31/

Paolo Musolino iOS Software Engineer

IQUII srl Twitter: @pmusolino

email: [email protected]

Page 3: From A to C(heck-in): iOS e Swift Lab - Todi Appy Days 2015

Programma della giornata

• Introduzione al mobile

• Linee guida e risorse utili

• Introduzione alla programmazione iOS con Swift

• Creazione di un’app

Page 4: From A to C(heck-in): iOS e Swift Lab - Todi Appy Days 2015

Più di 85 milioni di download dal 2008

70% di proventi da App Store Prezzo medio app:

(iOS) $1.5 (Android) $1

App Store

Page 5: From A to C(heck-in): iOS e Swift Lab - Todi Appy Days 2015

10 modelli iPhone dal 2007 ad oggi 4 modelli iPad

4 risoluzioni + retina

Page 6: From A to C(heck-in): iOS e Swift Lab - Todi Appy Days 2015

Distribuzione versioni iOS

• Apple iOS ha poca frammentazione dei sistemi operativi

• Sviluppando per iOS 7 e successivi viene coperto oltre il 98% dei dispositivi

Page 7: From A to C(heck-in): iOS e Swift Lab - Todi Appy Days 2015

Riferimenti utili• Apple developer program https://

developer.apple.com/programs/ios/

• iOS Human Interface Guidelines https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/MobileHIG/AppIcons.html#//apple_ref/doc/uid/TP40006556-CH19-SW1

• Elementi UI https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/UIKitUICatalog/index.html#//apple_ref/doc/uid/TP40012857-UIView-SW1

• Info grafiche utili http://iosdesign.ivomynttinen.com

• Tutorials http://www.raywenderlich.com http://www.appcoda.com

• Google

Page 8: From A to C(heck-in): iOS e Swift Lab - Todi Appy Days 2015

Programmazione iOS

• Il linguaggio usato è Objective-C o Swift

• Si usa per sviluppare per iOS ed OSX (iPhone, iPad, Mac)

• Linguaggio ad oggetti, simile a C++ e java

• Implementa il pattern MVC model-view-controller

• Dal 2014 è possibile sviluppare anche in Swift

Page 9: From A to C(heck-in): iOS e Swift Lab - Todi Appy Days 2015

• Un Oggetto è un’entità, appartenente ad una classe con un proprio stato e comportamento

• Una Classe è una descrizione astratta, un prototipo che definisce il comportamento e le proprietà di un oggetto

• Normalmente si definisce una classe e si istanzia uno o più oggetti relativi ad essa

Page 10: From A to C(heck-in): iOS e Swift Lab - Todi Appy Days 2015
Page 11: From A to C(heck-in): iOS e Swift Lab - Todi Appy Days 2015

Swift. A modern programming

language that is safe, fast, and interactive.

Page 12: From A to C(heck-in): iOS e Swift Lab - Todi Appy Days 2015

Playground

Page 13: From A to C(heck-in): iOS e Swift Lab - Todi Appy Days 2015
Page 14: From A to C(heck-in): iOS e Swift Lab - Todi Appy Days 2015

Sicuro

Veloce

Le variabili vengono gestite in maniera ottimale grazie agli optionals

var optionalString: String?

Page 15: From A to C(heck-in): iOS e Swift Lab - Todi Appy Days 2015

Interoperabilità con Obj-CPossiamo usare Swift e Objective C nello stesso progetto

Page 16: From A to C(heck-in): iOS e Swift Lab - Todi Appy Days 2015

let maximumNumberOfLoginAttempts = 10

Dichiarazione di una variabile

var currentLoginAttempt = 0

let è usato per dichiarare costanti

var è usato per dichiarare variabili

Page 17: From A to C(heck-in): iOS e Swift Lab - Todi Appy Days 2015

Dichiarazione di una variabile

var x = 0.0, y = 0.0, z = 0.0

var welcomeMessage: String

welcomeMessage = "Hello"

si possono dichiarare variabili multiple

si può dichiarare il tipo di variabile

Page 18: From A to C(heck-in): iOS e Swift Lab - Todi Appy Days 2015

Dichiarazione di una variabile

var friendlyWelcome = "Hello!" friendlyWelcome = "Bonjour!" // friendlyWelcome is now "Bonjour!"

una variabile consente di cambiare il suo valore

una costante non consente di cambiare il suo valore

let languageName = "Swift" languageName = "Swift++" // this is a compile-time error - languageName cannot be changed

Page 19: From A to C(heck-in): iOS e Swift Lab - Todi Appy Days 2015

Optionals

var optionalInt :Int?

gli optionals gestiscono l’assenza di una variabile

si usano in situazioni dove un valore può essere assente

Usare gli optionals è simile ad usare un puntatore a nil in Obj-C

ma funzionano per qualsiasi tipo di dato, non soltanto per le classi

Page 20: From A to C(heck-in): iOS e Swift Lab - Todi Appy Days 2015

extension String { var banana : String { let shortName = String(characters.dropFirst(1)) return "\(self) \(self) Bo B\(shortName) Banana Fana Fo F\(shortName)" } }

let bananaName = "Jimmy".banana // "Jimmy Jimmy Bo Bimmy Banana Fana Fo Fimmy"

Estensioni

Page 21: From A to C(heck-in): iOS e Swift Lab - Todi Appy Days 2015

func sayHelloWorld() -> a href="" String /a { return "hello, world" } print(sayHelloWorld()) // prints "hello, world"

Metodi

Funzioni semplici

Page 22: From A to C(heck-in): iOS e Swift Lab - Todi Appy Days 2015

func sayHello(personName: String) -> String { let greeting = "Hello, " + personName + "!" return greeting }

Metodi

print(sayHello("Anna")) // prints "Hello, Anna!"

Funzione con parametro di ingresso e uscita

Page 23: From A to C(heck-in): iOS e Swift Lab - Todi Appy Days 2015

Metodi

func sayHelloAgain(personName: String) -> String { return "Hello again, " + personName + "!" }

print(sayHelloAgain("Anna")) // prints "Hello again, Anna!"

Page 24: From A to C(heck-in): iOS e Swift Lab - Todi Appy Days 2015

func sayHello(personName: String, alreadyGreeted:Bool) -> String{

if alreadyGreeted { return sayHelloAgain(personName) }

else { return sayHello(personName) } }

print(sayHello("Tim", alreadyGreeted: true)) // prints "Hello again, Tim!"

MetodiFunzioni con parametri di ingresso multipli

Page 25: From A to C(heck-in): iOS e Swift Lab - Todi Appy Days 2015

iOS implementa il pattern MVC (Model-View-Controller)

Modello: oggetto che controlla i dati - Dati Controllore: intermediario tra modello e vista - Logica

Vista: presenta all’utente i dati del modello - Interfaccia utente

Page 26: From A to C(heck-in): iOS e Swift Lab - Todi Appy Days 2015

• L’IDE usato è Xcode

• Scaricabile direttamente dallo store

• Ha tutti gli strumenti per creare un’app e inviarla allo store

• Integra Interface Builder per creare interfacce grafiche di tipo drag e drop

Page 27: From A to C(heck-in): iOS e Swift Lab - Todi Appy Days 2015
Page 28: From A to C(heck-in): iOS e Swift Lab - Todi Appy Days 2015

To the Code!

Page 29: From A to C(heck-in): iOS e Swift Lab - Todi Appy Days 2015

Where to go from here• Inizia a sviluppare in Swift - Tutorial: Start Developing iOS Apps (Swift)

• Registrarsi come sviluppatore: Managing Accounts

• Imparare a creare interfacce mobile: iOS Human Interface Guidelines, Auto Layout Guide

• Imparare Objective-C: Programming with Objective-C

• Imparare a sviluppare in Swift: The Swift Programming Language

• Imparare a sviluppare grandi App: App Programming Guide for iOS

• Conoscere le tecnologie disponibili: iOS Technology Overview

• Documentazione generale: Finding Information

• Debug e testa la tua app: Debug Your App

• Distribuisci la tua app: App Distribution Guide