
Overview
I tried several Solitaire apps from the App Store but disliked their aggressive ads, awkward animations, and visual design. Solitairy is my own version of Klondike without ads.
The main technical problem was fitting long columns of cards on the screen. Standard SwiftUI stacks eventually place cards outside the visible area. I wrote a custom "Accordion" layout that calculates the spacing from the available height and compresses long columns without requiring scrolling.
I used Core Haptics to add feedback when cards snap into place or the deck is shuffled.
Features
- Accordion layout: The custom layout adjusts card spacing to fit long columns on different screen sizes.
- "Lazy" dragging: A player can start dragging from the empty space below a column. This makes a stack easier to reach on a larger phone.
- Haptics: Core Haptics provides feedback for card movements and shuffling.
- Hint system: Watermark-style hints appear according to the game state, for example when a move is available.
- Statistics and history: The app records statistics, achievements, and previous games.
Technologies Used
- Swift
- SwiftUI
- Core Data (for complex statistics, achievements, and game history)
- Core Haptics (for custom vibration patterns)
- Xcode (for development and testing)
- App Store Connect (for app distribution and management)
- TestFlight (for beta testing)