martes, 5 de enero de 2016

iOS Journey, breve introducción a Swift

Hasta ahora en areaTIC hemos tocado muchos “palos”, desde consejos SEO, bases de datos, javascript, post relacionados con tecnologías Microsoft, algo de app’s crossplatfform con Phonegap, etc. Hace unos días que me he metido en desarrollo para IOS nativo, un tema que hasta ahora no habíamos tratado. El lenguaje de programación que sigue predominando es Objective-C, pero desde IOS 7 aparece Swift y apple lo está impulsando. En mi caso domino lenguajes de programación como C#, javascript, java y me cuesta acostumbrarme a la sintaxi de Objective-C sin embargo con Swift la cosa cambia.

Comentar que he quedado gratamente sorprendido con el desarrollo en IOS en general. A día de hoy se podría decir que no hay demasiada diferencia a nivel conceptual en como desarrollarías una aplicación para otras plataformas, verás que se tiende a usar el pattern MVC que es ampliamente conocido por la mayoría de desarrolladores.

Esta es una serie de artículos que hago para consolidar lo que he ido practicando estos días, que opino puede ser interesante y evitar algunas horas a aquellos que quieren iniciarse a desarrollar en esta plataforma. Iremos viendo lo típico… como es el lenguaje, como moverse por XCode, como trabajar con la UI, como navegar entre pantallas, como enlazar los controladores, como acceder a una api remota, algo de controles específicos que me llamen la atención de UI…

Introducción a Swift

Swift es un lenguaje de programación creado por apple que puede combinarse en un mismo proyecto con Objective-C. Hace pocos días apple ha anunciado que Swift pasa a ser open source. A continuación veremos muy por encima como realizar lo básico con Swift para hacernos una ligera idea de la sintaxi.

Constantes, Variables, Tipos

let constante:String = “A”
var variable:String = “B”
Usa constantes cuando no vayas a modificar el valor.

Funciones y Closures

Esta es la pinta que tienen las funciones.
func nombreFuncion()->Void{
      //haz algo…
}
func diHola(nombrePersona: String)-> String{
          return “Hola” + nombrePersona
}
Los closures vendrían a ser el simil de las expresiones lampdba en C#. Más info en apple developer

Protocol

Protocol vendría a ser una mezcla de lo que llamamos interface y clase abstracta en otros lenguajes de programación. Es importante dominarlo si quieres hacer un código decente.
protocol IBookingService{
   func Book()
}

class MyBookingService:IBookingService{

}
Este código no compila, recibiremos el siguiente mensaje: 'MyBookingService' does not conform to protocol 'IBookingService'. Para que compile necesitaríamos implementar la función Book() en MyBookingService. A diferencia de las interfaces en java o .net, los protocols permiten definir propiedades que están obligadas a implementar las clases que implementan el protocol. Otra diferencia es que los protocols no son instanciables en Swift.

Herencia, Polimorfismo y Casteos

Al igual que en otros lenguajes de programación puedes implementar herencias y poliformismo. Ahí un va un ejemplo:
class Vehiculo{
//…
 var color:String
 init(color: String){
   self.color = color
 }
}
    
class Coche{
 var diametroVolante:Int
 init(color: String, diametroVolante:Int){
     super.init(color)
     self. diametroVolante = diametroVolante
 }
}

class Moto{
 var medidaManillar:Int
 init(color: String, medidaManillar:Int){
     super.init(color)
     self.medidaManillar = medidaManillar
 }
}

var vehiculos [Vehiculo] = [Coche("Rojo",50),Coche("Azul",60),Moto("Verde",80)]
var coche = vehiculos[0] as Coche
print(coche.medidaManillar)
print(vehiculos[0].color)

Singleton

También puedes aplicar patterns populares, hay varios modos de crear un singleton, este valdría por ejemplo:
class SomeManager {
    static let sharedInstance = SomeManager()
}

//uso
SomeManager.sharedInstance
Bueno, creo que con este post os podéis hacer una ligera idea de la sintaxi de Swift y ya veis que tampoco es Klingon jajaja más o menos se entiende de un vistazo. Si dispones de un Mac con Xcode puedes abrir un proyecto de tipo PlayGround y como ya indica su nombre jugar un poco. Si no dispones de mac o quieres hacer alguna prueba rápida desde Windows podrías jugar online en este site.

El siguiente post empezaremos a ver como usar Swift en un Xcode para un proyecto IOS 9. Hasta la próxima, recordad que podéis seguir areaTIC en las redes sociales, no os cortéis a opinar!

No hay comentarios:

Publicar un comentario