SwiftUI-Components
Vues SwiftUI prêtes à l'emploi pour iOS 17 et macOS 14, avec validation de formulaire et gestes accessibles
Licence: MIT
Un package Swift sans dépendance de vues SwiftUI : boutons, cartes, graphiques, champs de formulaire avec validation, gestes, listes, overlays, indicateurs de chargement et toasts. Chaque composant est une View simple configurée via son initialiseur, donc vous pouvez en utiliser un ou deux sans adopter un système de thème. La logique derrière eux, comme les vérifications de numéro de carte, les validateurs, les schémas de formulaire JSON et la reconnaissance de swipe et de forme, est couverte par des suites Swift Testing qui s'exécutent sur macOS et un simulateur iPhone.
Fonctionnalités
- 223 vues, 12 modifiers de vue et 5 modifiers de geste répartis en 14 catégories, comptés depuis les sources
- Validateurs composables, erreurs qui apparaissent après la première modification, vérifications serveur avec debounce et formulaires multi-étapes
- Formulaires rendus depuis JSON ; les motifs du schéma s'exécutent avec une limite de 20 ms par correspondance et un budget de 100 ms par vérification
- Swipes, swipes de bord, séquences de swipe, pinch-rotate-drag et dessin de forme, chacun avec une action d'accessibilité
- Une seule base de code pour iOS et macOS : la quasi-totalité des détails propres à UIKit se mappent sur un équivalent AppKit ou sur des no-ops dans un seul fichier de plateforme
- Mode de langage Swift 6, aucune dépendance, et exemples du README compilés par l'app d'exemple et le target de test
- Ratio et niveau de contraste WCAG 2 pour les couleurs SwiftUI avec ColorContrast
Démarrage rapide
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}Installation
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]Captures d'écran








Chronologie
Dépôt ouvert ; v1.0.0 étiquetée sur le premier commit (14 fichiers sources, iOS 16 et macOS 13)
Package allégé : les composants ont été supprimés et remplacés par du code espace réservé (c7b3799)
Reconstruit en 2.0.0 : composants restaurés pour iOS 17 et macOS 14 en mode de langage Swift 6, avec tests, CI et DocC (PR #3)
2.1.0 : validation, formulaires JSON, gestes et un vérificateur de contraste, réécrits à partir de SwiftUI-Forms-Kit, SwiftUI-Gesture-Library et iOSUIComponents, qui ont été archivés (PR #6)