Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Aplicaciones Cocoa Touch con Swift 2

Aplicaciones Cocoa Touch con Swift 2

Swift 2 llegó!, como vamos a hacer para pasar de ObjC a Swift?, que necesitamos saber?, que sirve y que no?…

More Decks by Juan Felipe Alvarez Saldarriaga

Other Decks in Technology

Transcript

  1. Swift •Anunciado por Apple en el WWDC de 2014. •Release

    Stable: 2.0 (Octubre 15 de 2015). •Orientado a protocolos. •Orientado a objetos. •Funcional. •Generics. •Interoperable con Objective C. •Programación segura. •Apple prometió liberarlo a finales de 2015…
  2. Cocoa Touch •Framework de Interfaz de Usuario propiedad de Apple.

    •Son todos los controles/kits/frameworks/librerías que se usan en iOS. •Está escrito en Objective C.
  3. Interoperabilidad •Swift es capaz de entender código escrito en Objective

    C. •Swift cambia la forma en que llamamos los métodos escritos en Objective C. •No más []. •Los inicializadores de la forma initWithSomething los va a cortar, le va a quitar el initWith y el Something lo va a convertir en el primer parámetro y la primera letra estará en minúscula.
  4. Interoperabilidad •Todas las propiedades en Swift son nonatomic, Swift va

    a ignorar cualquier atributo atomic o nonatomic. •Los atributos getter= y setter= de una propiedad van a ser ignorados. •La llamada a un método se realiza con dot syntax, la primera parte del selector se convierte en el nombre del método, el primer argumento de este método no tiene nombre, las otras partes del selector se convierten en argumentos con nombre.
  5. Interoperabilidad •id se convierte automáticamente en AnyObject. •AnyObject no es

    seguro. •El tipo de AnyObject no se conoce sino hasta que se corra la aplicación.
  6. Valores nulos y opcionales •Swift garantiza que todos los valores

    NUNCA van a ser nulos. •Programación segura. •Los valores opcionales, Optionals, puede que sean nulos.
  7. Extensiones •Una extensión es lo mismo que una categoría en

    Objective C. •Una extensión puede ser aplicada a una clase, una estructura, una enumeración, incluso definida en Objective C.
  8. void (^completionBlock)(NSData *, NSError *) = ^(NSData *data, NSError *error)

    { // ... } let completionBlock: (NSData, NSError) -> Void = { (data, error) in // ... }
  9. Clases •Cualquier clase de Objective C automáticamente es accesible en

    Swift. •A diferencia de los structs, las clases comparten una única copia de los datos, referencia.
  10. class MiViewController: UIViewController { @IBOutlet weak var button: UIButton! @IBAction

    func buttonTapped(AnyObject) { print("button tapped!") } }