DeckKit is a Swift SDK that helps you build deck-based apps in SwiftUI.
DeckKit has a DeckView
that can render any item collection, with support for swipe gestures, edge swipe detection, shuffling, etc. The result can look like this or completely different:
DeckKit has other views as well, and can be customized to great extent. You can change colors, fonts, etc. and use completely custom views. It also has tools to manage favorite items.
DeckKit can be installed with the Swift Package Manager:
https://github.com/danielsaidi/DeckKit.git
With DeckKit, you can create a Deck
of any model that implement the DeckItem
protocol:
struct Hobby: DeckItem {
var name: String
var text: String
var id: String { name }
}
You can display a deck of cards with any of the built-in views, like a DeckView
:
struct MyView: View {
@State
var hobbies: [Hobby] = ...
var body: some View {
DeckView($hobbies) { hobby in
RoundedRectangle(cornerRadius: 25.0)
.fill(.blue)
.overlay(Text(hobby.name))
.shadow(radius: 10)
}
}
}
For more information, please see the getting started guide.
The online documentation has more information, articles, code examples, etc.
The demo app lets you explore the library with iOS, macOS, and visionOS. To try it out, just open and run the Demo
project.
You can sponsor me on GitHub Sponsors or reach out for paid support, to help support my open-source projects.
Your support makes it possible for me to put more work into these projects and make them the best they can be.
Feel free to reach out if you have questions or if you want to contribute in any way:
- Website: danielsaidi.com
- Mastodon: @danielsaidi@mastodon.social
- Twitter: @danielsaidi
- E-mail: daniel.saidi@gmail.com
DeckKit is available under the MIT license. See the LICENSE file for more info.