Download - 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
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]
Programma della giornata
• Introduzione al mobile
• Linee guida e risorse utili
• Introduzione alla programmazione iOS con Swift
• Creazione di un’app
Più di 85 milioni di download dal 2008
70% di proventi da App Store Prezzo medio app:
(iOS) $1.5 (Android) $1
App Store
10 modelli iPhone dal 2007 ad oggi 4 modelli iPad
4 risoluzioni + retina
Distribuzione versioni iOS
• Apple iOS ha poca frammentazione dei sistemi operativi
• Sviluppando per iOS 7 e successivi viene coperto oltre il 98% dei dispositivi
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
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
• 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
Swift. A modern programming
language that is safe, fast, and interactive.
Playground
Sicuro
Veloce
Le variabili vengono gestite in maniera ottimale grazie agli optionals
var optionalString: String?
Interoperabilità con Obj-CPossiamo usare Swift e Objective C nello stesso progetto
let maximumNumberOfLoginAttempts = 10
Dichiarazione di una variabile
var currentLoginAttempt = 0
let è usato per dichiarare costanti
var è usato per dichiarare variabili
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
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
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
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
func sayHelloWorld() -> a href="" String /a { return "hello, world" } print(sayHelloWorld()) // prints "hello, world"
Metodi
Funzioni semplici
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
Metodi
func sayHelloAgain(personName: String) -> String { return "Hello again, " + personName + "!" }
print(sayHelloAgain("Anna")) // prints "Hello again, Anna!"
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
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
• 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
To the Code!
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