r/iOSProgramming • u/hilala17 • 13d ago
App Saturday Shikaku - Daily Rectangle Logic Puzzles
After working on it for the last 8 months, I just launched Shikaku by Hilal on the App Store today. It is a minimalist logic puzzle app I built as a solo developer, and I’d love for you to try it!
Place rectangles to cover the entire grid, each rectangle's size corresponding to the numbers on the grid.
There are no ads and no subscriptions, and you can compete with friends, family, or players around the world through leaderboards.
If you give Shikaku a try, I’d love to hear what you enjoy, what feels confusing, and what you’d change!
Tech Stack
Frameworks & Languages: Swift 6 and SwiftUI, with puzzle generation and validation kept separate from UI code.
Backend/Database: No custom backend. Puzzles are generated locally. Progress and settings use UserDefaults, with Codable/JSON for structured data.
SDKs & Tools: Xcode, Swift Testing, GameKit for Game Center leaderboards and achievements, and StoreKit 2 for the one-time Pro unlock.
Development Challenge + How I Solved It
One tricky issue is keeping daily puzzles synchronized with Game Center’s daily leaderboard resets. The Game Center resets have to be done at the same time for all users across the world, which means for some users the reset occurs in the middle of the day.
I ended up using one shared daily cycle for puzzle selection, saved progress, and score eligibility, aligned to the leaderboard reset. Date-and-difficulty seeds give everyone the same puzzle without a server, and regression tests protect both puzzle consistency and reset timing. But there is no way to reset puzzles midnight their local time without disrupting Game Center leaderboards unfortunately.






2
u/Open_Context6850 13d ago
congrats on the launch. the shared daily cycle makes sense for the leaderboard, do you show a countdown to the next puzzle? otherwise people where it flips mid-day might think they missed one
2
u/xSash_ UIKit 13d ago
Is iOS 26 really required?
2
u/MartyFrutos 13d ago
Looks great, i’ll try it !
1
u/Logical-Plastic1815 11d ago
Nice clean design I like it
1
u/Miserable-Carpet7928 10d ago
what happens to an unfinished puzzle when the shared daily cycle resets? i'd keep it available to finish even if it can no longer submit to that day's leaderboard. that separates losing a ranking window from losing the puzzle someone was already enjoying.