Controladores y validaciones en pantallas de registro y login

Clase 22 de 52Curso de Desarrollo de Apps para iOS

Resumen

¿Cómo crear controladores independientes para cada pantalla?

La organización es clave al desarrollar una aplicación móvil, y una técnica eficaz es crear controladores independientes para cada pantalla. Esto te permitirá tener un código más limpio y manejable. Para comenzar, genera tres controladores separados en tu carpeta de bienvenida.

  • WelcomeViewController: Crea con clic derecho una "Cocoa Touch Class" y asigna "UIViewController" como superclase. Llama a este controlador "WelcomeViewController".
  • LoginViewController: Repite el proceso de creación para este controlador.
  • RegisterViewController: Finalmente, crea este controlador bajo el mismo método.

Una vez creados, asegúrate de asignar cada uno a su correspondiente pantalla de interfaz de usuario.

¿Cómo configurar una interfaz de usuario con código?

Configurar elementos de la interfaz mediante código puede dar flexibilidad y precisión al diseño. Por ejemplo, redondear un botón en "WelcomeViewController":

  1. Crear el método setupUI: Este método debe incluir konfiguraciones específicas de la UI.
  2. Integrar el método en viewDidLoad: Siempre llama al método setupUI dentro de viewDidLoad.
  3. Agregar un IBOutlet para el botón: Declara el outlet y conéctalo al elemento visual.
  4. Redondear el botón: En setupUI, usa layer.cornerRadius = 25 para redondear el botón.
@IBOutlet weak var loginButton: UIButton!
   
override func viewDidLoad() {
    super.viewDidLoad()
    setupUI()
}

func setupUI() {
    loginButton.layer.cornerRadius = 25
}

Ahora repite este proceso para los controladores de LoginViewController y RegisterViewController, asegurándote de conectar adecuadamente cada outlet en el storyboard. Copiar y pegar el código inicialmente permitirá cierta rapidez, pero hay que prestar atención para ajustar nombres y conexiones.

¿Cómo validar campos de forma profesional?

La validación es crucial para garantizar la entrada de datos correcta y proporcionar una buena experiencia de usuario. Aquí se explica cómo puedes implementar validaciones usando el controlador de login como ejemplo:

  1. Conectar outlets de los campos: Agrega outlets para los campos de email y contraseña.
  2. Crear un IBAction para el botón de login: Esto se activa cuando el usuario presiona el botón.
  3. Agregar validaciones dentro de un método separado: Evita insertar lógica dentro de IBAction. En cambio, llama a un método que maneje la validación, ejemplo performLogin.
@IBAction func loginButtonAction(_ sender: UIButton) {
    performLogin()
}

private func performLogin() {
    // Validar email
    guard let email = emailTextField.text, !email.isEmpty else {
        // Mostrar error
        return
    }
    // Resto del código...
}
  1. Mostrar mensajes de error: Usa librerías de terceros como NotificationBannerSwift para mostrar errores elegantemente al usuario.
import NotificationBannerSwift

private func showErrorBanner(_ message: String) {
    let banner = NotificationBanner(title: "Error", subtitle: message, style: .warning)
    banner.show()
}

Conectar adecuadamente las acciones y asegurar la correcta implementación de librerías te permitirá no solo mejorar la usabilidad sino también manejar errores de forma eficientemente visual para el usuario. ¡No olvides mantener tu código ordenado y documentado!

Desafío Adicional

Implementa una validación similar para la contraseña y asegúrate de notificar al usuario cuando ingrese credenciales correctas, quizás usando un banner verde de éxito. Las librerías y la correcta organización son tus aliados en esta tarea. ¡Buena suerte!