Conexión de Pantalla de Publicación con Servicios de Platzi Tweets

Clase 30 de 52Curso de Desarrollo de Apps para iOS

Resumen

¿Cómo conectar la pantalla de publicación de tweets con los servicios de Platzi Tweets?

Cuando desarrollamos aplicaciones móviles, es esencial conectar las interfaces de usuario con los servicios que gestionan la lógica del negocio. Esta tarea asegura que los datos fluyan correctamente entre la interfaz y el backend, permitiendo funcionalidades como la publicación de tweets en nuestra app de Platzi Tweets. Vamos a explorar cómo lograr esta conexión de manera efectiva.

¿Cómo realizar una solicitud de post?

Para guardar un post o publicación, primero debemos crear una solicitud al backend. Este proceso incluye:

  1. Creación de una 'request': Debemos crear una instancia de post request usando los modelos predefinidos, donde cada publicación puede incluir texto, una URL de imagen, una URL de video y una ubicación.

  2. Definición del texto del tweet: El contenido de nuestro tweet provendrá del componente post text view. Aquí es vital realizar una validación para evitar posts vacíos.

    let request = PostRequest(text: postTextView.text, imageURL: nil, videoURL: nil, location: nil)
    

¿Cómo se notifica al usuario la carga del tweet?

La experiencia del usuario mejora significativamente cuando se proporciona feedback visual del estado de una tarea en progreso, como la publicación de un tweet. En este caso:

  • Utilizamos SVProgressHUD para indicar el proceso de carga.

    SVProgressHUD.show()
    

¿Cómo se llama al servicio para publicar el tweet?

Una vez que tenemos la solicitud lista y la carga es visible para el usuario, procedemos a acceder al servicio que gestionará la publicación:

  • Uso de SimpleNetworking: Esto facilita la interacción con el servicio de backend.

    SN.post(endpoint: Endpoints.post, model: request) { (response) in
        switch response {
        case .success(let post):
            // Post publicado correctamente
        case .failure(let errorResponse):
            // Error en la publicación
        }
        SVProgressHUD.dismiss()
    }
    

¿Cómo cerrar la pantalla y actualizar el feed?

Cuando el servicio confirma una publicación exitosa:

  • Cerrar pantalla actual: Se utiliza el método dismiss para retornar al home después de un post exitoso.

    self.dismiss(animated: true, completion: nil)
    
  • Actualizar el feed al regresar: Es importante que el feed se actualice automáticamente cuando el usuario regresa al home.

    override func viewDidAppear(_ animated: Bool) {
        super.viewDidAppear(animated)
        self.fetchPosts()
    }
    

Ajustes para una actualización eficiente y continua

Es crucial que la pantalla principal se recargue adecuadamente después de publicar un tweet. Una solución efectiva es cambiar la modalidad de presentación de las pantallas:

  • Cambiar esta presentación a fullScreen asegura que el home se actualice adecuadamente cuando reaparece.

¿Qué deberíamos probar y ajustar?

Realizar pruebas exhaustivas del flujo de publicación ayudará a identificar y corregir cualquier error en la lógica o el comportamiento de la app, asegurando así una experiencia de usuario fluida.

¡Eso es todo! Espero que este proceso te resulte de gran interés y utilidad para tus proyectos. Anímate a experimentar y mejorar las funcionalidades en las aplicaciones que desarrolles. Y recuerda, la práctica hace al maestro. ¡Nos vemos en la próxima clase!