Hola Swift

Preview:

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

sergiobrito@activ.com.mx @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

Developing Experiences

sergiobrito@activ.com.mx

@yacaFx

Q&A

activ.com.mx

@activmx

Gracias

Recommended