¿Cuál debo aprender?

Si estás empezando a programar en la plataforma iOS. Tal vez has investigado que actualmente existen dos maneras de crear interfaces bajo esta plataforma.

La vieja confiable: UIKit → puedes hacerlo de dos maneras

Utilizando storyboards: Con storyboards tienes un editor visual que puede hacer más fácil tu introducción a UIKit.

De manera programática: si no quieres utilizar storyboards, puedes hacer todo mediante código. Esto tiene un número de ventajas y permite un control más avanzado. Es mi manera favorita de crear interfaces en iOS pero el tema de Storyboard y Método Programático ha sido un tema de debate entre desarrolladores iOS durante años y es mejor no despertar a la bestia.

SwiftUI

SwiftUI

Es una manera innovadora de crear interfaces para dispositivos Apple, es multiplataforma y necesita menos código. Además, el código es más compacto y utiliza sintaxis declarativa lo cual facilita la lectura del mismo.  

¿Cuál de las dos debo elegir? No me gusta cuando tienes que esperar hasta el final del video para saber la respuesta. Así que la diré de una vez: ¡tienes que aprender ambas!

Tal vez esto no es lo que querías oír. Pero si quieres obtener un trabajo como desarrollador iOS, necesitas saber UIKit. La mayoría de las aplicaciones ya desarrolladas utilizan UIKit y además seguirá siendo soportado y desarrollado por Apple en el futuro. No obstante, SwiftUI es el futuro. Si deseas simplemente crear una aplicación en iOS porque tienes tu propio negocio, alguna idea que quieras llevar a cabo o si quieres ampliar tu portafolio. Entonces te recomendaría hacerlo con SwiftUI. De esta manera, estarás contribuyendo a adoptar esta nueva tecnología.

PERO!  

Debes tener algunas cosas en cuenta.

Número 1: SwiftUI todavía es nuevo y puedes esperar que sufra muchos cambios mientras madura. De hecho, yo probé SwiftUI cuando estaba nuevo y recién anunciado en 2019. Unos meses después, el código de ejemplo que tenía ya no compilaba, muchas palabras claves, fueron cambiadas e incluso el funcionamiento de algunos componentes. Por lo tanto, debes considerar esto si vas a desarrollar tu app iOS con SwiftUI.

Número 2: Es posible que tengas que interactuar con UIKit a pesar de usar SwiftUI. Hay ciertas cosas que pueden ser difíciles de lograr con SwiftUI y por lo tanto, necesitarás utilizar UIKit

Número 3: El ciclo de vida de la aplicación cambia drásticamente. Cuando utilizamos el ciclo de vida de SwiftUI ya no se crean los archivos AppDelegate y SceneDelegate. Estos archivos eran anteriormente usados para controlar el ciclo de vida de tu aplicación en diferentes puntos de la misma.

Y ustedes qué prefieren? UIKit o SwiftUI y porque?

Si quieren aprender SwiftUI, les dejaré abajo un link al mejor libro de SwiftUI que he encontrado hasta ahora. Este es un libro de Mark Moykens y lo usó como referencia con bastante frecuencia.

https://www.bigmountainstudio.com/swiftui-views-book/vl4dw