SlideShare une entreprise Scribd logo
1  sur  49
Télécharger pour lire hors ligne
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
Hola 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

Contenu connexe

En vedette

Curso iOS
Curso iOSCurso iOS
Curso iOSPlatzi
 
“Capitalismo y esquizofrenia” gilles deleuze y félix guattari.
“Capitalismo y esquizofrenia”  gilles deleuze y félix guattari.“Capitalismo y esquizofrenia”  gilles deleuze y félix guattari.
“Capitalismo y esquizofrenia” gilles deleuze y félix guattari.Eleonora_que_ignora
 
Orientacion A Objetos Para Dummies
Orientacion A Objetos Para DummiesOrientacion A Objetos Para Dummies
Orientacion A Objetos Para DummiesSorey García
 
Comparación entre Oracle y Mysql
Comparación entre Oracle y MysqlComparación entre Oracle y Mysql
Comparación entre Oracle y Mysqlstefakoka
 
Integrando Swift y Objective-C
Integrando Swift y Objective-CIntegrando Swift y Objective-C
Integrando Swift y Objective-CErick Camacho
 
2015 Upload Campaigns Calendar - SlideShare
2015 Upload Campaigns Calendar - SlideShare2015 Upload Campaigns Calendar - SlideShare
2015 Upload Campaigns Calendar - SlideShareSlideShare
 
What to Upload to SlideShare
What to Upload to SlideShareWhat to Upload to SlideShare
What to Upload to SlideShareSlideShare
 
Getting Started With SlideShare
Getting Started With SlideShareGetting Started With SlideShare
Getting Started With SlideShareSlideShare
 

En vedette (11)

Curso iOS
Curso iOSCurso iOS
Curso iOS
 
El rizoma deleuze (jaime reyes-f)
El rizoma   deleuze (jaime reyes-f)El rizoma   deleuze (jaime reyes-f)
El rizoma deleuze (jaime reyes-f)
 
“Capitalismo y esquizofrenia” gilles deleuze y félix guattari.
“Capitalismo y esquizofrenia”  gilles deleuze y félix guattari.“Capitalismo y esquizofrenia”  gilles deleuze y félix guattari.
“Capitalismo y esquizofrenia” gilles deleuze y félix guattari.
 
Rizoma
RizomaRizoma
Rizoma
 
Ficha descriptiva de alumnos
Ficha descriptiva de alumnosFicha descriptiva de alumnos
Ficha descriptiva de alumnos
 
Orientacion A Objetos Para Dummies
Orientacion A Objetos Para DummiesOrientacion A Objetos Para Dummies
Orientacion A Objetos Para Dummies
 
Comparación entre Oracle y Mysql
Comparación entre Oracle y MysqlComparación entre Oracle y Mysql
Comparación entre Oracle y Mysql
 
Integrando Swift y Objective-C
Integrando Swift y Objective-CIntegrando Swift y Objective-C
Integrando Swift y Objective-C
 
2015 Upload Campaigns Calendar - SlideShare
2015 Upload Campaigns Calendar - SlideShare2015 Upload Campaigns Calendar - SlideShare
2015 Upload Campaigns Calendar - SlideShare
 
What to Upload to SlideShare
What to Upload to SlideShareWhat to Upload to SlideShare
What to Upload to SlideShare
 
Getting Started With SlideShare
Getting Started With SlideShareGetting Started With SlideShare
Getting Started With SlideShare
 

Plus de Software Guru

Hola Mundo del Internet de las Cosas
Hola Mundo del Internet de las CosasHola Mundo del Internet de las Cosas
Hola Mundo del Internet de las CosasSoftware Guru
 
Estructuras de datos avanzadas: Casos de uso reales
Estructuras de datos avanzadas: Casos de uso realesEstructuras de datos avanzadas: Casos de uso reales
Estructuras de datos avanzadas: Casos de uso realesSoftware Guru
 
Building bias-aware environments
Building bias-aware environmentsBuilding bias-aware environments
Building bias-aware environmentsSoftware Guru
 
