← Volver al blog

Empezando un proyecto en Xcode

Guía para crear un nuevo proyecto en Xcode: plantillas disponibles, opciones de configuración inicial, y diferencias entre SwiftUI App y UIKit App Delegate.

Para empezar un proyecto, Xcode nos provee de diferentes plantillas y formas de inicio. A continuación exploraremos las más populares.

Al dar clic al icono de Xcode nos aparecerá la pantalla de bienvenida con tres opciones principales: crear un nuevo proyecto, clonar algún proyecto desde un repositorio Git, o abrir un proyecto existente en nuestro equipo.

Si seleccionamos la primera opción, aparecerá la pantalla de plantillas.

Plantillas disponibles

Lo que vemos son todas las posibles opciones que Xcode nos da para crear una aplicación. Primero vemos la plataforma: iOS, macOS, watchOS y tvOS.

Enseguida vemos la plantilla a crear:

  1. App: La que seleccionaremos la mayoría de las veces, crea una app con una sola vista.
  2. Document App: Para aquellas apps que están basadas en la lectura de documentos, como la app de Archivos.
  3. Game: Crea una app básica para juegos.
  4. Augmented Reality App: Aplicación de realidad aumentada usando ARKit.
  5. Sticker Pack App: Apps que tienen una colección de stickers para la app de Mensajes.

Para este tutorial seleccionaremos la primera opción.

Configuración inicial

Aquí debes colocar algunos parámetros de configuración inicial de la aplicación:

  • Nombre del producto: El nombre de tu app.
  • Team: En caso de que ya tengas tu cuenta de desarrollador, la puedes añadir en Preferencias bajo Cuentas.
  • Bundle Identifier: El identificador único de tu aplicación. Debe ser en formato de dominio invertido (ejemplo: dev.slekens.miapp).

Las opciones más importantes a destacar son:

  1. Interface: Tenemos dos opciones. SwiftUI, que viene por default y es el nuevo estándar de desarrollo de Apple. La otra opción es Storyboard usando UIKit.
  2. Life Cycle: Igual tenemos la opción de SwiftUI App o la opción de UIKit App Delegate que es la tradicional.
  3. Language: Aquí dependerá de la selección de Interface. Si es SwiftUI, en Language siempre será Swift. Pero si es Storyboard, podremos usar Objective-C.
  4. Use Core Data: Xcode crea las clases base para usar persistencia local con Core Data. El siguiente check añadirá el soporte para iCloud.
  5. Include Tests: Creará los proyectos necesarios de pruebas, tanto unitarias como pruebas de interfaz gráfica automatizada.

Principales diferencias entre plantillas

Las diferencias son más notables en el ciclo de vida de la aplicación. Si optamos por UIKit App Delegate con Core Data, Xcode genera todo el código base en la clase AppDelegate. Si elegimos SwiftUI App, crea mucho menos código visible, aunque esto no significa que el ciclo de vida se omita: simplemente no lo expone de manera explícita.

En definitiva, SwiftUI nos ayuda a crear nuestras apps de manera más rápida y entendible. Aunque siempre es aconsejable tener una base sólida de UIKit — entenderás muchos conceptos clave en la creación de aplicaciones, conceptos que con SwiftUI se omiten y a veces parecen inexistentes.

Algo a destacar y de agradecer es la creación del código base de persistencia. Mientras que en el esquema de AppDelegate todo el código es creado en esa clase, en SwiftUI se crea una clase aparte — lo que permite mucho más el entendimiento del código para los que recién van iniciando. Esta base es creada por medio de un Singleton, uno de los patrones de diseño preferido por Apple y que se usa a lo largo de todas las librerías del sistema.

¿Cuál elegir?

Cualquier forma que decidas usar es correcta y totalmente funcional para iniciar un proyecto. Lo importante a tener en cuenta es que SwiftUI solo es compatible desde iOS 13 y que aún le falta crecer. Por otro lado, UIKit ha estado con nosotros desde hace ya mucho tiempo y habrá más soporte e información disponible.

Sea cual sea la decisión, este blog ayudará a entender los conceptos básicos y avanzados del desarrollo de iOS.