
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()
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()
}
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()
}
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:
fullScreen
asegura que el home se actualice adecuadamente cuando reaparece.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!
Aportes 5
Preguntas 2
 //Creamos y llamamos un método en el viewDidLoad
//Agregamos la condicional en el Success del login
if self.emailSwitch.isOn {
self.storage.set(email, forKey: emailKey)
} else {
self.storage.removeObject(forKey: emailKey)
}
//Función de guardar email.
private func saveEmail(){
if let storedEmail = storage.string(forKey: emailKey){
emailTextField.text = storedEmail
emailSwitch.isOn = true
} else {
storage.removeObject(forKey: emailKey)
emailSwitch.isOn = false
}
}
Agruege este campo de codigo para validar si contiene texto el campo o no
guard let postText = postTextView.text,
!postText.isEmpty else
{
NotificationBanner(subtitle: "Tu campo de texto esta vacio", style: .warning).show()
return
}
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?