El secreto para ser un desarrollador Senior
El secreto para ser un desarrollador SeniorEl secreto para ser un desarrollador Senior
El secreto para ser un desarrollador SeniorSoftware Guru
 
Cómo encontrar el trabajo remoto ideal
Cómo encontrar el trabajo remoto idealCómo encontrar el trabajo remoto ideal
Cómo encontrar el trabajo remoto idealSoftware Guru
 
Automatizando ideas con Apache Airflow
Automatizando ideas con Apache AirflowAutomatizando ideas con Apache Airflow
Automatizando ideas con Apache AirflowSoftware Guru
 
How thick data can improve big data analysis for business:
How thick data can improve big data analysis for business:How thick data can improve big data analysis for business:
How thick data can improve big data analysis for business:Software Guru
 
Introducción al machine learning
Introducción al machine learningIntroducción al machine learning
Introducción al machine learningSoftware Guru
 
Democratizando el uso de CoDi
Democratizando el uso de CoDiDemocratizando el uso de CoDi
Democratizando el uso de CoDiSoftware Guru
 
Gestionando la felicidad de los equipos con Management 3.0
Gestionando la felicidad de los equipos con Management 3.0Gestionando la felicidad de los equipos con Management 3.0
Gestionando la felicidad de los equipos con Management 3.0Software Guru
 
Taller: Creación de Componentes Web re-usables con StencilJS
Taller: Creación de Componentes Web re-usables con StencilJSTaller: Creación de Componentes Web re-usables con StencilJS
Taller: Creación de Componentes Web re-usables con StencilJSSoftware Guru
 
