DeckKit is a SwiftUI library that makes it easy to create card and deck-based apps.
DeckKit has a Card view that can render a card-like view, a Deck that can render a deck of items, with support for swipe gestures, edge swipes, shuffling, etc.
DeckKit can be customized to great extent. You can change colors, fonts, etc. and use completely custom views.
DeckKit can be installed with the Swift Package Manager:
https://github.com/danielsaidi/DeckKit.git
DeckKit supports iOS 17, macOS 14, tvOS 17, watchOS 10, and visionOS 1.
With DeckKit, you can create a deck of cards with any type that conforms to Identifiable:
struct Hobby: Identifiable {
var name: String
var text: String
var id: String { name }
}
struct MyView: View {
@State
var hobbies: [Hobby] = ...
var body: some View {
Deck($hobbies) { hobby in
RoundedRectangle(cornerRadius: 25.0)
.fill(.blue)
.overlay(Text(hobby.name))
.shadow(radius: 10)
}
}
}DeckKit has several view components for presenting decks, e.g. Deck and DeckPageView.
See the online getting started guide for more information.
The online documentation has more information, articles, code examples, etc.
The Demo folder has an app that lets you explore the library on iOS, macOS, and visionOS.
Maintaining my various open-source tools takes significant time and effort. You can become a sponsor to help me dedicate more time to creating, maintaining, and improving these projects. Every contribution, no matter the size, makes a real difference in keeping these tools free and actively developed. Thank you for considering!
Feel free to reach out if you have questions or want to contribute in any way:
- Website: danielsaidi.com
- E-mail: daniel.saidi@gmail.com
- Bluesky: @danielsaidi@bsky.social
- Mastodon: @danielsaidi@mastodon.social
DeckKit is available under the MIT license. See the LICENSE file for more info.
