Tous les paquets open source
InterfaceSwift

SwiftUI-Components

Vues SwiftUI prêtes à l'emploi pour iOS 17 et macOS 14, avec validation de formulaire et gestes accessibles

32ÉtoilesDernière version: v2.1.0Mis à jour: 15 octobre 2026
Plateformes:iOS 17macOS 14

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

swift
1import SwiftUI
2import SwiftUIComponents
3 
4struct ContentView: View {
5 @State private var rating = 3.0
6 
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…)

text
1https://github.com/muhittincamdali/SwiftUI-Components.git

Swift Package Manager

swift
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

Galerie de boutons, mode clair
Galerie de boutons, mode sombre
Galerie de cartes, mode clair
Galerie de graphiques, mode clair
Galerie d'indicateurs, mode clair
Formulaire d'inscription validé dans l'app d'exemple
Formulaire de contact rendu depuis JSON dans l'app d'exemple
Swipe, pinch-rotate-drag et dessin de forme dans l'app d'exemple

Chronologie

  1. Dépôt ouvert ; v1.0.0 étiquetée sur le premier commit (14 fichiers sources, iOS 16 et macOS 13)

  2. Package allégé : les composants ont été supprimés et remplacés par du code espace réservé (c7b3799)

  3. 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)

  4. 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)

Liens

Dépôts fusionnés

Article associé

Lire l'article