SlideShare una empresa de Scribd logo
1 de 49
Descargar para leer sin conexión
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
Swift
Moderno 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

Más contenido relacionado

Más de Sergio Brito

NgRx 101 Connect.Tech 2019
NgRx 101   Connect.Tech 2019NgRx 101   Connect.Tech 2019
NgRx 101 Connect.Tech 2019Sergio Brito
 
Design patterns for TypeScript and other languages
Design patterns for TypeScript and other languagesDesign patterns for TypeScript and other languages
Design patterns for TypeScript and other languagesSergio Brito
 
Gestión de proyectos web y móviles
Gestión de proyectos web y móvilesGestión de proyectos web y móviles
Gestión de proyectos web y móvilesSergio Brito
 
Entrevista a un programador JavaScript
Entrevista a un programador JavaScriptEntrevista a un programador JavaScript
Entrevista a un programador JavaScriptSergio Brito
 
Conociendo Angular 2
Conociendo Angular 2Conociendo Angular 2
Conociendo Angular 2Sergio Brito
 
Welcome to the RIAworld
Welcome to the RIAworldWelcome to the RIAworld
Welcome to the RIAworldSergio Brito
 
Games, Develop & Html5 for BlackBerry PlayBook
Games, Develop & Html5 for BlackBerry PlayBookGames, Develop & Html5 for BlackBerry PlayBook
Games, Develop & Html5 for BlackBerry PlayBookSergio Brito
 
Improve your Flash-based RIA with VoIP
Improve your Flash-based RIA with VoIPImprove your Flash-based RIA with VoIP
Improve your Flash-based RIA with VoIPSergio Brito
 
High performance ria teams
High performance ria teamsHigh performance ria teams
High performance ria teamsSergio Brito
 
Flash 2 dev bbp-laybook
Flash 2 dev bbp-laybookFlash 2 dev bbp-laybook
Flash 2 dev bbp-laybookSergio Brito
 
Desarrollo para android con Flex / AIR
Desarrollo para android con Flex / AIRDesarrollo para android con Flex / AIR
Desarrollo para android con Flex / AIRSergio Brito
 
Administración de Proyectos Flash en el Flat
Administración de Proyectos Flash en el FlatAdministración de Proyectos Flash en el Flat
Administración de Proyectos Flash en el FlatSergio Brito
 
Dale Stamina A Tu Flex App Con Amfphp
Dale Stamina A Tu Flex App Con AmfphpDale Stamina A Tu Flex App Con Amfphp
Dale Stamina A Tu Flex App Con AmfphpSergio Brito
 

Más de Sergio Brito (13)

NgRx 101 Connect.Tech 2019
NgRx 101   Connect.Tech 2019NgRx 101   Connect.Tech 2019
NgRx 101 Connect.Tech 2019
 
Design patterns for TypeScript and other languages
Design patterns for TypeScript and other languagesDesign patterns for TypeScript and other languages
Design patterns for TypeScript and other languages
 
Gestión de proyectos web y móviles
Gestión de proyectos web y móvilesGestión de proyectos web y móviles
Gestión de proyectos web y móviles
 
Entrevista a un programador JavaScript
Entrevista a un programador JavaScriptEntrevista a un programador JavaScript
Entrevista a un programador JavaScript
 
Conociendo Angular 2
Conociendo Angular 2Conociendo Angular 2
Conociendo Angular 2
 
Welcome to the RIAworld
Welcome to the RIAworldWelcome to the RIAworld
Welcome to the RIAworld
 
Games, Develop & Html5 for BlackBerry PlayBook
Games, Develop & Html5 for BlackBerry PlayBookGames, Develop & Html5 for BlackBerry PlayBook
Games, Develop & Html5 for BlackBerry PlayBook
 
Improve your Flash-based RIA with VoIP
Improve your Flash-based RIA with VoIPImprove your Flash-based RIA with VoIP
Improve your Flash-based RIA with VoIP
 
High performance ria teams
High performance ria teamsHigh performance ria teams
High performance ria teams
 
Flash 2 dev bbp-laybook
Flash 2 dev bbp-laybookFlash 2 dev bbp-laybook
Flash 2 dev bbp-laybook
 
Desarrollo para android con Flex / AIR
Desarrollo para android con Flex / AIRDesarrollo para android con Flex / AIR
Desarrollo para android con Flex / AIR
 
Administración de Proyectos Flash en el Flat
Administración de Proyectos Flash en el FlatAdministración de Proyectos Flash en el Flat
Administración de Proyectos Flash en el Flat
 
Dale Stamina A Tu Flex App Con Amfphp
Dale Stamina A Tu Flex App Con AmfphpDale Stamina A Tu Flex App Con Amfphp
Dale Stamina A Tu Flex App Con Amfphp
 

Último

Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanamcerpam
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxJorgeParada26
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIhmpuellon
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosJhonJairoRodriguezCe
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...JohnRamos830530
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativanicho110
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.FlorenciaCattelani
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21mariacbr99
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxFederico Castellari
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estossgonzalezp1
 

Último (10)

Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos Basicos
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 

Hola Swift !