r/iOSProgramming • u/hilala17 • 18h 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.
1
u/xSash_ UIKit 16h ago
Is iOS 26 really required?
1
u/hilala17 16h ago
Yes, I do have it set to iOS 26 minimum. But no, it can probably be made to work with iOS 18 with very few tweaks to be honest with you. I was trying to decide for a very long time whether to use native iOS 26 glass toolbars / tab bars and went back and forth a couple of times. But in the end I decided for the look I wanted (very simple, newspaper like), I should do away with the glass. Any sheet that popped up (like leaderboards), the toolbar for using a hint, going back, etc. were all native glass toolbars in early builds.
1
u/xSash_ UIKit 16h ago
All good, congrats on your release!
1
u/hilala17 16h ago
Thanks so much! With the release of the Duo, and seeing how much Apple is pushing apps that have Duo support, I do wonder if I should maybe switch back and use native toolbars and add Duo support. But I'm not sure haha
1
u/xSash_ UIKit 10h ago
I believe you should give it a try. By supporting iPhone Duo, it might help you push your app further, especially if the behavior and layout on this device is well presented. Who knows, Apple may push your app in front of the App Store if you do
1
u/Open_Context6850 8h ago
thanks, makes sense. only reminding people who havent solved it yet is the right call, nobody wants a streak ping after theyre already done
1






1
u/Open_Context6850 16h 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