Guía para Desarrolladores iOS: Desde Objective-C hasta Swift Parte1

BY MARCO MUSTAPIC - IOS DEVELOPER @ TOPTAL

En el año 2008 Apple anunció y lanzó el iPhone SDK 2.0. Éste evento inició otra revolución dentro del desarrollo de software y así nació una nueva generación de desarrolladores, quienes ahora son reconocidos como desarrolladores iOS.
Muchos de estos desarrolladores nunca antes habían utilizado Objective-C y ese fue el primer reto que Apple tenía para ellos. A pesar de una sintaxis desconocida y un manejo de memoria manual, éste fue inmensamente exitoso, ayudando a poblar la App Store con decenas de miles de aplicaciones. Apple continuamente mejoraba Objective-C con cada nueva versión, añadiendo bloques y literales (literals), agregando manejo de memoria simplificado con recuento de referencias automático y muchas otras características que indican un lenguaje de programación moderno.
Y después de seis años trabajando y mejorando Objective-C, Apple decidió retar nuevamente a los desarrolladores. Una vez más, los desarrolladores iOS tendrán que aprender un nuevo lenguaje de programación: Swift. Swift elimina la gestión insegura de punter e introduce nuevas e impotentes características, mientras mantiene la interacción con ambos Objective-C y C.
Swift 1.0 es una plataforma de desarrollo estable y fuerte, la cual es seguro que evolucionará de manera interesante en los próximos años. Es el momento perfecto para comenzar a explorar este nuevo lenguaje ya que es, obviamente, el futuro del desarrollo iOS.
El propósito de éste tutorial es dar a los desarrolladores de Objective-C una descripción rápida de las nuevas características del lenguaje Swift, ayudándote a dar el próximo paso y comenzar a adoptar Swift a tu trabajo de todos los días. No voy a pasar mucho tiempo explicando Objective-C, voy a asumir que estás familiarizado con el desarrollo iOS.
Swift changed the game for Objective-C iOS developers.

Probando Swift vs. Objective-C

Para comenzar a explorar Swift lo que necesitas es descargar XCode 6 de la App Store y crear una zona de juegos para experimentar. Todos los ejemplos que se mencionan en éste artículo fueron hechos de ésta manera.
Página web de Apple Swift es la major referencia para aprender sobre programación Swift. Verás que es muy valiosa, y hasta que estés completamente al día con el desarrollo Swift Creo que regresarás aquí a menudo.

Variables y Constantes

Para declarar una variable en Swift se usa la palabra clave var.
var x = 1
var s = "Hello"
Notarás que las dos variables s y x son de diferentes tipos. x es un Número Entero, mientras que “s” es una Cadena de Caracteres. Swift es un tipo de lenguaje seguro y deducirá los tipos de variables del valor asignado. Si deseas que tu código sea más legible, puedes anotar opcionalmente el tipo de variable:
var y: Int
y = 2
Las constantes son similares pero se declaran usando let en lugar de var. No es necesario saber el valor de una constante al momento de la compilación pero debes asignarle un valor exactamente una vez.
let c1 = 1 // Constante conocida al momento de la compilación
 
var v = arc4random()
let c2 = v // Constante conocida solo en momento de ejecución
Como su nombre lo indica, son inmutables, por esto el siguiente código causará un error al momento de compilación.
let c = 1
c = 3        // error
Otros tipos también pueden ser declarados como constantes. Por ejemplo, el siguiente código declara una matriz como una constante y, si intentas modificar cualquiera de los elementos, el compilador Swift reportará un error:
var arr2 = [4, 5, 6]
arr2[0] = 8
print (arr2)    // [8, 5, 6]
   
let arr = [1, 2, 3]
a[0] = 5    // error

Opcionales

Es necesario inicializar las constantes cuando se están declarando, al igual que es necesario inicializar las variables antes de usarlas. Así que, ¿dónde está el equivalente nil de Objective-C? Swift introduce valores opcionales. Los valores opcionales pueden tener un valor o ser nil. Si observas el siguiente código, vas a notar que x fue asignada como valor Opcional de 2014. Esto significa que el compilador Swift sabía que xpodría ser nil.
var s = "2014"
var x = s.toInt()
print(x)    // Optional(2014)
Si haces un cambio en éste código y asignas el valor "abc" a s, el cual no se puede convertir a un número entero, vas a notar que x es ahora un nil.
var s = "abc"
var x = s.toInt()
print(x)    // nil
¿El tipo de retorno de la función toInt() es Int?, el cual es un Int opcional. Vamos a tratar de llamar a una función estándar en x:
var x = "2014".toInt()
print(x.successor()) // error
El compilador señala un error, ya que x es un opcional y podría ser potencialmente nil. Debemos probar xprimero, y asegurarnos de que la función sucessor sea invocada en un número real, y no en un valor nil:
var x = "2014".toInt()
if x != nil
{
print(x!.successor())    // 2015
}
Ten en cuenta que debemos desenvolver x añadiendo un signo de exclamación (!). Cuando nos aseguramos que x contiene un valor, podemos acceder a él. De lo contrario, obtendremos un error de ejecución. También podemos hacer lo que Swift llama optional binding, convirtiendo así lo opcional a una variable no-opcional
let x = "123".toInt()
if let y = x
{
print(y)
}
El código de la instrucción if solo se ejecutará si x tiene un valor, y es asignada a y. Ten en cuenta que no necesitamos desenvolver y, su tipo no opcional, ya que sabemos que x no es nil.
Revisa el tutorial Swift de Apple donde podrás leer en detalle sobre opcionales e interesantes características como optional chaining

Interpolación de Cadenas

En Objective-C, una cadena de formateo usualmente se hace con el método stringWithFormat::
NSString *user = @"Gabriel";
int days = 3;
NSString *s = [NSString stringWithFormat:@"posted by %@ (%d days ago)", user, days];
Swift tiene una característica llamada interpolación de Cadenas que hace lo mismo, pero es más compacta y fácil de leer:
let user = "Gabriel"
let days = 3
let s = "posted by \(user) \(days) ago"
También puedes usar expresiones:
let width = 2
let height = 3
let s = "Area for square with sides \(width) and \(height) is \(width*height)"
Para aprender más sobre la interpolación de cadenas de Swift, ingresa aquí.

Visita la Parte 2 

Artículo vía Toptal

Déjame tus dudas y comentarios: Conversion Conversion Emoticon Emoticon

Entradas Populares