Así me quedó

¿Cómo diseñar la pantalla de inicio de tu aplicación iOS?
Para cualquier desarrollador iOS, el diseño de la pantalla de inicio es una oportunidad para dar vida a una aplicación, convirtiéndose en un escaparate para su funcionalidad. En esta etapa, se explora el flujo del home de nuestra app, comenzando con la vinculación del storyboard a un view controller específico para gestionar esta pantalla.
¿Cómo agregar una tabla al view controller?
El uso eficaz de tablas es crucial para la visualización de listas de datos en una aplicación. Aquí se detalla cómo estructurarlas:
¿Cómo crear y diseñar las celdas en iOS?
Diseñar celdas personalizadas es esencial para una UI atractiva y funcional:
Crear una nueva clase para la celda: Usa Cocoa Touch Class y selecciona la plantilla de UITableViewCell. Ejemplo de cómo se vería:
class TweetTableViewCell: UITableViewCell { // Propiedades y métodos }
Añadir elementos visuales: Agrega un stack view vertical dentro del cual puedes insertar labels, imágenes y botones.
Configurar los elementos:
UIImageView para representar imágenes del post.¿Cómo hacer conexiones de outlets en Swift?
Para darle funcionalidad a los elementos visuales, se crean conexiones en el código:
@IBOutlet weak var nameLabel: UILabel! @IBOutlet weak var nicknameLabel: UILabel! @IBOutlet weak var messageLabel: UILabel! @IBOutlet weak var tweetImageView: UIImageView! @IBOutlet weak var videoButton: UIButton! @IBOutlet weak var dateLabel: UILabel!
Estos outlets luego permiten manipular cada elemento visual desde el código.
¿Cómo configurar una celda con una entidad post?
La configuración dinámica de cada celda se logra enlazándola a los datos de una entidad:
Método de configuración:
func setupCell(with post: Post) { nameLabel.text = post.author.name nicknameLabel.text = post.author.nickname messageLabel.text = post.text // Configurar imagen }
Manejo de imágenes: Si el post incluye una imagen, usa Kingfisher para cargarla desde una URL. Si no, oculta el UIImageView para evitar espacios vacíos.
if post.hasImage { tweetImageView.kf.setImage(with: URL(string: post.imageURL)) } else { tweetImageView.isHidden = true }
Recomendaciones para personalizar el diseño
Para hacer que tu aplicación destaque y refleje tu estilo personal:
El diseño de interfaces en iOS es un proceso intuitivo gracias a herramientas como Xcode y el uso del storyboard. Imagina, crea y permite que tu aplicación cuente una historia visualmente cautivadora. Con cada iteración, irás perfeccionando tu habilidad y desarrollando aplicaciones excepcionales. ¡Sigue adelante, tu travesía en el desarrollo iOS apenas comienza!
Para cualquier desarrollador iOS, el diseño de la pantalla de inicio es una oportunidad para dar vida a una aplicación, convirtiéndose en un escaparate para su funcionalidad. En esta etapa, se explora el flujo del home de nuestra app, comenzando con la vinculación del storyboard a un view controller específico para gestionar esta pantalla.
El uso eficaz de tablas es crucial para la visualización de listas de datos en una aplicación. Aquí se detalla cómo estructurarlas:
Diseñar celdas personalizadas es esencial para una UI atractiva y funcional:
Crear una nueva clase para la celda: Usa Cocoa Touch Class y selecciona la plantilla de UITableViewCell. Ejemplo de cómo se vería:
class TweetTableViewCell: UITableViewCell {
// Propiedades y métodos
}
Añadir elementos visuales: Agrega un stack view vertical dentro del cual puedes insertar labels, imágenes y botones.
Configurar los elementos:
UIImageView para representar imágenes del post.Para darle funcionalidad a los elementos visuales, se crean conexiones en el código:
@IBOutlet weak var nameLabel: UILabel!
@IBOutlet weak var nicknameLabel: UILabel!
@IBOutlet weak var messageLabel: UILabel!
@IBOutlet weak var tweetImageView: UIImageView!
@IBOutlet weak var videoButton: UIButton!
@IBOutlet weak var dateLabel: UILabel!
Estos outlets luego permiten manipular cada elemento visual desde el código.
La configuración dinámica de cada celda se logra enlazándola a los datos de una entidad:
Método de configuración:
func setupCell(with post: Post) {
nameLabel.text = post.author.name
nicknameLabel.text = post.author.nickname
messageLabel.text = post.text
// Configurar imagen
}
Manejo de imágenes: Si el post incluye una imagen, usa Kingfisher para cargarla desde una URL. Si no, oculta el UIImageView para evitar espacios vacíos.
if post.hasImage {
tweetImageView.kf.setImage(with: URL(string: post.imageURL))
} else {
tweetImageView.isHidden = true
}
Para hacer que tu aplicación destaque y refleje tu estilo personal:
El diseño de interfaces en iOS es un proceso intuitivo gracias a herramientas como Xcode y el uso del storyboard. Imagina, crea y permite que tu aplicación cuente una historia visualmente cautivadora. Con cada iteración, irás perfeccionando tu habilidad y desarrollando aplicaciones excepcionales. ¡Sigue adelante, tu travesía en el desarrollo iOS apenas comienza!

He intentado crear un diseño como el de Twitter basándome en la imagen que hay a continuación y me ha sido totalmente imposible.
He intentado crear un vertical stack dentro de un horizontal stack (para la imagen) y no lo conseguí. He intentado crear una imagen y un vertical stack a su dcha y no lo conseguí. He intentado crear dos views uno a la dcha y otro a la izq y no lo conseguí.
¿Alguien que se atreva a diseñar un Tweet como el de Twitter y nos comparta el código?

Yo hice esto. Me gustó el resultado y creo que sí se parece mucho a una celda de Twitter
 21.13.16.png](https://static.platzi.com/media/user_upload/Captura%20de%20Pantalla%202020-07-22%20a%20la%28s%29%2021.13.16-12156f0e-91fb-4049-b5db-274e5e054f52.jpg)
me recomiendan algun macbook bueno para desarrolladores?
Mi diseño es inspirado en Motos, algo como Bikers tweet


Interesante el tema de componentes o custom views para el tema del post del tweet :)
Luego por ejemplo, si yo quiero dar distancias especificas a mi elementos del stack view ¿Cómo debería hacerlo?
Supongamos que ponemos el spacing del stack view en 0 y queremos añadir constraints a nickname, al poner un constraint de 1 la distancia es super grande!!!

Sigo haciendo pruebas. He cambiado el Layour Margins a Fixed en el Stack View vertical. Dejandome así poner constraints verticales a cada elemento de la celda. (Esto para poder poner mas margen al tweet que ha la imagen, por ejemplo)
Pero, aunque en el el storyboard si se aplica ese margen en el dispositivo no se aplica. Dejo por aquí unas imágenes.
Creo que Platzi debería hacer un curso intensivo para desarrollo de interfaces iOS en xCode.



Mi tweet
