SwiftUI-Components
iOS 17 と macOS 14 向けの作成済み SwiftUI ビュー。フォーム検証とアクセシブルなジェスチャーを備えます
ライセンス: MIT
依存関係のない、SwiftUI のビューからなる Swift パッケージです: ボタン、カード、チャート、検証付きのフォーム入力、ジェスチャー、リスト、オーバーレイ、ローダー、トーストです。各コンポーネントは initializer で設定される単純な View なので、テーマシステムを導入せずに1つ2つだけ使うこともできます。カード番号のチェック、validator、JSON のフォームスキーマ、swipe や形状の認識といった裏側のロジックは、macOS と iPhone シミュレータで実行される Swift Testing suite でカバーされています。
機能
- ソースコードから数えた、14のカテゴリに分かれる223個のビュー、12個の view モディファイア、5個の gesture モディファイア
- 組み合わせ可能な validator、最初の編集後に表示されるエラー、debounce されたサーバーチェック、複数ステップのフォーム
- JSON から描画されるフォーム。スキーマのパターンは、マッチごとに20msの上限、チェックごとに100msの予算で実行されます
- swipe、エッジ swipe、swipe のシーケンス、pinch-rotate-drag、形状の描画。それぞれにアクセシビリティアクションが付いています
- iOS と macOS で共通の1つのコードベース: UIKit 固有の細部のほぼすべてが、1つのプラットフォーム用ファイルの中で AppKit 側の対応や no-op に対応付けられます
- Swift 6 の language mode、依存関係なし。README のサンプルはサンプルアプリとテストターゲットでコンパイルされます
- ColorContrast による、SwiftUI の色の WCAG 2 コントラスト比とレベル
クイックスタート
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}インストール
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]スクリーンショット








タイムライン
リポジトリが公開されました。v1.0.0 は最初のコミットにタグ付け(14個のソースファイル、iOS 16 と macOS 13)
パッケージを整理: コンポーネントを削除し、placeholder のコードに置き換え (c7b3799)
2.0.0 として作り直し: iOS 17 と macOS 14 向けに Swift 6 の language mode でコンポーネントを復元し、テスト、CI、DocC を追加 (PR #3)
2.1.0: 検証、JSON フォーム、ジェスチャー、コントラストチェッカーを、SwiftUI-Forms-Kit、SwiftUI-Gesture-Library、iOSUIComponents から書き直して統合。これら3つのリポジトリはアーカイブされました (PR #6)