Click here to load reader
Upload
software-guru
View
681
Download
0
Embed Size (px)
DESCRIPTION
Apple anunció en la WWDC14 un nuevo lenguaje de programación llamado Swift, que ha sido muy bien recibido por la comunidad de desarrolladores. Swift se presenta como un lenguaje más poderoso que Objective-C y mucho más fácil de aprender. En esta sesión pondremos a prueba estas premisas y charlaremos sobre las principales características de este nuevo lenguaje. Si aun no estas montado en el tren de desarrollo de aplicaciones móviles o si querías empezar a desarrollar para iOS y aun no te decidias, este es el momento y el lenguaje adecuado para ingresar a este fabuloso mundo. Ven y descubre todo lo que tu telefono del futuro puede hacer por ti y por todos. Semblanza del conferencista: Sergio Brito es CTO en Activ Development Experiences, empresa especializada en la capacitación y desarrollo con tecnologías líderes. Ha impartido clases y capacitación por más de 8 años en distintos países. Es Adobe Community Professional y coordinador del Grupo de Usuarios RIActive. Sergio es entusiasta de aprender sobre nuevas tecnologías y lenguajes, y actualmente se especializa en el desarrollo de aplicaciones móviles.
Citation preview
Hola Swift!
Sergio Brito @yacaFx
Developing Experiences
activ.com.mx
¿Quién soy?
CTO en Activ Developing Experiences
Adobe Certified Instructor & Expert
RIActive Community Manager
49ers Fan&Player
[email protected] @yacaFx
Desarrollo
Capacitación
Consultoría
Developing Experiences
SwiftModerno e interactivo SeguroRápido y poderoso
Playgrounds Beta 2
Beta 2developer.apple.com/swift
Beta 2
http://goo.gl/xOos0X http://goo.gl/BclW5n
Beta 2
Documentación oficial: http://goo.gl/YCneJ1
Developer
Beta 2
;
Beta 2
Variables
var myVar: String = “Hola SG”
var myVar = “Hola SG”
var nombre = “Sergio”, apellido = “Brito”
Beta 2
Constantes
let myConst: String = “Hola SG”
let myVar = 7
Beta 2
Unicode
var 👻 = "Scary!"
var bear = “🐻"
let π = 3.1416
Beta 2
Concatenación
var 👻 = "Scary!"
var bear = “🐻"
var sopresa = bear + 👻
Beta 2
Interpolación de cadenas
let a = 5, b = 10
var resultado = "\(a) veces \(b) es \(a*b)”
// 2 veces 5 es 10
Beta 2
Arreglos
var cursos = [“html5”, “Swift”, “Android”]
println(cursos[1])
//Swift
Beta 2
Diccionarios
var ciudades<String, String> = [“Tabasco”: “Villahermosa”, “Tepic”: ”Nayarit”]
var ciudades = [“Tabasco”: “Villahermosa”, “Tepic”: ”Nayarit”]
println(ciudades[“Tabasco”])
// Villahermosa
Beta 2
Condiciones
if comidas > 3 { felicidad += 1 } else { depresión += 1 }
Beta 2
Nil
var nombre: String? = “Sergio”
nombre = nil
Beta 2
Nil
var = nombre: String? = “Sergio”
nombre = nil
if let dato = nombre { println(“No es nil”) } else { println(“Si es nil”) }
Beta 2
Switch
switch(heroe){ case “batman”: println(“Comic Gratis”) case “Robin” println(“No hay comic”) }
var heroe = “Batman”
Beta 2
Switch
switch(heroe){ case “batman”: println(“Comic Gratis”) case “Robin”, “Ala Nocturna” println(“No hay comic”)
default: println(“Heroes no incliudos”) }
var heroe = “Batman”
Beta 2
Ciclos
var empresas = ["Apple", "Adobe", "Google", "BlackBerry", "SG"]
for empresa in empresas{ println(“La empresa es \(empresa)") }
Beta 2
Ciclos y Rangos
for numero in 1…4{ println(“ \(numero) vez de 4”) }
1 vez de 4 2 vez de 4 3 vez de 4 4 vez de 4
Beta 2
Ciclos y Diccionarios
let edades = [“Hugo”:”20”,“Paco”:”23”,“Luis”:”25”,]
for (persona, edad) in edades{ println(“ \(persona) tiene \(edad) años”) }
Hugo tiene 20 años Paco tiene 23 años Luis tiene 25 años
Beta 2
Funciones
func saludar( ){ println(“Bazinga!”) }
Beta 2
Funciones
func saludar( ){ println(“Bazinga!”) }
saludar( )
Beta 2
Funciones y parámetros
func saludar(nombre: String ){ println(“Hola \(nombre)”) }
saludar(“Pancho Pistolas”)
//Hola Pancho Pistolas
Beta 2
Funciones y parámetros por default
func saludar(nombre: String = “a todos”){ println(“Hola \(nombre)”) }
saludar()
//Hola a todos
Beta 2
Funciones y retorna valores
func saludar(nombre: String = “a todos”) -> String{ return “Hola ” + nombre }
let saludos = saludar()
Beta 2
Funciones y retorna valores
func saludar(nombre: String = “a todos”) -> String{ return “Hola ” + nombre }
//let saludos = saludar() let saludos: String = saludar()
Beta 2
Funciones y retorna valores
func saludar(nombre: String = “a todos”) -> String{ return “Hola ” + nombre }
let saludos = saludar()
println(saludos)
//Hola a todos
Beta 2
Funciones y Tuplas
func calculos() -> (String, Int){ //calculos…. return (“Total”, 132) }
Beta 2
Funciones y retornar múltiples valores
func calculos() -> (String, Int){ //calculos…. return (“Total”, 132) }
let (mensaje, cantidad) = calculos()
println("El \(mensaje) es: $ \(cantidad) pesos")
//El total es: $132 pesos
Beta 2
Funciones y retornar valores nombrados
func calculos() -> (mensaje: String, cantidad: Int){ //calculos…. return (“Total”, 132) }
let resultado = calculos()
println("El \(resultado.mensaje) es: $ \(resultado.cantidad) pesos")
//El total es: $132 pesos
Beta 2
Clases
class Transporte{
}
Beta 2
Herencia
class Transporte{
}
class Bici: Transporte{
}
Beta 2
Propiedades
class Transporte{ var llantas = 0 }
Beta 2
Propiedades Calculadas / Computed Properties
class Transporte{ var llantas = 0 var descripcion: String { get { return “Tiene \(llantas) llantas" } } }
Beta 2
Propiedades Calculadas / Computed Properties
class Transporte{ var llantas = 0 var descripcion: String {
return “Tiene \(llantas) llantas" }
Beta 2
Instancias
let miTransporte = Transporte()
let miTransporte: Transporte = Transporte()
Beta 2
Sintaxis de puntos
let miTransporte = Transporte()
println(miTransporte.descripcion)
Beta 2
Override
override var descripcion: String { return super.descripcion + ", \(velocidad) kmh" }
Beta 2
Estructuras
struct tamaño { var ancho, alto: Double }
Beta 2
Struct o Class?
a. Una estructura no puede heredar b. Estructura paso por valor c. Clase paso por referencia
Beta 2
También…
b. Generics struct Stack<T>{ … }
a. Property observers willSet {}didSet {}
Beta 2
También…
c. Extensions extension tamaño { func incrementar(factor: Int) { ancho *= factor alto *= factor }}
Esto es Swift!Moderno e interactivo SeguroRápido y poderoso
Playgrounds Beta 2
Beta 2developer.apple.com/swift
Gracias