El camino del full stack developer (o como hacemos en SERTI para que no solo ...
El camino del full stack developer (o como hacemos en SERTI para que no solo ...El camino del full stack developer (o como hacemos en SERTI para que no solo ...
El camino del full stack developer (o como hacemos en SERTI para que no solo ...Software Guru
 
¿Qué significa ser un programador en Bitso?
¿Qué significa ser un programador en Bitso?¿Qué significa ser un programador en Bitso?
¿Qué significa ser un programador en Bitso?Software Guru
 
Colaboración efectiva entre desarrolladores del cliente y tu equipo.
Colaboración efectiva entre desarrolladores del cliente y tu equipo.Colaboración efectiva entre desarrolladores del cliente y tu equipo.
Colaboración efectiva entre desarrolladores del cliente y tu equipo.Software Guru
 
Pruebas de integración con Docker en Azure DevOps
Pruebas de integración con Docker en Azure DevOpsPruebas de integración con Docker en Azure DevOps
Pruebas de integración con Docker en Azure DevOpsSoftware Guru
 
Elixir + Elm: Usando lenguajes funcionales en servicios productivos
Elixir + Elm: Usando lenguajes funcionales en servicios productivosElixir + Elm: Usando lenguajes funcionales en servicios productivos
Elixir + Elm: Usando lenguajes funcionales en servicios productivosSoftware Guru
 
Así publicamos las apps de Spotify sin stress
Así publicamos las apps de Spotify sin stressAsí publicamos las apps de Spotify sin stress
Así publicamos las apps de Spotify sin stressSoftware Guru
 
Achieving Your Goals: 5 Tips to successfully achieve your goals
Achieving Your Goals: 5 Tips to successfully achieve your goalsAchieving Your Goals: 5 Tips to successfully achieve your goals
Achieving Your Goals: 5 Tips to successfully achieve your goalsSoftware Guru
 
Acciones de comunidades tech en tiempos del Covid19
Acciones de comunidades tech en tiempos del Covid19Acciones de comunidades tech en tiempos del Covid19
Acciones de comunidades tech en tiempos del Covid19Software Guru
 
De lo operativo a lo estratégico: un modelo de management de diseño
De lo operativo a lo estratégico: un modelo de management de diseñoDe lo operativo a lo estratégico: un modelo de management de diseño
De lo operativo a lo estratégico: un modelo de management de diseñoSoftware Guru
 

Plus de Software Guru (20)

Hola Mundo del Internet de las Cosas
Hola Mundo del Internet de las CosasHola Mundo del Internet de las Cosas
Hola Mundo del Internet de las Cosas
 
Estructuras de datos avanzadas: Casos de uso reales
Estructuras de datos avanzadas: Casos de uso realesEstructuras de datos avanzadas: Casos de uso reales
Estructuras de datos avanzadas: Casos de uso reales
 
Building bias-aware environments
Building bias-aware environmentsBuilding bias-aware environments
Building bias-aware environments
 
El secreto para ser un desarrollador Senior
El secreto para ser un desarrollador SeniorEl secreto para ser un desarrollador Senior
El secreto para ser un desarrollador Senior
 
Cómo encontrar el trabajo remoto ideal
Cómo encontrar el trabajo remoto idealCómo encontrar el trabajo remoto ideal
Cómo encontrar el trabajo remoto ideal
 
Automatizando ideas con Apache Airflow
Automatizando ideas con Apache AirflowAutomatizando ideas con Apache Airflow
Automatizando ideas con Apache Airflow
 
How thick data can improve big data analysis for business:
How thick data can improve big data analysis for business:How thick data can improve big data analysis for business:
How thick data can improve big data analysis for business:
 
Introducción al machine learning
Introducción al machine learningIntroducción al machine learning
Introducción al machine learning
 
Democratizando el uso de CoDi
Democratizando el uso de CoDiDemocratizando el uso de CoDi
Democratizando el uso de CoDi
 
Gestionando la felicidad de los equipos con Management 3.0
Gestionando la felicidad de los equipos con Management 3.0Gestionando la felicidad de los equipos con Management 3.0
Gestionando la felicidad de los equipos con Management 3.0
 
Taller: Creación de Componentes Web re-usables con StencilJS
Taller: Creación de Componentes Web re-usables con StencilJSTaller: Creación de Componentes Web re-usables con StencilJS
Taller: Creación de Componentes Web re-usables con StencilJS
 
El camino del full stack developer (o como hacemos en SERTI para que no solo ...
El camino del full stack developer (o como hacemos en SERTI para que no solo ...El camino del full stack developer (o como hacemos en SERTI para que no solo ...
El camino del full stack developer (o como hacemos en SERTI para que no solo ...
 
¿Qué significa ser un programador en Bitso?
¿Qué significa ser un programador en Bitso?¿Qué significa ser un programador en Bitso?
¿Qué significa ser un programador en Bitso?
 
Colaboración efectiva entre desarrolladores del cliente y tu equipo.
Colaboración efectiva entre desarrolladores del cliente y tu equipo.Colaboración efectiva entre desarrolladores del cliente y tu equipo.
Colaboración efectiva entre desarrolladores del cliente y tu equipo.
 
Pruebas de integración con Docker en Azure DevOps
Pruebas de integración con Docker en Azure DevOpsPruebas de integración con Docker en Azure DevOps
Pruebas de integración con Docker en Azure DevOps
 
Elixir + Elm: Usando lenguajes funcionales en servicios productivos
Elixir + Elm: Usando lenguajes funcionales en servicios productivosElixir + Elm: Usando lenguajes funcionales en servicios productivos
Elixir + Elm: Usando lenguajes funcionales en servicios productivos
 
Así publicamos las apps de Spotify sin stress
Así publicamos las apps de Spotify sin stressAsí publicamos las apps de Spotify sin stress
Así publicamos las apps de Spotify sin stress
 
Achieving Your Goals: 5 Tips to successfully achieve your goals
Achieving Your Goals: 5 Tips to successfully achieve your goalsAchieving Your Goals: 5 Tips to successfully achieve your goals
Achieving Your Goals: 5 Tips to successfully achieve your goals
 
Acciones de comunidades tech en tiempos del Covid19
Acciones de comunidades tech en tiempos del Covid19Acciones de comunidades tech en tiempos del Covid19
Acciones de comunidades tech en tiempos del Covid19
 
De lo operativo a lo estratégico: un modelo de management de diseño
De lo operativo a lo estratégico: un modelo de management de diseñoDe lo operativo a lo estratégico: un modelo de management de diseño
De lo operativo a lo estratégico: un modelo de management de diseño
 

Hola Swift