SwiftUI-Components
Vistas SwiftUI ya hechas para iOS 17 y macOS 14, con validación de formularios y gestos accesibles
Licencia: MIT
Un paquete Swift sin dependencias de vistas SwiftUI: buttons, cards, charts, campos de formulario con validación, gestures, lists, overlays, loaders y toasts. Cada componente es una View simple configurada mediante su initializer, así que puedes usar uno o dos sin adoptar un sistema de temas. La lógica detrás de ellos, como las comprobaciones de número de tarjeta, los validators, los esquemas de formulario en JSON y el reconocimiento de swipes y formas, está cubierta por suites de Swift Testing que se ejecutan en macOS y en un simulador de iPhone.
Características
- 223 views, 12 view modifiers y 5 gesture modifiers en 14 categorías, contados a partir del código fuente
- Validators componibles, errores que aparecen tras la primera edición, comprobaciones de servidor con debounce y formularios de varios pasos
- Formularios renderizados desde JSON; los patrones del esquema se ejecutan con un límite de 20 ms por coincidencia y un presupuesto de 100 ms por comprobación
- Swipes, edge swipes, secuencias de swipe, pinch-rotate-drag y dibujo de formas, cada uno con una acción de accesibilidad
- Una única base de código para iOS y macOS: casi todos los detalles exclusivos de UIKit se mapean a AppKit o a no-ops en un solo archivo de plataforma
- Modo de lenguaje Swift 6, sin dependencias, y ejemplos del README compilados por la app de ejemplo y el test target
- Ratio y nivel de contraste WCAG 2 para colores de SwiftUI con ColorContrast
Inicio rápido
1import SwiftUI2import SwiftUIComponents3 4struct ContentView: View {5 @State private var rating = 3.06 7 var body: some View {8 VStack(spacing: 20) {9 Text("Rate this app")10 .font(.headline)11 RatingInput(rating: $rating)12 PrimaryButton("Send rating") {13 print("Rating: \(rating)")14 }15 }16 .padding()17 }18}Instalación
Xcode (File › Add Package Dependencies…)
1https://github.com/muhittincamdali/SwiftUI-Components.gitSwift Package Manager
1dependencies: [2 .package(url: "https://github.com/muhittincamdali/SwiftUI-Components.git", from: "2.1.0")3],4targets: [5 .target(name: "YourApp", dependencies: [6 .product(name: "SwiftUIComponents", package: "SwiftUI-Components")7 ])8]Capturas de pantalla








Cronología
Repositorio abierto; v1.0.0 etiquetada en el primer commit (14 archivos de código fuente, iOS 16 y macOS 13)
Paquete reducido: los componentes se eliminaron y se sustituyeron por código placeholder (c7b3799)
Reconstruido como 2.0.0: componentes recuperados para iOS 17 y macOS 14 en el modo de lenguaje Swift 6, con tests, CI y DocC (PR #3)
2.1.0: validación, formularios JSON, gestures y un verificador de contraste, reescritos a partir de SwiftUI-Forms-Kit, SwiftUI-Gesture-Library y iOSUIComponents, que fueron archivados (PR #6)