En este articulo hablaremos sobre SwiftUI la nueva forma de crear Apps de Apple.
Apple presentó SwiftUI la nueva forma de crear Apps en la convención mundial de desarrolladores (WWDC) de 2019.
A partir de ahí todo parece que va a cambiar en cuanto a desarrollar software para las plataformas de Apple.
De usar Swift, UIKit, Storyboard, conexiones, patrones de diseño como MVC, VIPER, o MVVM, Apple quiere que cambiemos completamente de paradigma, y para ello nos otorga un Framework para desarrollar Apps de forma declarativa.
¿Qué es SwiftUI?
SwiftUI es la nueva forma de crear Apps de Apple. Muy al estilo de Flutter, SwiftUI nos ofrece la posibilidad de crear Apps de forma declarativa, esto significa que ya no vamos a tener que realizar conexiones, ya que no vamos a tener Storyboard o archivos XIB para crear la interfaz. En su lugar, tendremos una vista previa (muy al estilo Playground) de todo cuanto vayamos programando.
Programas, y el resultado se ve en un canvas, creas un botón o una etiqueta, y ahí están, ya están listas para su uso, como digo, no hay conexiones, declaraciones IBActions o IBOutlets, no hay que manejar estados del propio objeto, es decir, que Apple nos quita de un plumazo unos cuantos quebraderos de cabeza.
Pero no solo es programar, también desde este canvas que nos ofrece una vista preliminar de nuestra creación, se pueden hacer cosas simplemente pulsando sobre el objeto con el botón derecho, es decir, que podemos escribir código, o podemos crear a golpe de ratón.
Diferencias con Swift + UIKit
Diferencias hay muchas, para empezar no tenemos, como ya hemos comentado, un Storyboard, o un archivo XIB para crear la interfaz, y es que en realidad no hace falta, ya que tendremos vistas que podemos crear añadiendo objetos, ya sea por código o bien desde una librería de objetos.
Muchos de los objetos que usábamos con UIKit ahora también podemos seguir usándolos con SwiftUI, sin embargo, algunos han cambiado sus nombre, a continuación, expongo algunos ejemplos de estas modificaciones en los nombres.
UIKit | SwiftUI |
UILabel | Text |
UIButton | Button |
UIView | View |
UISwitch | Toggle |
UITableView | List |
UINavigationController | NavigationView |
UITabBarController | TabView |
UIStackView | HStack, VStack |
Adios Autolayout
Algo que también es de agradecer es que nos olvidamos de las Autolayout, constraints, y brujerías similares.
Con SwiftUI la nueva forma de crear Apps, vamos a crear nuestras vistas por medio de contenedores o pilas de vistas.
Por medio de contenedores, ya sean contenedores verticales VStack, o contenedores horizontales HStack, iremos conformando como si fueran piezas de lego, nuestra interfaz. Si has desarrollado aplicaciones para el Apple Watch con WatchKit sabes a que me refiero.
Los programadores de Android también están acostumbrados a crear interfaces de esta manera, ya que tienen LinearLayout que es una forma muy parecida de conformar interfaces.
Lo que al principio puede parecer confuso si estabas acostumbrado a la libertad de Storyboard o XIB, con la práctica se convierte en algo muy simple, que nos aleja de las complicaciones de crear pantallas con la «libertad» de utilizar Autolayout.
Algunas cosas más sobre SwiftUI la nueva forma de crear Apps de Apple
SwiftUI se quiere adaptar a los nuevos tiempos, patrones de diseño como MVVM, programación reactiva con objetos bindables y observables, un Framework, Combine, que junto con esta nueva forma de crear aplicaciones de forma declarativa, nos van a dar mucha potencia a la hora de desarrollar aplicaciones con las nuevas herramientas de Apple.
Por que si pensabas que SwiftUI era un playground dónde «jugar» a crear Apps, estás completamente equivocado, SwiftUI es muy potente, y con aliados como Combine, o Frameworks de terceros como SwiftDux o ReSwift, que traen la potencia de Redux a iOS, nos proveen de capacidad para crear aplicaciones super potentes, escalabas, y muy fáciles de mantener, al separar muy bien entre si la vista del modelo.
He creado una lista de reproducción en mi canal de Youtube para que aprendas a usar SwiftUI, aquí te dejo el primer vídeo de la serie.
Si tienes alguna duda, déjame un comentario 🙂
1 Comment