¿Qué hace patrones-swiftui-ui?
Guía de mejores prácticas y ejemplos para construir vistas y componentes de SwiftUI, incluyendo jerarquías de navegación, modificadores de vista personalizados y diseños responsivos con stacks y grids. Úsela al crear o refactorizar interfaces de usuario en SwiftUI, diseñar arquitecturas de pestañas con TabView, componer pantallas con VStack/HStack, gestionar @State o @Binding, construir interfaces declarativas para iOS, o cuando necesite patrones y ejemplos específicos de componentes.
Contenido
- Jerarquías de Navegación
- Modificadores de Vista Personalizados
- Diseños Responsivos
- Gestión de Estado y Enlace
Jerarquías de Navegación
Ejemplos y patrones para implementar navegación en SwiftUI:
- Uso de
NavigationStackpara navegación jerárquica. - Diseño de
TabViewpara arquitectura basada en pestañas. - Manejo de rutas y enlaces de navegación.
Modificadores de Vista Personalizados
Cómo crear modificadores reutilizables para estilos y comportamientos:
- Definición de
ViewModifierpersonalizados. - Aplicación de modificadores a vistas existentes.
- Ejemplos de modificadores para bordes, sombras y animaciones.
Diseños Responsivos
Uso de stacks y grids para adaptarse a diferentes tamaños de pantalla:
VStack,HStackyZStackpara composición básica.LazyVGridyLazyHGridpara cuadrículas dinámicas.- Adaptación a orientación y clases de tamaño con
SizeClass.
Gestión de Estado y Enlace
Mejores prácticas para manejar datos en SwiftUI:
@Statepara estado local.@Bindingpara enlaces bidireccionales.@ObservedObject,@StateObjecty@EnvironmentObjectpara estado compartido.
Ejemplos Comunes
Aquí algunos patrones listos para usar:
- Lista con navegación detallada: Uso de
ListyNavigationLink. - Formulario con campos y alternancia: Combinación de
Form,TextFieldyToggle. - Vista de cuadrícula de imágenes: Implementación con
LazyVGridy datos de muestra. - Animaciones personalizadas: Modificadores con
animation(_:value:)ywithAnimation.
Contribución
Si desea agregar un nuevo patrón o mejorar los existentes, por favor envíe un Pull Request. La documentación adicional es bienvenida.
Licencia
Este proyecto se distribuye bajo la licencia MIT.