from a to c(heck-in): ios e swift lab

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

Upload: paolo-musolino

Post on 16-Apr-2017

199 views

Category:

Engineering


2 download

TRANSCRIPT

Page 1: FROM A TO C(HECK-IN): iOS e Swift Lab

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

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

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

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

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

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

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

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

• 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
Page 11: FROM A TO C(HECK-IN): iOS e Swift Lab

Swift. A modern programming

language that is safe, fast, and interactive.

Page 12: FROM A TO C(HECK-IN): iOS e Swift Lab

Playground

Page 13: FROM A TO C(HECK-IN): iOS e Swift Lab
Page 14: FROM A TO C(HECK-IN): iOS e Swift Lab

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

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

Page 16: FROM A TO C(HECK-IN): iOS e Swift Lab

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

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

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

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

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

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

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

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

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

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

• 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
Page 28: FROM A TO C(HECK-IN): iOS e Swift Lab

To the Code!

Page 29: FROM A TO C(HECK-IN): iOS e Swift Lab

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